"""
Tools to build data types have citations.
"""
from __future__ import annotations
from typing import Any, Iterable, TYPE_CHECKING
from urllib.parse import quote
from typing_extensions import override
from betty.model import Entity, GeneratedEntityId, EntityReferenceCollectionSchema
from betty.model.association import ManyToMany
from betty.ancestry.citation import Citation
if TYPE_CHECKING:
from betty.json.schema import Object
from betty.serde.dump import DumpMapping, Dump
from betty.project import Project
[docs]
class HasCitations(Entity):
"""
An entity with citations that support it.
"""
citations = ManyToMany["HasCitations & Entity", "Citation"](
"betty.ancestry.has_citations:HasCitations",
"citations",
"betty.ancestry.citation:Citation",
"facts",
)