{"openapi":"3.1.0","info":{"title":"Vodett Public API","description":"Create patients, appointments, and upload documents.","version":"1.0.0"},"paths":{"/api/public/v1/document-types":{"get":{"tags":["public"],"summary":"List Document Types","operationId":"list_document_types_api_public_v1_document_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DocumentTypeItem"},"type":"array","title":"Response List Document Types Api Public V1 Document Types Get"}}}}}}},"/api/public/v1/payment-methods":{"get":{"tags":["public"],"summary":"List Payment Methods","operationId":"list_payment_methods_api_public_v1_payment_methods_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PaymentMethodItem"},"type":"array","title":"Response List Payment Methods Api Public V1 Payment Methods Get"}}}}}}},"/api/public/v1/invoices":{"get":{"tags":["public"],"summary":"List Invoices","operationId":"list_invoices_api_public_v1_invoices_get","parameters":[{"name":"patient_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Patient Id"}},{"name":"unpaid","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unpaid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicInvoiceItem"},"title":"Response List Invoices Api Public V1 Invoices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/v1/invoices/{invoice_id}/payments":{"post":{"tags":["public"],"summary":"Record Payment Public","operationId":"record_payment_public_api_public_v1_invoices__invoice_id__payments_post","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Invoice Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordPaymentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPaymentResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/v1/services":{"get":{"tags":["public"],"summary":"List Services","operationId":"list_services_api_public_v1_services_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceItem"},"title":"Response List Services Api Public V1 Services Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/v1/doctors":{"get":{"tags":["public"],"summary":"List Doctors","operationId":"list_doctors_api_public_v1_doctors_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DoctorItem"},"title":"Response List Doctors Api Public V1 Doctors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/v1/patients":{"post":{"tags":["public"],"summary":"Create Patient Public","operationId":"create_patient_public_api_public_v1_patients_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/v1/appointments":{"post":{"tags":["public"],"summary":"Create Appointment Public","operationId":"create_appointment_public_api_public_v1_appointments_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/v1/patients/{patient_id}/documents":{"post":{"tags":["public"],"summary":"Upload Patient Document Public","operationId":"upload_patient_document_public_api_public_v1_patients__patient_id__documents_post","parameters":[{"name":"patient_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Patient Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_patient_document_public_api_public_v1_patients__patient_id__documents_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/src__public_api__schemas__DocumentUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AppointmentServiceBrief":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"},"default_duration_min":{"type":"integer","title":"Default Duration Min"}},"type":"object","required":["id","name","color","default_duration_min"],"title":"AppointmentServiceBrief"},"PublicPaymentResult":{"properties":{"payment_id":{"type":"string","format":"uuid","title":"Payment Id"},"invoice_id":{"type":"string","format":"uuid","title":"Invoice Id"},"patient_id":{"type":"string","format":"uuid","title":"Patient Id"},"amount":{"type":"number","title":"Amount"},"method":{"type":"string","title":"Method"},"currency":{"type":"string","title":"Currency"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"invoice_status":{"type":"string","title":"Invoice Status"},"invoice_total":{"type":"number","title":"Invoice Total"},"invoice_amount_paid":{"type":"number","title":"Invoice Amount Paid"},"invoice_balance":{"type":"number","title":"Invoice Balance"}},"type":"object","required":["payment_id","invoice_id","patient_id","amount","method","currency","created_at","invoice_status","invoice_total","invoice_amount_paid","invoice_balance"],"title":"PublicPaymentResult"},"Body_upload_patient_document_public_api_public_v1_patients__patient_id__documents_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},"type":"object","required":["file"],"title":"Body_upload_patient_document_public_api_public_v1_patients__patient_id__documents_post"},"ServiceItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"duration_min":{"type":"integer","title":"Duration Min"},"price":{"type":"number","title":"Price"},"color":{"type":"string","title":"Color"}},"type":"object","required":["id","name","duration_min","price","color"],"title":"ServiceItem"},"PatientResponse":{"properties":{"salutation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Salutation"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"first_name":{"type":"string","maxLength":128,"minLength":1,"title":"First Name"},"last_name":{"type":"string","maxLength":128,"minLength":1,"title":"Last Name"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"avatar":{"anyOf":[{"type":"string","maxLength":2000000},{"type":"null"}],"title":"Avatar"},"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Email"},"mobile":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Mobile"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"address_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Street"},"address_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Zip"},"address_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address City"},"address_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address State"},"address_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Address Country"},"insurance_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Type"},"insurer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurer Name"},"insurance_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Number"},"supplemental_insurance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplemental Insurance"},"insurer_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Insurer Id"},"billing_recipient":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Recipient"},"reference_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Number"},"tin":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tin"},"recall_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Recall Date"},"recall_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recall Type"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"},"cave":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cave"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"gdpr_consent":{"type":"boolean","title":"Gdpr Consent","default":false},"gdpr_consent_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Gdpr Consent Date"},"fax":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Fax"},"insured_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insured Status"},"billing_tariff":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Billing Tariff"},"insurance_category":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Insurance Category"},"insurance_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Insurance Country"},"insurance_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Note"},"prescription_fee_exempt":{"type":"boolean","title":"Prescription Fee Exempt","default":false},"is_doctor_relative":{"type":"boolean","title":"Is Doctor Relative","default":false},"has_disability":{"type":"boolean","title":"Has Disability","default":false},"has_supplemental_insurance":{"type":"boolean","title":"Has Supplemental Insurance","default":false},"supplemental_insurance_label":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Supplemental Insurance Label"},"supplemental_insurance_copies":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supplemental Insurance Copies"},"recall_manual_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Manual Month"},"recall_manual_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Manual Year"},"recall_contact_count":{"type":"integer","title":"Recall Contact Count","default":0},"recall_last_contact_at":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Recall Last Contact At"},"recall_hygiene_interval_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Hygiene Interval Months"},"recall_checkup_interval_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Checkup Interval Months"},"recall_blocked":{"type":"boolean","title":"Recall Blocked","default":false},"visit_address_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Address Street"},"visit_address_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Address Zip"},"visit_address_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Address City"},"visit_address_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Visit Address Country"},"visit_address_same_as_main":{"type":"boolean","title":"Visit Address Same As Main","default":true},"occupation":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Occupation"},"employer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer Name"},"employer_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer Street"},"employer_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer Zip"},"employer_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer City"},"employer_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Employer Country"},"employer_phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Employer Phone"},"referrer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referrer Name"},"referral_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Referral Date"},"referral_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Reason"},"gp_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gp Name"},"discount_percent":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Discount Percent","default":"0"},"dunning_blocked":{"type":"boolean","title":"Dunning Blocked","default":false},"bank_name":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Bank Name"},"bank_bic":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Bank Bic"},"bank_iban":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Bank Iban"},"last_anamnesis_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Anamnesis Date"},"mandant_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mandant User Id"},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","default":false},"suppress_payment_slip":{"type":"boolean","title":"Suppress Payment Slip","default":false},"appointments_blocked":{"type":"boolean","title":"Appointments Blocked","default":false},"consent_presentations":{"type":"boolean","title":"Consent Presentations","default":false},"communication_prefs":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Communication Prefs"},"contact_consent":{"type":"boolean","title":"Contact Consent","default":false},"portal_access":{"$ref":"#/components/schemas/PortalAccess"},"id":{"type":"string","format":"uuid","title":"Id"},"patient_number":{"type":"string","title":"Patient Number"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"outstanding_balance":{"type":"string","title":"Outstanding Balance","default":"0"},"outstanding_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outstanding Currency"},"insurer_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurer Code"},"last_panoramic_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Panoramic Date"}},"type":"object","required":["first_name","last_name","id","patient_number","is_active","created_at","updated_at"],"title":"PatientResponse"},"RecordPaymentRequest":{"properties":{"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"}],"title":"Amount"},"method":{"type":"string","maxLength":16,"title":"Method"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["amount","method"],"title":"RecordPaymentRequest"},"PatientCreate":{"properties":{"salutation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Salutation"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"first_name":{"type":"string","maxLength":128,"minLength":1,"title":"First Name"},"last_name":{"type":"string","maxLength":128,"minLength":1,"title":"Last Name"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"avatar":{"anyOf":[{"type":"string","maxLength":2000000},{"type":"null"}],"title":"Avatar"},"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Email"},"mobile":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Mobile"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"address_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Street"},"address_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Zip"},"address_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address City"},"address_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address State"},"address_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Address Country"},"insurance_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Type"},"insurer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurer Name"},"insurance_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Number"},"supplemental_insurance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplemental Insurance"},"insurer_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Insurer Id"},"billing_recipient":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Recipient"},"reference_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Number"},"tin":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tin"},"recall_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Recall Date"},"recall_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recall Type"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"},"cave":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cave"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"gdpr_consent":{"type":"boolean","title":"Gdpr Consent","default":false},"gdpr_consent_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Gdpr Consent Date"},"fax":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Fax"},"insured_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insured Status"},"billing_tariff":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Billing Tariff"},"insurance_category":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Insurance Category"},"insurance_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Insurance Country"},"insurance_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Note"},"prescription_fee_exempt":{"type":"boolean","title":"Prescription Fee Exempt","default":false},"is_doctor_relative":{"type":"boolean","title":"Is Doctor Relative","default":false},"has_disability":{"type":"boolean","title":"Has Disability","default":false},"has_supplemental_insurance":{"type":"boolean","title":"Has Supplemental Insurance","default":false},"supplemental_insurance_label":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Supplemental Insurance Label"},"supplemental_insurance_copies":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supplemental Insurance Copies"},"recall_manual_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Manual Month"},"recall_manual_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Manual Year"},"recall_contact_count":{"type":"integer","title":"Recall Contact Count","default":0},"recall_last_contact_at":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Recall Last Contact At"},"recall_hygiene_interval_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Hygiene Interval Months"},"recall_checkup_interval_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recall Checkup Interval Months"},"recall_blocked":{"type":"boolean","title":"Recall Blocked","default":false},"visit_address_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Address Street"},"visit_address_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Address Zip"},"visit_address_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Address City"},"visit_address_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Visit Address Country"},"visit_address_same_as_main":{"type":"boolean","title":"Visit Address Same As Main","default":true},"occupation":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Occupation"},"employer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer Name"},"employer_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer Street"},"employer_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer Zip"},"employer_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employer City"},"employer_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Employer Country"},"employer_phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Employer Phone"},"referrer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referrer Name"},"referral_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Referral Date"},"referral_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Reason"},"gp_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gp Name"},"discount_percent":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Discount Percent","default":"0"},"dunning_blocked":{"type":"boolean","title":"Dunning Blocked","default":false},"bank_name":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Bank Name"},"bank_bic":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Bank Bic"},"bank_iban":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Bank Iban"},"last_anamnesis_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Anamnesis Date"},"mandant_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mandant User Id"},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","default":false},"suppress_payment_slip":{"type":"boolean","title":"Suppress Payment Slip","default":false},"appointments_blocked":{"type":"boolean","title":"Appointments Blocked","default":false},"consent_presentations":{"type":"boolean","title":"Consent Presentations","default":false},"communication_prefs":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Communication Prefs"},"contact_consent":{"type":"boolean","title":"Contact Consent","default":false},"portal_access":{"$ref":"#/components/schemas/PortalAccess"},"link_existing_portal_user":{"type":"boolean","title":"Link Existing Portal User","default":false}},"type":"object","required":["first_name","last_name"],"title":"PatientCreate"},"src__public_api__schemas__DocumentUploadResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"size":{"type":"integer","title":"Size"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"type":{"type":"string","title":"Type"}},"type":"object","required":["id","filename","content_type","size","created_at","type"],"title":"DocumentUploadResponse"},"AppointmentCreate":{"properties":{"resource_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Resource Id"},"patient_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Patient Id"},"service_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Service Id"},"service_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Service Ids"},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Title"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"type":"string","format":"date-time","title":"End At"},"status":{"type":"string","title":"Status","default":"booked"},"appointment_type":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Appointment Type"},"color":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Color"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["start_at","end_at"],"title":"AppointmentCreate"},"PortalAccess":{"properties":{"invoices":{"type":"boolean","title":"Invoices","default":false},"quotations":{"type":"boolean","title":"Quotations","default":false},"xrays":{"type":"boolean","title":"Xrays","default":false},"scans":{"type":"boolean","title":"Scans","default":false},"prescriptions":{"type":"boolean","title":"Prescriptions","default":false},"consent":{"type":"boolean","title":"Consent","default":false},"communications":{"type":"boolean","title":"Communications","default":false},"other":{"type":"boolean","title":"Other","default":false}},"type":"object","title":"PortalAccess"},"PaymentMethodItem":{"properties":{"key":{"type":"string","title":"Key"},"requires_note":{"type":"boolean","title":"Requires Note"}},"type":"object","required":["key","requires_note"],"title":"PaymentMethodItem"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"AppointmentResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"appointment_number":{"type":"string","title":"Appointment Number"},"booking_source":{"type":"string","title":"Booking Source"},"resource_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Resource Id"},"patient_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Patient Id"},"service_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Service Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"type":"string","format":"date-time","title":"End At"},"status":{"type":"string","title":"Status"},"appointment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"patient_first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient First Name"},"patient_last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Last Name"},"patient_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Number"},"patient_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Email"},"patient_mobile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Mobile"},"patient_cave":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Cave"},"patient_classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Classification"},"service_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Name"},"service_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Color"},"service_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Service Ids"},"services":{"items":{"$ref":"#/components/schemas/AppointmentServiceBrief"},"type":"array","title":"Services"},"clinic_confirmed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Clinic Confirmed At"},"patient_confirmed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Patient Confirmed At"},"reschedule_from_start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reschedule From Start At"},"reschedule_from_end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reschedule From End At"},"reschedule_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reschedule By Role"},"reschedule_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reschedule At"},"confirmation_reminder_sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Confirmation Reminder Sent At"},"confirmation_state":{"type":"string","title":"Confirmation State","description":"awaiting_patient | awaiting_clinic | confirmed | n_a — who still owes\na confirmation. Derived from the confirmation timestamps; falls back to\nbooking_source for legacy rows that predate the timestamps.","readOnly":true}},"type":"object","required":["id","appointment_number","booking_source","resource_id","patient_id","service_id","title","start_at","end_at","status","appointment_type","color","notes","created_at","updated_at","confirmation_state"],"title":"AppointmentResponse"},"DocumentTypeItem":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"}},"type":"object","required":["key","label"],"title":"DocumentTypeItem"},"DoctorItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"}},"type":"object","required":["id","name","color"],"title":"DoctorItem"},"PublicInvoiceItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"invoice_number":{"type":"string","title":"Invoice Number"},"patient_id":{"type":"string","format":"uuid","title":"Patient Id"},"status":{"type":"string","title":"Status"},"currency":{"type":"string","title":"Currency"},"total":{"type":"number","title":"Total"},"amount_paid":{"type":"number","title":"Amount Paid"},"balance":{"type":"number","title":"Balance"},"issued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Issued At"}},"type":"object","required":["id","invoice_number","patient_id","status","currency","total","amount_paid","balance","issued_at"],"title":"PublicInvoiceItem"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}