vet app
This commit is contained in:
104
openapi_first/templates/vet_app/models.py
Normal file
104
openapi_first/templates/vet_app/models.py
Normal file
@@ -0,0 +1,104 @@
|
||||
"""
|
||||
Pydantic domain models for the Veterinary Clinic example.
|
||||
|
||||
This module defines Pydantic models representing the five domain
|
||||
entities used by the veterinary clinic service. These models are
|
||||
referenced by the OpenAPI specification for request and response
|
||||
schemas.
|
||||
|
||||
The models are declarative and framework-agnostic. They contain no
|
||||
persistence logic, validation beyond type constraints, or business
|
||||
behavior.
|
||||
|
||||
This module is not part of the ``openapi_first`` library API surface.
|
||||
It exists solely to support the example application template.
|
||||
"""
|
||||
|
||||
from datetime import date, datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Metadata(BaseModel):
|
||||
createdOn: datetime | None = None
|
||||
updatedOn: datetime | None = None
|
||||
|
||||
|
||||
class ParentBase(BaseModel):
|
||||
name: str
|
||||
email: str
|
||||
phone: str | None = None
|
||||
metadata: Metadata | None = None
|
||||
|
||||
|
||||
class ParentCreate(ParentBase):
|
||||
pass
|
||||
|
||||
|
||||
class Parent(ParentBase):
|
||||
id: int
|
||||
|
||||
|
||||
class VetBase(BaseModel):
|
||||
name: str
|
||||
specialty: str | None = None
|
||||
email: str
|
||||
phone: str | None = None
|
||||
metadata: Metadata | None = None
|
||||
|
||||
|
||||
class VetCreate(VetBase):
|
||||
pass
|
||||
|
||||
|
||||
class Vet(VetBase):
|
||||
id: int
|
||||
|
||||
|
||||
class TreatmentBase(BaseModel):
|
||||
label: str
|
||||
description: str | None = None
|
||||
metadata: Metadata | None = None
|
||||
|
||||
|
||||
class TreatmentCreate(TreatmentBase):
|
||||
pass
|
||||
|
||||
|
||||
class Treatment(TreatmentBase):
|
||||
id: int
|
||||
|
||||
|
||||
class PetBase(BaseModel):
|
||||
name: str
|
||||
species: str
|
||||
age: int | None = None
|
||||
weight: float | None = None
|
||||
birthDate: date | None = None
|
||||
photo: str | None = None
|
||||
parent_ids: list[int] = []
|
||||
metadata: Metadata | None = None
|
||||
|
||||
|
||||
class PetCreate(PetBase):
|
||||
pass
|
||||
|
||||
|
||||
class Pet(PetBase):
|
||||
id: int
|
||||
|
||||
|
||||
class AppointmentBase(BaseModel):
|
||||
date: datetime
|
||||
notes: str | None = None
|
||||
pet_id: int
|
||||
vet_id: int
|
||||
treatment_id: int
|
||||
metadata: Metadata | None = None
|
||||
|
||||
|
||||
class AppointmentCreate(AppointmentBase):
|
||||
pass
|
||||
|
||||
|
||||
class Appointment(AppointmentBase):
|
||||
id: int
|
||||
Reference in New Issue
Block a user