115 lines
6.7 KiB
Go
115 lines
6.7 KiB
Go
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"`
|
|
}
|