nested inline schemas

This commit is contained in:
2026-06-17 01:01:35 +05:30
parent d912053368
commit 61de233745
3 changed files with 73 additions and 5 deletions

View File

@@ -22,6 +22,7 @@ from models import (
Parent, ParentCreate,
Vet, VetCreate,
Treatment, TreatmentCreate,
Procedure, ProcedureNotes,
Pet, PetCreate,
Appointment, AppointmentCreate,
)
@@ -158,6 +159,7 @@ def create_treatment(payload: TreatmentCreate) -> Treatment:
id=_treatments_next_id,
label=payload.label,
description=payload.description,
procedures=payload.procedures,
metadata={"createdOn": now, "updatedOn": now} if payload.metadata else None,
)
_treatments[_treatments_next_id] = treatment
@@ -174,6 +176,7 @@ def update_treatment(treatment_id: int, payload: TreatmentCreate) -> Treatment:
id=treatment_id,
label=payload.label,
description=payload.description if payload.description is not None else current.description,
procedures=payload.procedures,
metadata={"createdOn": current.metadata["createdOn"] if current.metadata else None, "updatedOn": now},
)
_treatments[treatment_id] = updated
@@ -321,11 +324,21 @@ def _seed_data():
_vets[3] = Vet(id=3, name="Emily Davis", specialty="General Practice", email="emily@clinic.com", phone="555-0203", metadata=meta)
_vets_next_id = 4
_treatments[1] = Treatment(id=1, label="Annual Checkup", description="Full physical examination", metadata=meta)
_treatments[2] = Treatment(id=2, label="Vaccination", description="Core vaccines for common diseases", metadata=meta)
_treatments[3] = Treatment(id=3, label="Dental Cleaning", description="Scaling, polishing, and oral exam", metadata=meta)
_treatments[4] = Treatment(id=4, label="Spay/Neuter", description="Surgical sterilization", metadata=meta)
_treatments[5] = Treatment(id=5, label="Blood Panel", description="Complete blood count and chemistry", metadata=meta)
_treatments[1] = Treatment(id=1, label="Annual Checkup", description="Full physical examination",
procedures=[Procedure(name="Physical Exam", cost=50.0), Procedure(name="Heart Rate", notes=ProcedureNotes(summary="Normal rhythm"))],
metadata=meta)
_treatments[2] = Treatment(id=2, label="Vaccination", description="Core vaccines for common diseases",
procedures=[Procedure(name="DHPP Vaccine", cost=35.0), Procedure(name="Rabies Vaccine", cost=45.0)],
metadata=meta)
_treatments[3] = Treatment(id=3, label="Dental Cleaning", description="Scaling, polishing, and oral exam",
procedures=[Procedure(name="Scaling", cost=80.0), Procedure(name="Polishing", cost=40.0, notes=ProcedureNotes(summary="High-speed polish"))],
metadata=meta)
_treatments[4] = Treatment(id=4, label="Spay/Neuter", description="Surgical sterilization",
procedures=[Procedure(name="Pre-op Exam", cost=30.0), Procedure(name="Surgery", cost=200.0), Procedure(name="Post-op Care", cost=50.0)],
metadata=meta)
_treatments[5] = Treatment(id=5, label="Blood Panel", description="Complete blood count and chemistry",
procedures=[Procedure(name="CBC", cost=25.0), Procedure(name="Chemistry Panel", cost=60.0, notes=ProcedureNotes(summary="Fasting required"))],
metadata=meta)
_treatments_next_id = 6
_pets[1] = Pet(id=1, name="Max", species="dog", age=4, weight=25.5, birthDate=date(2022, 3, 15), parents=[_parents[1]], metadata=meta)