"""# Summary Pets domain — animals owned by parents and treated in appointments. """ from typing import Literal from pydantic import BaseModel from domain.parents.models import Metadata class Pet(BaseModel): """A pet patient. Attributes: id (int | None): Server-assigned identifier. Defaults to None. name (str): Name of the pet. species (str): Type of animal (dog, cat, bird). age (int | None): Age in years. Defaults to None. weight (float | None): Weight in kilograms. Defaults to None. birthDate (str | None): ISO date of birth. Defaults to None. photo (str | None): Stored photo path after upload. Defaults to None. parents (list[dict]): Embedded parent objects (or bare ids on input). metadata (Metadata | None): Presentation metadata. Defaults to None. """ id: int | None = None name: str species: Literal["dog", "cat", "bird"] age: int | None = None weight: float | None = None birthDate: str | None = None photo: str | None = None parents: list[dict] = [] metadata: Metadata | None = None model_config = {"extra": "ignore"}