package dto // JSON:API PatientData DTOs type PatientDataOPC struct { ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` Title string `json:"title,omitempty" example:"Primary OPC"` } type PatientDataInsuranceDetail struct { ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` HealthInsuranceCompanyID string `json:"health_insurance_companies_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` FederalStateID string `json:"federal_state_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` HealthInsuranceCompany *InsurancePatientDataHealthInsuranceCompany `json:"health_insurance_company,omitempty"` FederalState *InsurancePatientDataFederalState `json:"federal_state,omitempty"` } type PatientDataAttributes struct { FamilyName string `json:"family_name" example:"Muster"` FirstName string `json:"first_name" example:"Max"` OPCId string `json:"opc_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` BirthDate string `json:"birth_date,omitempty" example:"1990-01-15"` Age *int `json:"age,omitempty" example:"35"` Gender string `json:"gender" example:"male"` Street string `json:"street,omitempty" example:"Hauptstraße 1"` SVNR string `json:"svnr,omitempty" example:"1234150190"` Email string `json:"email,omitempty" example:"max.muster@example.com"` Phone string `json:"phone,omitempty" example:"+431234567"` CoInsured bool `json:"co_insured" example:"false"` InsurancePatientDataId string `json:"insurance_patient_data_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` OPC *PatientDataOPC `json:"opc,omitempty"` InsurancePatientData *PatientDataInsuranceDetail `json:"insurance_patient_data,omitempty"` CreatedAt string `json:"created_at,omitempty" example:"2026-03-12T03:04:05Z"` CreatedBy string `json:"created_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` UpdatedAt string `json:"updated_at,omitempty" example:"2026-03-12T03:04:05Z"` UpdatedBy string `json:"updated_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` DeletedAt string `json:"deleted_at,omitempty" example:"2026-03-12T03:04:05Z"` DeletedBy string `json:"deleted_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` } type PatientDataResource struct { Type string `json:"type" example:"patient_data"` ID string `json:"id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` Attributes PatientDataAttributes `json:"attributes"` } type PatientDataResponse struct { Data PatientDataResource `json:"data"` } type PatientDataListResponse struct { Data []PatientDataResource `json:"data"` Meta struct { PageNumber int `json:"page_number" example:"1"` PageSize int `json:"page_size" example:"20"` Total int64 `json:"total" example:"120"` } `json:"meta"` } type PatientDataDataTableResponse struct { Data []PatientDataResource `json:"data"` Meta struct { Draw int `json:"draw" example:"1"` RecordsTotal int64 `json:"records_total" example:"120"` RecordsFiltered int64 `json:"records_filtered" example:"12"` } `json:"meta"` } type PatientDataCreateAttributes struct { FamilyName string `json:"family_name" validate:"required" example:"Muster"` FirstName string `json:"first_name" validate:"required" example:"Max"` OPCId *string `json:"opc_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` BirthDate *string `json:"birth_date,omitempty" example:"1990-01-15"` Gender string `json:"gender" validate:"required,oneof=male female" example:"male"` Street *string `json:"street,omitempty" example:"Hauptstraße 1"` SVNR *string `json:"svnr,omitempty" example:"1234150190"` Email *string `json:"email,omitempty" example:"max.muster@example.com"` Phone *string `json:"phone,omitempty" example:"+431234567"` CoInsured *bool `json:"co_insured,omitempty" example:"false"` InsurancePatientDataId *string `json:"insurance_patient_data_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` } type PatientDataCreateData struct { Type string `json:"type" validate:"required,oneof=patient_data_create patient_data" example:"patient_data_create"` Attributes PatientDataCreateAttributes `json:"attributes" validate:"required"` } type PatientDataCreateRequest struct { Data PatientDataCreateData `json:"data" validate:"required"` } type PatientDataUpdateAttributes struct { FamilyName *string `json:"family_name,omitempty" example:"Muster"` FirstName *string `json:"first_name,omitempty" example:"Max"` OPCId *string `json:"opc_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` BirthDate *string `json:"birth_date,omitempty" example:"1990-01-15"` Gender *string `json:"gender,omitempty" example:"male"` Street *string `json:"street,omitempty" example:"Hauptstraße 1"` SVNR *string `json:"svnr,omitempty" example:"1234150190"` Email *string `json:"email,omitempty" example:"max.muster@example.com"` Phone *string `json:"phone,omitempty" example:"+431234567"` CoInsured *bool `json:"co_insured,omitempty" example:"false"` InsurancePatientDataId *string `json:"insurance_patient_data_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` } type PatientDataUpdateData struct { Type string `json:"type" validate:"required,oneof=patient_data_update patient_data" example:"patient_data_update"` ID string `json:"id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"` Attributes PatientDataUpdateAttributes `json:"attributes" validate:"required"` } type PatientDataUpdateRequest struct { Data PatientDataUpdateData `json:"data" validate:"required"` }