from .BaseSchemas import * from enums.enums import ClinicStatus, Integration # Update schemas (all fields optional for partial updates) class ClinicUpdate(BaseModel): name: Optional[str] = None address: Optional[str] = None phone: Optional[str] = None integration: Optional[Integration] = None pms_id: Optional[str] = None practice_name: Optional[str] = None logo: Optional[str] = None country: Optional[str] = None postal_code: Optional[str] = None city: Optional[str] = None state: Optional[str] = None abn_doc: Optional[str] = None abn_number: Optional[str] = None contract_doc: Optional[str] = None clinic_phone: Optional[str] = None is_clinic_phone_enabled: Optional[bool] = True other_info: Optional[str] = None greeting_msg: Optional[str] = None voice_model: Optional[str] = None voice_model_provider: Optional[str] = None voice_model_gender: Optional[str] = None scenarios: Optional[str] = None general_info: Optional[str] = None class ClinicStatusUpdate(BaseModel): clinic_id: int status: ClinicStatus rejection_reason: Optional[str] = None class SignupPricingMasterUpdate(SignupPricingMasterBase): pass class DoctorUpdate(BaseModel): name: Optional[str] = None age: Optional[int] = None email: Optional[EmailStr] = None phone: Optional[str] = None address: Optional[str] = None clinic_id: Optional[int] = None class PatientUpdate(BaseModel): name: Optional[str] = None age: Optional[int] = None email: Optional[EmailStr] = None phone: Optional[str] = None address: Optional[str] = None class AppointmentUpdate(BaseModel): doctor_id: Optional[int] = None patient_id: Optional[int] = None appointment_time: Optional[datetime] = None status: Optional[AppointmentStatus] = None class CalendarUpdate(BaseModel): doc_id: Optional[int] = None rrule: Optional[str] = None class UserUpdate(BaseModel): username: Optional[str] = None clinicRole: Optional[ClinicUserRoles] = None userType: Optional[UserType] = None profile_pic: Optional[str] = None password: Optional[str] = None class ClinicDoctorUpdate(ClinicDoctorBase): pass