from datetime import date, datetime from typing import Optional from pydantic import BaseModel # Shared properties class PatientBase(BaseModel): date_of_birth: Optional[date] = None blood_type: Optional[str] = None allergies: Optional[str] = None medical_history: Optional[str] = None emergency_contact_name: Optional[str] = None emergency_contact_phone: Optional[str] = None # Properties to receive via API on creation class PatientCreate(PatientBase): user_id: int # Properties to receive via API on update class PatientUpdate(PatientBase): pass class PatientInDBBase(PatientBase): id: Optional[int] = None user_id: int created_at: Optional[datetime] = None updated_at: Optional[datetime] = None class Config: from_attributes = True # Additional properties to return via API class Patient(PatientInDBBase): pass # Additional properties stored in DB class PatientInDB(PatientInDBBase): pass