diff --git a/openapi_first/templates/vet_app/data.py b/openapi_first/templates/vet_app/data.py index 593ce96..c67e98a 100644 --- a/openapi_first/templates/vet_app/data.py +++ b/openapi_first/templates/vet_app/data.py @@ -159,7 +159,6 @@ 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 @@ -176,7 +175,6 @@ 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 @@ -271,6 +269,7 @@ def create_appointment(payload: AppointmentCreate) -> Appointment: id=_appointments_next_id, date=payload.date, notes=payload.notes, + procedures=payload.procedures, pet=_pets[payload.pet_id], vet=_vets[payload.vet_id], treatment=_treatments[payload.treatment_id], @@ -290,6 +289,7 @@ def update_appointment(appointment_id: int, payload: AppointmentCreate) -> Appoi id=appointment_id, date=payload.date, notes=payload.notes if payload.notes is not None else current.notes, + procedures=payload.procedures, pet=_pets.get(payload.pet_id, current.pet), vet=_vets.get(payload.vet_id, current.vet), treatment=_treatments.get(payload.treatment_id, current.treatment), @@ -324,21 +324,11 @@ 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", - 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[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_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) @@ -348,10 +338,18 @@ def _seed_data(): _pets[5] = Pet(id=5, name="Rocky", species="dog", age=3, weight=30.0, birthDate=date(2023, 11, 5), parents=[_parents[4]], metadata=meta) _pets_next_id = 6 - _appointments[1] = Appointment(id=1, date=datetime(2026, 6, 18, 9, 0, tzinfo=timezone.utc), notes="Annual checkup", pet=_pets[1], vet=_vets[1], treatment=_treatments[1], metadata=meta) - _appointments[2] = Appointment(id=2, date=datetime(2026, 6, 18, 10, 30, tzinfo=timezone.utc), notes="Dental cleaning", pet=_pets[2], vet=_vets[2], treatment=_treatments[3], metadata=meta) - _appointments[3] = Appointment(id=3, date=datetime(2026, 6, 19, 11, 0, tzinfo=timezone.utc), notes="Vaccination booster", pet=_pets[3], vet=_vets[3], treatment=_treatments[2], metadata=meta) - _appointments[4] = Appointment(id=4, date=datetime(2026, 6, 20, 14, 0, tzinfo=timezone.utc), notes="Follow-up after surgery", pet=_pets[5], vet=_vets[1], treatment=_treatments[4], metadata=meta) + _appointments[1] = Appointment(id=1, date=datetime(2026, 6, 18, 9, 0, tzinfo=timezone.utc), notes="Annual checkup", + procedures=[Procedure(name="Physical Exam", cost=50.0), Procedure(name="Heart Rate", notes=ProcedureNotes(summary="Normal rhythm"))], + pet=_pets[1], vet=_vets[1], treatment=_treatments[1], metadata=meta) + _appointments[2] = Appointment(id=2, date=datetime(2026, 6, 18, 10, 30, tzinfo=timezone.utc), notes="Dental cleaning", + procedures=[Procedure(name="Scaling", cost=80.0), Procedure(name="Polishing", cost=40.0, notes=ProcedureNotes(summary="High-speed polish"))], + pet=_pets[2], vet=_vets[2], treatment=_treatments[3], metadata=meta) + _appointments[3] = Appointment(id=3, date=datetime(2026, 6, 19, 11, 0, tzinfo=timezone.utc), notes="Vaccination booster", + procedures=[Procedure(name="DHPP Vaccine", cost=35.0), Procedure(name="Rabies Vaccine", cost=45.0)], + pet=_pets[3], vet=_vets[3], treatment=_treatments[2], metadata=meta) + _appointments[4] = Appointment(id=4, date=datetime(2026, 6, 20, 14, 0, tzinfo=timezone.utc), notes="Follow-up after surgery", + procedures=[Procedure(name="Pre-op Exam", cost=30.0), Procedure(name="Surgery", cost=200.0), Procedure(name="Post-op Care", cost=50.0)], + pet=_pets[5], vet=_vets[1], treatment=_treatments[4], metadata=meta) _appointments_next_id = 5 diff --git a/openapi_first/templates/vet_app/models.py b/openapi_first/templates/vet_app/models.py index 2895a82..898dac8 100644 --- a/openapi_first/templates/vet_app/models.py +++ b/openapi_first/templates/vet_app/models.py @@ -53,7 +53,6 @@ class Procedure(BaseModel): class TreatmentBase(BaseModel): label: str description: str | None = None - procedures: list[Procedure] = [] metadata: Metadata | None = None @@ -87,6 +86,7 @@ class Pet(PetBase): class AppointmentBase(BaseModel): date: datetime notes: str | None = None + procedures: list[Procedure] = [] metadata: Metadata | None = None diff --git a/openapi_first/templates/vet_app/openapi.yaml b/openapi_first/templates/vet_app/openapi.yaml index 11675f4..4b61a29 100644 --- a/openapi_first/templates/vet_app/openapi.yaml +++ b/openapi_first/templates/vet_app/openapi.yaml @@ -166,13 +166,6 @@ components: x-order: 2 x-label: "Description" x-description: "Detailed description of the treatment" - procedures: - type: array - items: - $ref: '#/components/schemas/Procedure' - x-order: 3 - x-label: "Procedures" - x-description: "List of procedures performed during this treatment" metadata: $ref: '#/components/schemas/Metadata' x-order: 4 @@ -276,6 +269,13 @@ components: x-order: 2 x-label: "Notes" x-description: "Any additional notes" + procedures: + type: array + items: + $ref: '#/components/schemas/Procedure' + x-order: 3 + x-label: "Procedures" + x-description: "List of procedures performed during this appointment" pet: $ref: '#/components/schemas/Pet' x-fk: