Files
docs/standards/mcp/templates/app/domain/appointments/models.py
Vishesh 'ironeagle' Bangotra 0cb35d10a6 Phase 7: serve the vet sample from the template tools and docs
- build.py: _TEMPLATE_COMPONENTS rewritten around the vet sample (53 kinds —
  per-resource slices, jobs, worked appointment_reminder family, tests);
  seed tokens dropped from the manifest ('sample: vet' instead)
- registry.py: get_app_component(kind) no longer renames item/example seeds;
  prompts and tool docs updated to 'copy a slice and adapt'
- templates/README.md, 01_build_recipe, 40_ui_admin, wiki/03 updated off the
  old seed scheme; repo inventory/config now exclude vet (docs move under
  standards; react/vet itself is deleted in a later phase)
- regenerated MCP bundle, vendored templates, and site output
2026-10-20 14:58:17 +05:30

69 lines
2.1 KiB
Python

"""# Summary
Appointments domain — scheduled visits linking a pet, a vet and a treatment.
"""
from pydantic import BaseModel
from domain.parents.models import Metadata
class ProcedureNote(BaseModel):
"""A single procedure note; ``noteType`` selects the shape.
Attributes:
noteType (str): Discriminator (basic, heart_rate, dental, vaccine,
preop, surgery).
summary (str | None): Short summary. Defaults to None.
details (str | None): Longer details. Defaults to None.
"""
noteType: str
summary: str | None = None
details: str | None = None
model_config = {"extra": "ignore"}
class Procedure(BaseModel):
"""A procedure performed during an appointment.
Attributes:
name (str): Procedure name.
description (str | None): Procedure description. Defaults to None.
cost (float | None): Cost of the procedure. Defaults to None.
notes (ProcedureNote | None): Typed procedure note. Defaults to None.
"""
name: str
description: str | None = None
cost: float | None = None
notes: ProcedureNote | None = None
model_config = {"extra": "ignore"}
class Appointment(BaseModel):
"""A scheduled appointment.
Attributes:
id (int | None): Server-assigned identifier. Defaults to None.
date (str): ISO date-time of the appointment.
notes (str | None): Additional notes. Defaults to None.
procedures (list[Procedure]): Procedures performed. Defaults to empty.
pet (dict | int | None): Embedded pet object or pet id.
vet (dict | int | None): Embedded vet object or vet id.
treatment (dict | int | None): Embedded treatment or treatment id.
metadata (Metadata | None): Presentation metadata. Defaults to None.
"""
id: int | None = None
date: str
notes: str | None = None
procedures: list[Procedure] = []
pet: dict | int | None = None
vet: dict | int | None = None
treatment: dict | int | None = None
metadata: Metadata | None = None
model_config = {"extra": "ignore"}