From 5794256f621d27d8ba20a29c3dacca628ff92d28 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:08:43 +0700 Subject: [PATCH 01/10] fix json convention for list --- internal/domain/main-entities/adime/dto.go | 4 ++-- .../domain/main-entities/ambulatory/dto.go | 4 ++-- .../domain/main-entities/appointment/dto.go | 12 ++++++------ internal/domain/main-entities/chemo/dto.go | 14 +++++++------- internal/domain/main-entities/chemo/entity.go | 4 ++-- .../domain/main-entities/consultation/dto.go | 6 +++--- internal/domain/main-entities/counter/dto.go | 6 +++--- .../main-entities/device-order-item/dto.go | 4 ++-- .../domain/main-entities/device-order/dto.go | 6 +++--- internal/domain/main-entities/device/dto.go | 6 +++--- internal/domain/main-entities/district/dto.go | 2 +- .../main-entities/division-position/dto.go | 2 +- internal/domain/main-entities/division/dto.go | 2 +- .../domain/main-entities/doctor-fee/dto.go | 6 +++--- internal/domain/main-entities/doctor/dto.go | 12 ++++++------ internal/domain/main-entities/emergency/dto.go | 4 ++-- internal/domain/main-entities/employee/dto.go | 8 ++++---- internal/domain/main-entities/encounter/dto.go | 18 +++++++++--------- internal/domain/main-entities/infra/dto.go | 6 +++--- internal/domain/main-entities/inpatient/dto.go | 6 +++--- .../domain/main-entities/installation/dto.go | 2 +- .../main-entities/insurance-company/dto.go | 2 +- .../domain/main-entities/item-price/dto.go | 4 ++-- internal/domain/main-entities/item/dto.go | 6 +++--- internal/domain/main-entities/laborant/dto.go | 4 ++-- .../main-entities/material-order-item/dto.go | 4 ++-- .../domain/main-entities/material-order/dto.go | 2 +- internal/domain/main-entities/material/dto.go | 6 +++--- .../domain/main-entities/mcu-order-item/dto.go | 6 +++--- .../main-entities/mcu-order-sub-item/dto.go | 6 +++--- internal/domain/main-entities/mcu-order/dto.go | 8 ++++---- .../main-entities/mcu-src-category/dto.go | 2 +- internal/domain/main-entities/mcu-src/dto.go | 2 +- .../domain/main-entities/mcu-sub-src/dto.go | 2 +- .../medical-action-src-item/dto.go | 6 +++--- .../main-entities/medical-action-src/dto.go | 2 +- .../main-entities/medication-item-dist/dto.go | 4 ++-- .../main-entities/medication-item/dto.go | 8 ++++---- .../domain/main-entities/medication/dto.go | 6 +++--- .../main-entities/medicine-mix-item/dto.go | 4 ++-- .../domain/main-entities/medicine-mix/dto.go | 2 +- internal/domain/main-entities/medicine/dto.go | 10 +++++----- internal/domain/main-entities/nurse/dto.go | 8 ++++---- .../domain/main-entities/nutritionist/dto.go | 4 ++-- internal/domain/main-entities/patient/dto.go | 4 ++-- .../main-entities/person-relative/dto.go | 15 +++++++-------- internal/domain/main-entities/person/dto.go | 16 ++++++++-------- .../domain/main-entities/pharmacist/dto.go | 4 ++-- .../main-entities/pharmacy-company/dto.go | 2 +- .../main-entities/practice-schedule/dto.go | 6 +++--- .../main-entities/prescription-item/dto.go | 8 ++++---- .../domain/main-entities/prescription/dto.go | 6 +++--- internal/domain/main-entities/regency/dto.go | 2 +- internal/domain/main-entities/room/dto.go | 8 ++++---- internal/domain/main-entities/sbar/dto.go | 4 ++-- internal/domain/main-entities/soapi/dto.go | 4 ++-- .../main-entities/specialist-intern/dto.go | 8 ++++---- .../domain/main-entities/specialist/dto.go | 2 +- .../domain/main-entities/subspecialist/dto.go | 2 +- internal/domain/main-entities/unit/dto.go | 2 +- internal/domain/main-entities/user/dto.go | 2 +- internal/domain/main-entities/village/dto.go | 2 +- 62 files changed, 169 insertions(+), 170 deletions(-) diff --git a/internal/domain/main-entities/adime/dto.go b/internal/domain/main-entities/adime/dto.go index e1c67451..d121c24b 100644 --- a/internal/domain/main-entities/adime/dto.go +++ b/internal/domain/main-entities/adime/dto.go @@ -27,8 +27,8 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Employee_Id *uint `json:"employee_id"` + Encounter_Id *uint `json:"encounter-id"` + Employee_Id *uint `json:"employee-id"` Time *time.Time `json:"time"` Value *string `json:"value"` } diff --git a/internal/domain/main-entities/ambulatory/dto.go b/internal/domain/main-entities/ambulatory/dto.go index 4236f6bd..79a69807 100644 --- a/internal/domain/main-entities/ambulatory/dto.go +++ b/internal/domain/main-entities/ambulatory/dto.go @@ -19,8 +19,8 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Class_Code ere.AmbulatoryClassCode `json:"class_code"` + Encounter_Id *uint `json:"encounter-id"` + Class_Code ere.AmbulatoryClassCode `json:"class-code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/appointment/dto.go b/internal/domain/main-entities/appointment/dto.go index 356abf5a..3f7fcea9 100644 --- a/internal/domain/main-entities/appointment/dto.go +++ b/internal/domain/main-entities/appointment/dto.go @@ -18,12 +18,12 @@ type CreateDto struct { } type ReadListDto struct { - PracticeSchedule_Id *uint `json:"practiceSchedule_id"` - Patient_Id *uint `json:"patient_id"` - Person_ResidentIdentityNumber string `json:"person_residentIdentityNumber"` - Person_Name string `json:"person_name"` - Person_PhoneNumber string `json:"person_phoneNumber"` - PaymentMethod_Code erc.PaymentMethodCode `json:"paymentMethod_code"` + PracticeSchedule_Id *uint `json:"practiceSchedule-id"` + Patient_Id *uint `json:"patient-id"` + Person_ResidentIdentityNumber string `json:"person-residentIdentityNumber"` + Person_Name string `json:"person-name"` + Person_PhoneNumber string `json:"person-phoneNumber"` + PaymentMethod_Code erc.PaymentMethodCode `json:"paymentMethod-code"` RefNumber string `json:"refNumber"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/chemo/dto.go b/internal/domain/main-entities/chemo/dto.go index 9b50b37c..dd432d43 100644 --- a/internal/domain/main-entities/chemo/dto.go +++ b/internal/domain/main-entities/chemo/dto.go @@ -16,7 +16,7 @@ import ( type CreateDto struct { Encounter_Id *uint `json:"encounter_id"` Status_Code erc.DataVerifiedCode `json:"status_code"` - SrcUnit_Id *uint `json:"src_unit_id"` + SrcUnit_Id *uint `json:"srcUnit_id"` } type ReadListDto struct { @@ -27,10 +27,10 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Status_Code *erc.DataVerifiedCode `json:"status_code"` - VerifiedBy_User_Id *uint `json:"verifiedBy_user_id"` - SrcUnit_Id *uint `json:"src_unit_id"` + Encounter_Id *uint `json:"encounter-id"` + Status_Code *erc.DataVerifiedCode `json:"status-code"` + VerifiedBy_User_Id *uint `json:"verifiedBy-user-id"` + SrcUnit_Id *uint `json:"srcUnit-id"` } type ReadDetailDto struct { @@ -67,8 +67,8 @@ type ResponseDto struct { VerifiedAt *time.Time `json:"verifiedAt"` VerifiedBy_User_Id *uint `json:"verifiedBy_user_id"` VerifiedBy *eus.User `json:"verifiedBy,omitempty"` - SrcUnit_Id *uint `json:"src_unit_id"` - SrcUnit *eun.Unit `json:"src_unit,omitempty"` + SrcUnit_Id *uint `json:"srcUnit_id"` + SrcUnit *eun.Unit `json:"srcUnit,omitempty"` } func (d Chemo) ToResponse() ResponseDto { diff --git a/internal/domain/main-entities/chemo/entity.go b/internal/domain/main-entities/chemo/entity.go index 2ba83990..f80d5bc1 100644 --- a/internal/domain/main-entities/chemo/entity.go +++ b/internal/domain/main-entities/chemo/entity.go @@ -19,6 +19,6 @@ type Chemo struct { VerifiedAt *time.Time `json:"verifiedAt"` VerifiedBy_User_Id *uint `json:"verifiedBy_user_id"` VerifiedBy *eus.User `json:"verifiedBy,omitempty" gorm:"foreignKey:VerifiedBy_User_Id;references:Id"` - SrcUnit_Id *uint `json:"src_unit_id"` - SrcUnit *eun.Unit `json:"src_unit,omitempty" gorm:"foreignKey:SrcUnit_Id;references:Id"` + SrcUnit_Id *uint `json:"srcUnit_id"` + SrcUnit *eun.Unit `json:"srcUnit,omitempty" gorm:"foreignKey:SrcUnit_Id;references:Id"` } diff --git a/internal/domain/main-entities/consultation/dto.go b/internal/domain/main-entities/consultation/dto.go index 7b53f90f..ea141ace 100644 --- a/internal/domain/main-entities/consultation/dto.go +++ b/internal/domain/main-entities/consultation/dto.go @@ -26,9 +26,9 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - DstUnit_Id *uint `json:"dstUnit_id"` - DstDoctor_Id *uint `json:"dstDoctor_id"` + Encounter_Id *uint `json:"encounter-id"` + DstUnit_Id *uint `json:"dstUnit-id"` + DstDoctor_Id *uint `json:"dstDoctor-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/counter/dto.go b/internal/domain/main-entities/counter/dto.go index ae2a2e18..ad11f7a0 100644 --- a/internal/domain/main-entities/counter/dto.go +++ b/internal/domain/main-entities/counter/dto.go @@ -17,9 +17,9 @@ type ReadListDto struct { Code string `json:"code"` Name string `json:"name"` Number uint8 `json:"number"` - Parent_Id *uint16 `json:"parent_id"` - Type_Code string `json:"type_code"` - Queue_Code string `json:"queue_code"` + Parent_Id *uint16 `json:"parent-id"` + Type_Code string `json:"type-code"` + Queue_Code string `json:"queue-code"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/device-order-item/dto.go b/internal/domain/main-entities/device-order-item/dto.go index 90c6ea2b..7206e7db 100644 --- a/internal/domain/main-entities/device-order-item/dto.go +++ b/internal/domain/main-entities/device-order-item/dto.go @@ -20,8 +20,8 @@ type ReadListDto struct { } type FilterDto struct { - DeviceOrder_Id *uint `json:"deviceOrder_id"` - Device_Id *uint `json:"device_id"` + DeviceOrder_Id *uint `json:"deviceOrder-id"` + Device_Id *uint `json:"device-id"` Count uint8 `json:"count"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/device-order/dto.go b/internal/domain/main-entities/device-order/dto.go index a045a096..e1c5c1ea 100644 --- a/internal/domain/main-entities/device-order/dto.go +++ b/internal/domain/main-entities/device-order/dto.go @@ -26,9 +26,9 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Status_Code erc.DataStatusCode `json:"status_code"` - Doctor_Id *uint `json:"doctor_id"` + Encounter_Id *uint `json:"encounter-id"` + Status_Code erc.DataStatusCode `json:"status-code"` + Doctor_Id *uint `json:"doctor-id"` } type ReadDetailDto struct { Id uint16 `json:"id"` diff --git a/internal/domain/main-entities/device/dto.go b/internal/domain/main-entities/device/dto.go index b8046c75..5a00ca18 100644 --- a/internal/domain/main-entities/device/dto.go +++ b/internal/domain/main-entities/device/dto.go @@ -26,9 +26,9 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - Uom_Code string `json:"uom_code"` - Infra_Id *uint16 `json:"infra_id"` - Item_Id *uint `json:"item_id"` + Uom_Code string `json:"uom-code"` + Infra_Id *uint16 `json:"infra-id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/district/dto.go b/internal/domain/main-entities/district/dto.go index 869aa9c2..be0f6c01 100644 --- a/internal/domain/main-entities/district/dto.go +++ b/internal/domain/main-entities/district/dto.go @@ -12,7 +12,7 @@ type CreateDto struct { } type ReadListDto struct { - Regency_Code string `json:"regency_code"` + Regency_Code string `json:"regency-code"` Code string `json:"code"` Name string `json:"name"` Pagination ecore.Pagination diff --git a/internal/domain/main-entities/division-position/dto.go b/internal/domain/main-entities/division-position/dto.go index 20664a7e..66aa43db 100644 --- a/internal/domain/main-entities/division-position/dto.go +++ b/internal/domain/main-entities/division-position/dto.go @@ -19,7 +19,7 @@ type ReadListDto struct { } type FilterDto struct { - Division_Id *uint16 `json:"division_id"` + Division_Id *uint16 `json:"division-id"` Code string `json:"code"` Name string `json:"name"` } diff --git a/internal/domain/main-entities/division/dto.go b/internal/domain/main-entities/division/dto.go index 2babaf28..87f1a5f7 100644 --- a/internal/domain/main-entities/division/dto.go +++ b/internal/domain/main-entities/division/dto.go @@ -22,7 +22,7 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - Parent_Id *uint16 `json:"parent_id"` + Parent_Id *uint16 `json:"parent-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/doctor-fee/dto.go b/internal/domain/main-entities/doctor-fee/dto.go index c11467dd..4bec752e 100644 --- a/internal/domain/main-entities/doctor-fee/dto.go +++ b/internal/domain/main-entities/doctor-fee/dto.go @@ -22,10 +22,10 @@ type ReadListDto struct { } type FilterDto struct { - Doctor_Id *uint `json:"doctor_id"` - FeeType_Code *ero.DoctorFeeTypeCode `json:"feeType_code"` + Doctor_Id *uint `json:"doctor-id"` + FeeType_Code *ero.DoctorFeeTypeCode `json:"feeType-code"` Price *float64 `json:"price"` - Item_Id *uint `json:"item_id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/doctor/dto.go b/internal/domain/main-entities/doctor/dto.go index b6177607..4f298795 100644 --- a/internal/domain/main-entities/doctor/dto.go +++ b/internal/domain/main-entities/doctor/dto.go @@ -25,12 +25,12 @@ type ReadListDto struct { } type FilterDto struct { - Employee_Id *uint `json:"employee_id"` - IHS_Number *string `json:"ihs_number" validate:"maxLength=20"` - SIP_Number *string `json:"sip_number" validate:"maxLength=20"` - Unit_Id *uint `json:"unit_id"` - Specialist_Id *uint16 `json:"specialist_id"` - Subspecialist_Id *uint16 `json:"subspecialist_id"` + Employee_Id *uint `json:"employee-id"` + IHS_Number *string `json:"ihs-number" validate:"maxLength=20"` + SIP_Number *string `json:"sip-number" validate:"maxLength=20"` + Unit_Id *uint `json:"unit-id"` + Specialist_Id *uint16 `json:"specialist-id"` + Subspecialist_Id *uint16 `json:"subspecialist-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/emergency/dto.go b/internal/domain/main-entities/emergency/dto.go index ff9041a6..e37ba95d 100644 --- a/internal/domain/main-entities/emergency/dto.go +++ b/internal/domain/main-entities/emergency/dto.go @@ -19,8 +19,8 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Class_Code ere.EmergencyClassCode `json:"class_code"` + Encounter_Id *uint `json:"encounter-id"` + Class_Code ere.EmergencyClassCode `json:"class-code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/employee/dto.go b/internal/domain/main-entities/employee/dto.go index fa0a240c..d7b723f9 100644 --- a/internal/domain/main-entities/employee/dto.go +++ b/internal/domain/main-entities/employee/dto.go @@ -25,11 +25,11 @@ type ReadListDto struct { } type FilterDto struct { - User_Id *uint `json:"user_id"` - Person_Id *uint `json:"person_id"` - Division_Code *string `json:"division_code"` + User_Id *uint `json:"user-id"` + Person_Id *uint `json:"person-id"` + Division_Code *string `json:"division-code"` Number *string `json:"number"` - Status_Code erc.ActiveStatusCode `json:"status_code"` + Status_Code erc.ActiveStatusCode `json:"status-code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/encounter/dto.go b/internal/domain/main-entities/encounter/dto.go index b0415901..b9057610 100644 --- a/internal/domain/main-entities/encounter/dto.go +++ b/internal/domain/main-entities/encounter/dto.go @@ -39,19 +39,19 @@ type ReadListDto struct { } type FilterDto struct { - Patient_Id *uint `json:"patient_id"` + Patient_Id *uint `json:"patient-id"` Patient *ep.Patient `json:"patient,omitempty"` RegisteredAt *time.Time `json:"registeredAt"` Class_Code ere.EncounterClassCode `json:"class_code" validate:"maxLength=10"` - Unit_Id *uint `json:"unit_id"` - Specialist_Id *uint16 `json:"specialist_id"` - Subspecialist_Id *uint16 `json:"subspecialist_id"` + Unit_Id *uint `json:"unit-id"` + Specialist_Id *uint16 `json:"specialist-id"` + Subspecialist_Id *uint16 `json:"subspecialist-id"` VisitDate time.Time `json:"visitDate"` - Appoinment_Doctor_Id *uint `json:"appointment_doctor_id"` - Responsible_Doctor_Id *uint `json:"responsible_doctor_id"` - DischargeMethod_Code ere.DischargeMethodCode `json:"dischargeMethod_code" validate:"maxLength=10"` - RefSource_Name *string `json:"refSource_name" validate:"maxLength=100"` - Appointment_Id *uint `json:"appointment_id"` + Appoinment_Doctor_Id *uint `json:"appointment-doctor-id"` + Responsible_Doctor_Id *uint `json:"responsible-doctor-id"` + DischargeMethod_Code ere.DischargeMethodCode `json:"dischargeMethod-code" validate:"maxLength=10"` + RefSource_Name *string `json:"refSource-name" validate:"maxLength=100"` + Appointment_Id *uint `json:"appointment-id"` EarlyEducation *string `json:"earlyEducation"` MedicalDischargeEducation *string `json:"medicalDischargeEducation"` AdmDischargeEducation *string `json:"admDischargeEducation"` diff --git a/internal/domain/main-entities/infra/dto.go b/internal/domain/main-entities/infra/dto.go index fda399e5..34a0774d 100644 --- a/internal/domain/main-entities/infra/dto.go +++ b/internal/domain/main-entities/infra/dto.go @@ -31,9 +31,9 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - InfraGroup_Code ero.InfraGroupCode `json:"infraGroup_code"` - Parent_Id *uint16 `json:"parent_id"` - Item_Id *uint `json:"item_id"` + InfraGroup_Code ero.InfraGroupCode `json:"infraGroup-code"` + Parent_Id *uint16 `json:"parent-id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/inpatient/dto.go b/internal/domain/main-entities/inpatient/dto.go index 6592db69..c2191c6b 100644 --- a/internal/domain/main-entities/inpatient/dto.go +++ b/internal/domain/main-entities/inpatient/dto.go @@ -22,9 +22,9 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Class_Code ere.InpatientClassCode `json:"class_code"` - Infra_Id *uint16 `json:"infra_id"` + Encounter_Id *uint `json:"encounter-id"` + Class_Code ere.InpatientClassCode `json:"class-code"` + Infra_Id *uint16 `json:"infra-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/installation/dto.go b/internal/domain/main-entities/installation/dto.go index ee307677..f6d8ef03 100644 --- a/internal/domain/main-entities/installation/dto.go +++ b/internal/domain/main-entities/installation/dto.go @@ -15,7 +15,7 @@ type CreateDto struct { type ReadListDto struct { Code string `json:"code"` Name string `json:"name"` - EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code"` + EncounterClass_Code ere.EncounterClassCode `json:"encounterClass-code"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/insurance-company/dto.go b/internal/domain/main-entities/insurance-company/dto.go index b99b546e..93966c71 100644 --- a/internal/domain/main-entities/insurance-company/dto.go +++ b/internal/domain/main-entities/insurance-company/dto.go @@ -23,7 +23,7 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - Regency_Code *string `json:"regency_code"` + Regency_Code *string `json:"regency-code"` Address string `json:"address"` PhoneNumber string `json:"phoneNumber"` } diff --git a/internal/domain/main-entities/item-price/dto.go b/internal/domain/main-entities/item-price/dto.go index a8ec2f55..1a4ca2a4 100644 --- a/internal/domain/main-entities/item-price/dto.go +++ b/internal/domain/main-entities/item-price/dto.go @@ -20,9 +20,9 @@ type ReadListDto struct { } type FilterDto struct { - Item_Id *uint `json:"item_id"` + Item_Id *uint `json:"item-id"` Price float64 `json:"price"` - InsuranceCompany_Code *string `json:"insuranceCompany_code"` + InsuranceCompany_Code *string `json:"insuranceCompany-code"` } type ReadDetailDto struct { Id uint16 `json:"id"` diff --git a/internal/domain/main-entities/item/dto.go b/internal/domain/main-entities/item/dto.go index 32844b43..3d48e2bb 100644 --- a/internal/domain/main-entities/item/dto.go +++ b/internal/domain/main-entities/item/dto.go @@ -25,9 +25,9 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - ItemGroup_Code ero.ItemGroupCode `json:"itemGroup_code"` - Uom_Code *string `json:"uom_code"` - Infra_Id *uint16 `json:"infra_id"` + ItemGroup_Code ero.ItemGroupCode `json:"itemGroup-code"` + Uom_Code *string `json:"uom-code"` + Infra_Id *uint16 `json:"infra-id"` Stock *int `json:"stock"` } diff --git a/internal/domain/main-entities/laborant/dto.go b/internal/domain/main-entities/laborant/dto.go index aff95200..3648455c 100644 --- a/internal/domain/main-entities/laborant/dto.go +++ b/internal/domain/main-entities/laborant/dto.go @@ -18,8 +18,8 @@ type ReadListDto struct { } type FilterDto struct { - Employee_Id *uint `json:"employee_id"` - IHS_Number *string `json:"ihs_number"` + Employee_Id *uint `json:"employee-id"` + IHS_Number *string `json:"ihs-number"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/material-order-item/dto.go b/internal/domain/main-entities/material-order-item/dto.go index 91e3c52d..74b1f05f 100644 --- a/internal/domain/main-entities/material-order-item/dto.go +++ b/internal/domain/main-entities/material-order-item/dto.go @@ -20,8 +20,8 @@ type ReadListDto struct { } type FilterDto struct { - MaterialOrder_Id *uint `json:"materialOrder_id"` - Material_Id *uint `json:"material_id"` + MaterialOrder_Id *uint `json:"materialOrder-id"` + Material_Id *uint `json:"material-id"` Count *uint16 `json:"count"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/material-order/dto.go b/internal/domain/main-entities/material-order/dto.go index 553347eb..d2971a85 100644 --- a/internal/domain/main-entities/material-order/dto.go +++ b/internal/domain/main-entities/material-order/dto.go @@ -26,7 +26,7 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` + Encounter_Id *uint `json:"encounter-id"` Status_Code erc.DataStatusCode `json:"status_code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/material/dto.go b/internal/domain/main-entities/material/dto.go index 16f6b7c7..695b3d11 100644 --- a/internal/domain/main-entities/material/dto.go +++ b/internal/domain/main-entities/material/dto.go @@ -27,10 +27,10 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - Uom_Code string `json:"uom_code"` - Infra_Id *uint16 `json:"infra_id"` + Uom_Code string `json:"uom-code"` + Infra_Id *uint16 `json:"infra-id"` Stock *int `json:"stock"` - Item_Id *uint `json:"item_id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/mcu-order-item/dto.go b/internal/domain/main-entities/mcu-order-item/dto.go index 61590ffc..06ebd781 100644 --- a/internal/domain/main-entities/mcu-order-item/dto.go +++ b/internal/domain/main-entities/mcu-order-item/dto.go @@ -24,10 +24,10 @@ type ReadListDto struct { } type FilterDto struct { - McuOrder_Id *uint `json:"mcuOrder_id"` - McuSrc_Id *uint `json:"mcuSrc_id"` + McuOrder_Id *uint `json:"mcuOrder-id"` + McuSrc_Id *uint `json:"mcuSrc-id"` Result *string `json:"result"` - Status_Code erc.DataStatusCode `json:"status_code"` + Status_Code erc.DataStatusCode `json:"status-code"` } type ReadDetailDto struct { Id uint `json:"id"` diff --git a/internal/domain/main-entities/mcu-order-sub-item/dto.go b/internal/domain/main-entities/mcu-order-sub-item/dto.go index bfd2312a..a38376d3 100644 --- a/internal/domain/main-entities/mcu-order-sub-item/dto.go +++ b/internal/domain/main-entities/mcu-order-sub-item/dto.go @@ -22,10 +22,10 @@ type ReadListDto struct { } type FilterDto struct { - McuOrder_Id *uint `json:"mcuOrder_id"` - McuSrc_Id *uint `json:"mcuSrc_id"` + McuOrder_Id *uint `json:"mcuOrder-id"` + McuSrc_Id *uint `json:"mcuSrc-id"` Result *string `json:"result"` - Status_Code erc.DataStatusCode `json:"status_code"` + Status_Code erc.DataStatusCode `json:"status-code"` } type ReadDetailDto struct { Id uint `json:"id"` diff --git a/internal/domain/main-entities/mcu-order/dto.go b/internal/domain/main-entities/mcu-order/dto.go index 75f3647f..a5e09f5e 100644 --- a/internal/domain/main-entities/mcu-order/dto.go +++ b/internal/domain/main-entities/mcu-order/dto.go @@ -33,14 +33,14 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Status_Code erc.DataStatusCode `json:"status_code" gorm:"not null;size:10"` - Doctor_Id *uint `json:"doctor_id"` + Encounter_Id *uint `json:"encounter-id"` + Status_Code erc.DataStatusCode `json:"status-code" gorm:"not null;size:10"` + Doctor_Id *uint `json:"doctor-id"` SpecimenPickTime *time.Time `json:"specimenPickTime"` ExaminationDate *time.Time `json:"examinationDate"` Number uint8 `json:"number"` Temperature float64 `json:"temperature"` - McuUrgencyLevel_Code ercl.McuUrgencyLevelCode `json:"mcuUrgencyLevel_code""` + McuUrgencyLevel_Code ercl.McuUrgencyLevelCode `json:"mcuUrgencyLevel-code""` } type ReadDetailDto struct { Id uint `json:"id"` diff --git a/internal/domain/main-entities/mcu-src-category/dto.go b/internal/domain/main-entities/mcu-src-category/dto.go index 06ab351c..bf2deb4a 100644 --- a/internal/domain/main-entities/mcu-src-category/dto.go +++ b/internal/domain/main-entities/mcu-src-category/dto.go @@ -15,7 +15,7 @@ type CreateDto struct { type ReadListDto struct { Code string `json:"code"` Name string `json:"name"` - Scope_Code *ere.CheckupScopeCode `json:"scope_code"` + Scope_Code *ere.CheckupScopeCode `json:"scope-code"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/mcu-src/dto.go b/internal/domain/main-entities/mcu-src/dto.go index 447bb64f..be1c14bf 100644 --- a/internal/domain/main-entities/mcu-src/dto.go +++ b/internal/domain/main-entities/mcu-src/dto.go @@ -23,7 +23,7 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - McuSrcCategory_Code *string `json:"mcuSrcCategory_code"` + McuSrcCategory_Code *string `json:"mcuSrcCategory-code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/mcu-sub-src/dto.go b/internal/domain/main-entities/mcu-sub-src/dto.go index eb3a2c5b..0a3f52a9 100644 --- a/internal/domain/main-entities/mcu-sub-src/dto.go +++ b/internal/domain/main-entities/mcu-sub-src/dto.go @@ -24,7 +24,7 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - CheckupCategory_Code *string `json:"checkupCategory_code"` + CheckupCategory_Code *string `json:"checkupCategory-code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/medical-action-src-item/dto.go b/internal/domain/main-entities/medical-action-src-item/dto.go index 357d5f1b..e60a12ed 100644 --- a/internal/domain/main-entities/medical-action-src-item/dto.go +++ b/internal/domain/main-entities/medical-action-src-item/dto.go @@ -21,9 +21,9 @@ type ReadListDto struct { } type FilterDto struct { - MedicalActionSrc_Id *uint `json:"medicalActionSrc_id"` - ProcedureSrc_Id *uint `json:"procedureSrc_id"` - Item_Id *uint `json:"item_id"` + MedicalActionSrc_Id *uint `json:"medicalActionSrc-id"` + ProcedureSrc_Id *uint `json:"procedureSrc-id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/medical-action-src/dto.go b/internal/domain/main-entities/medical-action-src/dto.go index a6178e71..509f5b49 100644 --- a/internal/domain/main-entities/medical-action-src/dto.go +++ b/internal/domain/main-entities/medical-action-src/dto.go @@ -22,7 +22,7 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - Item_Id *uint `json:"item_id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/medication-item-dist/dto.go b/internal/domain/main-entities/medication-item-dist/dto.go index ffafede0..5186b99c 100644 --- a/internal/domain/main-entities/medication-item-dist/dto.go +++ b/internal/domain/main-entities/medication-item-dist/dto.go @@ -24,10 +24,10 @@ type ReadListDto struct { } type FilterDto struct { - MedicationItem_Id *uint `json:"medicationItem_id"` + MedicationItem_Id *uint `json:"medicationItem-id"` DateTime *time.Time `json:"dateTime"` Remain float64 `json:"remain"` - Nurse_Id *uint `json:"nurse_id"` + Nurse_Id *uint `json:"nurse-id"` } type ReadDetailDto struct { Id uint16 `json:"id"` diff --git a/internal/domain/main-entities/medication-item/dto.go b/internal/domain/main-entities/medication-item/dto.go index bf9d9f28..26a5b35e 100644 --- a/internal/domain/main-entities/medication-item/dto.go +++ b/internal/domain/main-entities/medication-item/dto.go @@ -33,13 +33,13 @@ type ReadListDto struct { } type FilterDto struct { - Medication_Id *uint `json:"medication_id"` + Medication_Id *uint `json:"medication-id"` IsMix bool `json:"isMix"` - Medicine_Id *uint `json:"medicine_id"` - MedicineMix_Id *uint `json:"medicineMix_id"` + Medicine_Id *uint `json:"medicine-id"` + MedicineMix_Id *uint `json:"medicineMix-id"` Usage float64 `json:"usage"` Interval uint8 `json:"interval"` - IntervalUnit_Code erc.TimeUnitCode `json:"intervalUnit_code"` + IntervalUnit_Code erc.TimeUnitCode `json:"intervalUnit-code"` IsRedeemed bool `json:"isRedeemed"` Quantity float64 `json:"quantity"` Note *string `json:"note" gorm:"size:1024"` diff --git a/internal/domain/main-entities/medication/dto.go b/internal/domain/main-entities/medication/dto.go index 0db720f4..abf91fc7 100644 --- a/internal/domain/main-entities/medication/dto.go +++ b/internal/domain/main-entities/medication/dto.go @@ -27,10 +27,10 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` + Encounter_Id *uint `json:"encounter-id"` IssuedAt *time.Time `json:"issuedAt"` - Pharmacist_Id *uint `json:"pharmacist_id"` - Status_Code erc.DataStatusCode `json:"status_code"` + Pharmacist_Id *uint `json:"pharmacist-id"` + Status_Code erc.DataStatusCode `json:"status-code"` } type ReadDetailDto struct { Id uint `json:"id"` diff --git a/internal/domain/main-entities/medicine-mix-item/dto.go b/internal/domain/main-entities/medicine-mix-item/dto.go index 5c372654..1790a207 100644 --- a/internal/domain/main-entities/medicine-mix-item/dto.go +++ b/internal/domain/main-entities/medicine-mix-item/dto.go @@ -20,8 +20,8 @@ type ReadListDto struct { } type FilterDto struct { - MedicineMix_Id *uint `json:"medicineMix_id"` - Medicine_Id *uint `json:"medicine_id"` + MedicineMix_Id *uint `json:"medicineMix-id"` + Medicine_Id *uint `json:"medicine-id"` Dose *uint8 `json:"dose"` Note *string `json:"note" gom:"size:1024"` } diff --git a/internal/domain/main-entities/medicine-mix/dto.go b/internal/domain/main-entities/medicine-mix/dto.go index 8c9b2c7f..6cb8cb1a 100644 --- a/internal/domain/main-entities/medicine-mix/dto.go +++ b/internal/domain/main-entities/medicine-mix/dto.go @@ -13,7 +13,7 @@ type CreateDto struct { type ReadListDto struct { Name string `json:"name"` - Uom_Code *string `json:"uom_code"` + Uom_Code *string `json:"uom-code"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/medicine/dto.go b/internal/domain/main-entities/medicine/dto.go index 08352c20..6b6517f9 100644 --- a/internal/domain/main-entities/medicine/dto.go +++ b/internal/domain/main-entities/medicine/dto.go @@ -32,13 +32,13 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - MedicineGroup_Code *string `json:"medicineGroup_code"` - MedicineMethod_Code *string `json:"medicineMethod_code"` - Uom_Code *string `json:"uom_code"` + MedicineGroup_Code *string `json:"medicineGroup-code"` + MedicineMethod_Code *string `json:"medicineMethod-code"` + Uom_Code *string `json:"uom-code"` Dose uint8 `json:"dose"` - Infra_Id *uint16 `json:"infra_id"` + Infra_Id *uint16 `json:"infra-id"` Stock *int `json:"stock"` - Item_Id *uint `json:"item_id"` + Item_Id *uint `json:"item-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/nurse/dto.go b/internal/domain/main-entities/nurse/dto.go index 4aa37c25..11d4bfb8 100644 --- a/internal/domain/main-entities/nurse/dto.go +++ b/internal/domain/main-entities/nurse/dto.go @@ -22,10 +22,10 @@ type ReadListDto struct { } type FilterDto struct { - Employee_Id *uint `json:"employee_id"` - IHS_Number *string `json:"ihs_number"` - Unit_Id *uint16 `json:"unit_id"` - Infra_Id *uint16 `json:"infra_id"` + Employee_Id *uint `json:"employee-id"` + IHS_Number *string `json:"ihs-number"` + Unit_Id *uint16 `json:"unit-id"` + Infra_Id *uint16 `json:"infra-id"` } type ReadDetailDto struct { Id uint16 `json:"id"` diff --git a/internal/domain/main-entities/nutritionist/dto.go b/internal/domain/main-entities/nutritionist/dto.go index b884e413..f48160a2 100644 --- a/internal/domain/main-entities/nutritionist/dto.go +++ b/internal/domain/main-entities/nutritionist/dto.go @@ -18,8 +18,8 @@ type ReadListDto struct { } type FilterDto struct { - Employee_Id *uint `json:"employee_id"` - IHS_Number *string `json:"ihs_number"` + Employee_Id *uint `json:"employee-id"` + IHS_Number *string `json:"ihs-number"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/patient/dto.go b/internal/domain/main-entities/patient/dto.go index 1c084a54..394d1ee7 100644 --- a/internal/domain/main-entities/patient/dto.go +++ b/internal/domain/main-entities/patient/dto.go @@ -32,9 +32,9 @@ type ReadListDto struct { } type FilterDto struct { - Person_Id *uint `json:"person_id"` + Person_Id *uint `json:"person-id"` RegisteredAt *time.Time `json:"registeredAt"` - Status_Code erc.ActiveStatusCode `json:"status_code"` + Status_Code erc.ActiveStatusCode `json:"status-code"` Number *string `json:"number"` } diff --git a/internal/domain/main-entities/person-relative/dto.go b/internal/domain/main-entities/person-relative/dto.go index 76276f92..f56e68c7 100644 --- a/internal/domain/main-entities/person-relative/dto.go +++ b/internal/domain/main-entities/person-relative/dto.go @@ -28,17 +28,16 @@ type ReadListDto struct { } type FilterDto struct { - Person_Id uint `json:"person_id"` - Relationship_Code erp.RelationshipCode `json:"relationship_code" ` + Person_Id uint `json:"person-id"` + Relationship_Code erp.RelationshipCode `json:"relationship-code" ` Name *string `json:"name"` Address *string `json:"address"` - Village_Code *string `json:"village_code"` - Village *ev.Village `json:"village,omitempty"` - Gender_Code *erp.GenderCode `json:"gender_code"` + Village_Code *string `json:"village-code"` + Gender_Code *erp.GenderCode `json:"gender-code"` PhoneNumber *string `json:"phoneNumber"` - Education_Code *erp.EducationCode `json:"education_code"` - Occupation_Code *erp.OcupationCode `json:"occupation_code"` - Occupation_Name *string `json:"occupation_name"` + Education_Code *erp.EducationCode `json:"education-code"` + Occupation_Code *erp.OcupationCode `json:"occupation-code"` + Occupation_Name *string `json:"occupation-name"` Responsible bool `json:"responsible"` } diff --git a/internal/domain/main-entities/person/dto.go b/internal/domain/main-entities/person/dto.go index 3cfe18f2..7490d579 100644 --- a/internal/domain/main-entities/person/dto.go +++ b/internal/domain/main-entities/person/dto.go @@ -43,18 +43,18 @@ type FilterDto struct { FrontTitle *string `json:"frontTitle"` EndTitle *string `json:"endTitle"` BirthDate *time.Time `json:"birthDate,omitempty"` - BirthRegency_Code *string `json:"birthRegency_code"` - Gender_Code *erp.GenderCode `json:"gender_code"` + BirthRegency_Code *string `json:"birthRegency-code"` + Gender_Code *erp.GenderCode `json:"gender-code"` ResidentIdentityNumber *string `json:"residentIdentityNumber"` PassportNumber *string `json:"passportNumber"` DrivingLicenseNumber *string `json:"drivingLicenseNumber"` - Religion_Code *erp.ReligionCode `json:"religion_code"` - Education_Code *erp.EducationCode `json:"education_code"` - Ocupation_Code *erp.OcupationCode `json:"occupation_code"` - Ocupation_Name *string `json:"occupation_name"` + Religion_Code *erp.ReligionCode `json:"religion-code"` + Education_Code *erp.EducationCode `json:"education-code"` + Ocupation_Code *erp.OcupationCode `json:"occupation-code"` + Ocupation_Name *string `json:"occupation-name"` Nationality *string `json:"nationality"` - Ethnic_Code *string `json:"ethnic_code"` - Language_Code *string `json:"language_code"` + Ethnic_Code *string `json:"ethnic-code"` + Language_Code *string `json:"language-code"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/pharmacist/dto.go b/internal/domain/main-entities/pharmacist/dto.go index 9a42f2ca..fd1bde79 100644 --- a/internal/domain/main-entities/pharmacist/dto.go +++ b/internal/domain/main-entities/pharmacist/dto.go @@ -18,8 +18,8 @@ type ReadListDto struct { } type FilterDto struct { - Employee_Id *uint `json:"employee_id"` - IHS_Number *string `json:"ihs_number"` + Employee_Id *uint `json:"employee-id"` + IHS_Number *string `json:"ihs-number"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/pharmacy-company/dto.go b/internal/domain/main-entities/pharmacy-company/dto.go index d28de67e..ed61fd61 100644 --- a/internal/domain/main-entities/pharmacy-company/dto.go +++ b/internal/domain/main-entities/pharmacy-company/dto.go @@ -13,7 +13,7 @@ type CreateDto struct { type ReadListDto struct { Code string `json:"code"` Name string `json:"name"` - Regency_Code string `json:"regency_code"` + Regency_Code string `json:"regency-code"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/practice-schedule/dto.go b/internal/domain/main-entities/practice-schedule/dto.go index 5ec6fd2e..48f61543 100644 --- a/internal/domain/main-entities/practice-schedule/dto.go +++ b/internal/domain/main-entities/practice-schedule/dto.go @@ -21,9 +21,9 @@ type ReadListDto struct { } type FilterDto struct { - Doctor_Id *uint `json:"doctor_id"` - Unit_Code *string `json:"unit_code"` - Day_Code *erc.DayCode `json:"day_code"` + Doctor_Id *uint `json:"doctor-id"` + Unit_Code *string `json:"unit-code"` + Day_Code *erc.DayCode `json:"day-code"` StartTime *string `json:"startTime"` EndTime *string `json:"endTime"` } diff --git a/internal/domain/main-entities/prescription-item/dto.go b/internal/domain/main-entities/prescription-item/dto.go index 3b70394f..91922664 100644 --- a/internal/domain/main-entities/prescription-item/dto.go +++ b/internal/domain/main-entities/prescription-item/dto.go @@ -31,13 +31,13 @@ type ReadListDto struct { } type FilterDto struct { - Prescription_Id *uint `json:"prescription_id"` + Prescription_Id *uint `json:"prescription-id"` IsMix bool `json:"isMix"` - Medicine_Id *uint `json:"medicine_id"` - MedicineMix_Id *uint `json:"medicineMix_id"` + Medicine_Id *uint `json:"medicine-id"` + MedicineMix_Id *uint `json:"medicineMix-id"` Usage float64 `json:"usage"` Interval uint8 `json:"interval"` - IntervalUnit_Code erc.TimeUnitCode `json:"intervalUnit_code"` + IntervalUnit_Code erc.TimeUnitCode `json:"intervalUnit-code"` Quantity float64 `json:"quantity"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/prescription/dto.go b/internal/domain/main-entities/prescription/dto.go index bc538517..e05db349 100644 --- a/internal/domain/main-entities/prescription/dto.go +++ b/internal/domain/main-entities/prescription/dto.go @@ -25,10 +25,10 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Doctor_Id *uint `json:"doctor_id"` + Encounter_Id *uint `json:"encounter-id"` + Doctor_Id *uint `json:"doctor-id"` IssuedAt *time.Time `json:"issuedAt"` - Status_Code *erc.DataStatusCode `json:"status_code"` + Status_Code *erc.DataStatusCode `json:"status-code"` } type ReadDetailDto struct { Id uint `json:"id"` diff --git a/internal/domain/main-entities/regency/dto.go b/internal/domain/main-entities/regency/dto.go index e4d76df2..61c131fe 100644 --- a/internal/domain/main-entities/regency/dto.go +++ b/internal/domain/main-entities/regency/dto.go @@ -12,7 +12,7 @@ type CreateDto struct { } type ReadListDto struct { - Province_Code string `json:"province_code"` + Province_Code string `json:"province-code"` Code string `json:"code"` Name string `json:"name"` Pagination ecore.Pagination diff --git a/internal/domain/main-entities/room/dto.go b/internal/domain/main-entities/room/dto.go index acee005e..808e1ee2 100644 --- a/internal/domain/main-entities/room/dto.go +++ b/internal/domain/main-entities/room/dto.go @@ -23,10 +23,10 @@ type ReadListDto struct { } type FilterDto struct { - Infra_Id *uint16 `json:"infra_id"` - Unit_Id *uint16 `json:"unit_id"` - Specialist_Id *uint16 `json:"specialist_id"` - Subspecialist_Id *uint16 `json:"subspecialist_id"` + Infra_Id *uint16 `json:"infra-id"` + Unit_Id *uint16 `json:"unit-id"` + Specialist_Id *uint16 `json:"specialist-id"` + Subspecialist_Id *uint16 `json:"subspecialist-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/sbar/dto.go b/internal/domain/main-entities/sbar/dto.go index 40f992e4..4e3317a8 100644 --- a/internal/domain/main-entities/sbar/dto.go +++ b/internal/domain/main-entities/sbar/dto.go @@ -27,8 +27,8 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Employee_Id *uint `json:"employee_id"` + Encounter_Id *uint `json:"encounter-id"` + Employee_Id *uint `json:"employee-id"` Time *time.Time `json:"time"` Value *string `json:"value"` } diff --git a/internal/domain/main-entities/soapi/dto.go b/internal/domain/main-entities/soapi/dto.go index b2830d32..2a431942 100644 --- a/internal/domain/main-entities/soapi/dto.go +++ b/internal/domain/main-entities/soapi/dto.go @@ -30,8 +30,8 @@ type ReadListDto struct { } type FilterDto struct { - Encounter_Id *uint `json:"encounter_id"` - Employee_Id *uint `json:"employee_id"` + Encounter_Id *uint `json:"encounter-id"` + Employee_Id *uint `json:"employee-id"` Time *time.Time `json:"time"` TypeCode erc.SoapiTypeCode `json:"typeCode"` Value *string `json:"value"` diff --git a/internal/domain/main-entities/specialist-intern/dto.go b/internal/domain/main-entities/specialist-intern/dto.go index 46563c8d..1090793c 100644 --- a/internal/domain/main-entities/specialist-intern/dto.go +++ b/internal/domain/main-entities/specialist-intern/dto.go @@ -23,10 +23,10 @@ type ReadListDto struct { } type FilterDto struct { - Person_Id *uint `json:"person_id"` - Specialist_Id *uint16 `json:"specialist_id"` - Subspecialist_Id *uint16 `json:"subspecialist_id"` - User_Id *uint `json:"user_id"` + Person_Id *uint `json:"person-id"` + Specialist_Id *uint16 `json:"specialist-id"` + Subspecialist_Id *uint16 `json:"subspecialist-id"` + User_Id *uint `json:"user-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/specialist/dto.go b/internal/domain/main-entities/specialist/dto.go index 2ab153bb..a7dc48e9 100644 --- a/internal/domain/main-entities/specialist/dto.go +++ b/internal/domain/main-entities/specialist/dto.go @@ -21,7 +21,7 @@ type ReadListDto struct { type FilterDto struct { Code string `json:"code"` Name string `json:"name"` - Unit_Id *uint16 `json:"unit_id"` + Unit_Id *uint16 `json:"unit-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/subspecialist/dto.go b/internal/domain/main-entities/subspecialist/dto.go index 41073313..1a98906f 100644 --- a/internal/domain/main-entities/subspecialist/dto.go +++ b/internal/domain/main-entities/subspecialist/dto.go @@ -21,7 +21,7 @@ type ReadListDto struct { type FilterDto struct { Code *string `json:"code"` Name *string `json:"name"` - Specialist_Id *uint16 `json:"specialist_id"` + Specialist_Id *uint16 `json:"specialist-id"` } type ReadDetailDto struct { diff --git a/internal/domain/main-entities/unit/dto.go b/internal/domain/main-entities/unit/dto.go index bf589aa5..6f11f849 100644 --- a/internal/domain/main-entities/unit/dto.go +++ b/internal/domain/main-entities/unit/dto.go @@ -20,7 +20,7 @@ type ReadListDto struct { } type FilterDto struct { - Installation_Id *uint16 `json:"installation_id"` + Installation_Id *uint16 `json:"installation-id"` Code string `json:"code"` Name string `json:"name"` } diff --git a/internal/domain/main-entities/user/dto.go b/internal/domain/main-entities/user/dto.go index 62a0c587..9f948fe7 100644 --- a/internal/domain/main-entities/user/dto.go +++ b/internal/domain/main-entities/user/dto.go @@ -32,7 +32,7 @@ type CreateDto struct { type ReadListDto struct { Name string `json:"name"` - Status_Code erc.UserStatusCode `json:"status_code"` + Status_Code erc.UserStatusCode `json:"status-code"` Pagination ecore.Pagination } diff --git a/internal/domain/main-entities/village/dto.go b/internal/domain/main-entities/village/dto.go index ca42f073..842a1cb6 100644 --- a/internal/domain/main-entities/village/dto.go +++ b/internal/domain/main-entities/village/dto.go @@ -11,7 +11,7 @@ type CreateDto struct { } type ReadListDto struct { - District_Code string `json:"district_code"` + District_Code string `json:"district-code"` Code string `json:"code"` Name string `json:"name"` Pagination ecore.Pagination From 1adc942ae73fef4f3fd5c166711cb9ed9da298bd Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:08:55 +0700 Subject: [PATCH 02/10] auth wip --- .../main-use-case/authentication/case.go | 37 +++++++------------ .../main-use-case/authentication/helper.go | 13 ++++++- pkg/auth-helper/tycovar.go | 16 +++++--- 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/internal/use-case/main-use-case/authentication/case.go b/internal/use-case/main-use-case/authentication/case.go index 0c1f4884..f80cf8e8 100644 --- a/internal/use-case/main-use-case/authentication/case.go +++ b/internal/use-case/main-use-case/authentication/case.go @@ -9,19 +9,19 @@ import ( "github.com/golang-jwt/jwt" "github.com/google/uuid" - dg "github.com/karincake/apem/db-gorm-pg" - d "github.com/karincake/dodol" - l "github.com/karincake/lepet" - a "github.com/karincake/apem" - ms "github.com/karincake/apem/ms-redis" + eu "simrs-vx/internal/domain/main-entities/user" + erc "simrs-vx/internal/domain/references/common" pa "simrs-vx/pkg/auth-helper" el "simrs-vx/pkg/logger" p "simrs-vx/pkg/password" - eu "simrs-vx/internal/domain/main-entities/user" - erc "simrs-vx/internal/domain/references/common" + a "github.com/karincake/apem" + dg "github.com/karincake/apem/db-gorm-pg" + ms "github.com/karincake/apem/ms-redis" + d "github.com/karincake/dodol" + l "github.com/karincake/lepet" ) var authCfg AuthCfg @@ -38,7 +38,7 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { // if input.Position_Code != "" { // user.Position_Code = input.Position_Code // } - if errCode := GetAndCheck(user, user); errCode != "" { + if errCode := getAndCheck(user, user); errCode != "" { return nil, d.FieldErrors{"authentication": d.FieldError{Code: errCode, Message: el.GenMessage(errCode)}} } @@ -85,11 +85,6 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { atExpires := time.Now().Add(duration).Unix() atSecretKey := authCfg.AtSecretKey - // extra - // if input.Position_Code == "doc" { - - // } - // Creating Access Token atClaims := jwt.MapClaims{} atClaims["user_id"] = user.Id @@ -127,12 +122,10 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { "status": "verified", }, Data: d.II{ - "user_id": strconv.Itoa(int(user.Id)), - "user_name": user.Name, - // "user_email": user.Email, + "user_id": strconv.Itoa(int(user.Id)), + "user_name": user.Name, "user_position_code": user.Position_Code, - // "user_ref_id": user.Ref_Id, - "accessToken": ats, + "accessToken": ats, }, }, nil } @@ -202,11 +195,9 @@ func ExtractToken(r *http.Request, tokenType TokenType) (data *pa.AuthInfo, err position_code = v.(string) } data = &pa.AuthInfo{ - Uuid: accessUuid, - User_Id: uint(user_id), - User_Name: user_name, - // User_Email: user_email, - // User_Ref_Id: ref_id, + Uuid: accessUuid, + User_Id: uint(user_id), + User_Name: user_name, User_Position_Code: position_code, } return diff --git a/internal/use-case/main-use-case/authentication/helper.go b/internal/use-case/main-use-case/authentication/helper.go index de618b5c..af4d2ccc 100644 --- a/internal/use-case/main-use-case/authentication/helper.go +++ b/internal/use-case/main-use-case/authentication/helper.go @@ -1,11 +1,15 @@ package authentication import ( + + // edp "simrs-vx/internal/domain/main-entities/division-position" + dg "github.com/karincake/apem/db-gorm-pg" + // pa "simrs-vx/pkg/auth-helper" ) // just return the error code -func GetAndCheck(input, condition any) (eCode string) { +func getAndCheck(input, condition any) (eCode string) { result := dg.I.Where(condition).Find(&input) if result.Error != nil { return "fetch-fail" @@ -16,6 +20,11 @@ func GetAndCheck(input, condition any) (eCode string) { return "" } -func GetDocName(id uint) string { +func getDocName(id uint) string { return "authentication" } + +// func getDivisionPosition(user_id uint) []pa.DivisionPosition { +// var divisionPosition []pa.DivisionPosition +// var divisionPositionList []edp.DivisionPosition +// } diff --git a/pkg/auth-helper/tycovar.go b/pkg/auth-helper/tycovar.go index deda1097..aa23e992 100644 --- a/pkg/auth-helper/tycovar.go +++ b/pkg/auth-helper/tycovar.go @@ -7,12 +7,16 @@ import ( type AuthKey struct{} type AuthInfo struct { - Uuid string - User_Id uint - User_Name string - // User_Email string - // User_Ref_Id int - User_Position_Code string + Uuid string + User_Id uint + User_Name string + User_DivisionPosition []DivisionPosition + User_Position_Code string +} + +type DivisionPosition struct { + Division_Code string + DivisionPosition_Code string } func (a AuthInfo) IsDoctor() bool { From c262947d3f4227a77d3d457540a6b298f69708f5 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:12:00 +0700 Subject: [PATCH 03/10] add employee id into division-position --- cmd/main-migration/migrations/20251006041122.sql | 2 ++ cmd/main-migration/migrations/atlas.sum | 5 +++-- internal/domain/main-entities/division-position/dto.go | 1 + internal/domain/main-entities/division-position/entity.go | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 cmd/main-migration/migrations/20251006041122.sql diff --git a/cmd/main-migration/migrations/20251006041122.sql b/cmd/main-migration/migrations/20251006041122.sql new file mode 100644 index 00000000..24ace4a9 --- /dev/null +++ b/cmd/main-migration/migrations/20251006041122.sql @@ -0,0 +1,2 @@ +-- Modify "DivisionPosition" table +ALTER TABLE "public"."DivisionPosition" ADD COLUMN "Employee_Id" bigint NULL, ADD CONSTRAINT "fk_DivisionPosition_Employee" FOREIGN KEY ("Employee_Id") REFERENCES "public"."Employee" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index 649eb37f..de8766a9 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:kjCOkexwu0wdD+/FPTIz43E0F/a1LI1VtyxR9B+CWyo= +h1:cZd+VVhnt5FF4se9KNDa0hoFlY3AMn3nN7apKGwyPf4= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -23,4 +23,5 @@ h1:kjCOkexwu0wdD+/FPTIz43E0F/a1LI1VtyxR9B+CWyo= 20250930140351.sql h1:9AAEG1AnOAH+o0+oHL5G7I8vqlWOhwRlCGyyCpT/y1Q= 20251002085604.sql h1:3xZ68eYp4urXRnvotNH1XvG2mYOSDV/j3zHEZ/txg5E= 20251003032030.sql h1:HB+mQ2lXMNomHDpaRhB/9IwYI9/YiDO5eOJ+nAQH/jw= -20251005060450.sql h1:zM3l4oB0U1kNpAvz47IBBIKdRW0QOGylzWHiBNLfUzs= +20251005060450.sql h1:LbtCE2b+8osM3CvnmQJH1uCPtn+d7WchsslBOz8bL3Q= +20251006041122.sql h1:XQh6G6ZbkpiKXpMy6xe1pJRD+vvyQ1IEw+1JOIRU7Cg= diff --git a/internal/domain/main-entities/division-position/dto.go b/internal/domain/main-entities/division-position/dto.go index 20664a7e..452fb86f 100644 --- a/internal/domain/main-entities/division-position/dto.go +++ b/internal/domain/main-entities/division-position/dto.go @@ -9,6 +9,7 @@ type CreateDto struct { Division_Id *uint16 `json:"division_id"` Code string `json:"code" validate:"maxLength=10"` Name string `json:"name" validate:"maxLength=50"` + Employee_Id *uint `json:"employee_id"` } type ReadListDto struct { diff --git a/internal/domain/main-entities/division-position/entity.go b/internal/domain/main-entities/division-position/entity.go index 6ff32055..27614764 100644 --- a/internal/domain/main-entities/division-position/entity.go +++ b/internal/domain/main-entities/division-position/entity.go @@ -3,6 +3,7 @@ package divisionposition import ( ecore "simrs-vx/internal/domain/base-entities/core" ed "simrs-vx/internal/domain/main-entities/division" + ee "simrs-vx/internal/domain/main-entities/employee" ) type DivisionPosition struct { @@ -11,4 +12,6 @@ type DivisionPosition struct { Division *ed.Division `json:"division" gorm:"foreignKey:Division_Id"` Code string `json:"code" gorm:"unique;size:10"` Name string `json:"name" gorm:"size:50"` + Employee_Id *uint `json:"employee_id"` + Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"` } From e7611c9078c6d19e4eaf973a713b0de1f9a9b369 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:13:45 +0700 Subject: [PATCH 04/10] feat (division-position): add employee id --- internal/domain/main-entities/division-position/dto.go | 6 ++++++ internal/use-case/main-use-case/division-position/helper.go | 1 + 2 files changed, 7 insertions(+) diff --git a/internal/domain/main-entities/division-position/dto.go b/internal/domain/main-entities/division-position/dto.go index c1c6b125..5fefe554 100644 --- a/internal/domain/main-entities/division-position/dto.go +++ b/internal/domain/main-entities/division-position/dto.go @@ -3,6 +3,7 @@ package divisionposition import ( ecore "simrs-vx/internal/domain/base-entities/core" ed "simrs-vx/internal/domain/main-entities/division" + ee "simrs-vx/internal/domain/main-entities/employee" ) type CreateDto struct { @@ -23,6 +24,7 @@ type FilterDto struct { Division_Id *uint16 `json:"division-id"` Code string `json:"code"` Name string `json:"name"` + Employee_Id *uint `json:"employee-id"` } type ReadDetailDto struct { @@ -51,6 +53,8 @@ type ResponseDto struct { Division *ed.Division `json:"division,omitempty"` Code string `json:"code"` Name string `json:"name"` + Employee_Id *uint `json:"employee_id"` + Employee *ee.Employee `json:"employee,omitempty"` } func (d DivisionPosition) ToResponse() ResponseDto { @@ -58,6 +62,8 @@ func (d DivisionPosition) ToResponse() ResponseDto { Division_Id: d.Division_Id, Code: d.Code, Name: d.Name, + Employee_Id: d.Employee_Id, + Employee: d.Employee, } resp.SmallMain = d.SmallMain if d.Division != nil { diff --git a/internal/use-case/main-use-case/division-position/helper.go b/internal/use-case/main-use-case/division-position/helper.go index f353a9ea..97f2f26c 100644 --- a/internal/use-case/main-use-case/division-position/helper.go +++ b/internal/use-case/main-use-case/division-position/helper.go @@ -20,4 +20,5 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.DivisionPosition) { data.Division_Id = inputSrc.Division_Id data.Code = inputSrc.Code data.Name = inputSrc.Name + data.Employee_Id = inputSrc.Employee_Id } From 8e1fb5657080ce73dae2f546ef532f82e10357de Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:54:56 +0700 Subject: [PATCH 05/10] feat (auth): add user division position --- assets/language/en/data.json | 1 + .../main-use-case/authentication/case.go | 50 ++++++++++++------- .../main-use-case/authentication/helper.go | 48 +++++++++++++++--- pkg/auth-helper/tycovar.go | 14 +++--- 4 files changed, 81 insertions(+), 32 deletions(-) diff --git a/assets/language/en/data.json b/assets/language/en/data.json index a5223967..d78f3424 100644 --- a/assets/language/en/data.json +++ b/assets/language/en/data.json @@ -14,6 +14,7 @@ "auth-login-unverified": "login failed, account is not verified", "auth-logout-success": "logout success", "auth-reject-suspend": "restricted for suspended account", + "auth-getData-failed": "failed to get user data", "balance-exceeded": "must not exceeds balance", diff --git a/internal/use-case/main-use-case/authentication/case.go b/internal/use-case/main-use-case/authentication/case.go index f80cf8e8..3e10d86f 100644 --- a/internal/use-case/main-use-case/authentication/case.go +++ b/internal/use-case/main-use-case/authentication/case.go @@ -72,6 +72,11 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-login-unverified", Message: el.GenMessage("auth-login-unverified")}} } + userDivisionPositions, err := getDivisionPosition(user.Id) + if err != nil { + return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-getData-failed", Message: el.GenMessage("auth-getData-failed")}} + } + // Access token prep id, err := uuid.NewRandom() if err != nil { @@ -89,11 +94,10 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { atClaims := jwt.MapClaims{} atClaims["user_id"] = user.Id atClaims["user_name"] = user.Name - // atClaims["user_email"] = user.Email atClaims["user_position_code"] = user.Position_Code - // atClaims["user_ref_id"] = user.Ref_Id atClaims["exp"] = atExpires atClaims["uuid"] = aUuid + atClaims["user_division_positions"] = userDivisionPositions at := jwt.NewWithClaims(jwt.SigningMethodHS256, atClaims) ats, err := at.SignedString([]byte(atSecretKey)) if err != nil { @@ -122,10 +126,11 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { "status": "verified", }, Data: d.II{ - "user_id": strconv.Itoa(int(user.Id)), - "user_name": user.Name, - "user_position_code": user.Position_Code, - "accessToken": ats, + "user_id": strconv.Itoa(int(user.Id)), + "user_name": user.Name, + "user_position_code": user.Position_Code, + "accessToken": ats, + "user_division_positions": userDivisionPositions, }, }, nil } @@ -181,24 +186,31 @@ func ExtractToken(r *http.Request, tokenType TokenType) (data *pa.AuthInfo, err return nil, d.FieldError{Code: "token-unidentified", Message: el.GenMessage("token-unidentified")} } user_name := fmt.Sprintf("%v", claims["user_name"]) - // user_email := "" - // if v, exist := claims["user_email"]; exist && v != nil { - // user_email = v.(string) - // } - // ref_id := 0 - // if v, exist := claims["user_ref_id"]; exist && v != nil { - // tmp := v.(float64) - // ref_id = int(tmp) - // } + + var userDivisionPositions []pa.DivisionPosition + if raw, ok := claims["user_division_position"]; ok && raw != nil { + if list, ok := raw.([]interface{}); ok { + for _, item := range list { + if m, ok := item.(map[string]interface{}); ok { + dp := pa.DivisionPosition{ + Division_Code: fmt.Sprintf("%v", m["Division_Code"]), + DivisionPosition_Code: fmt.Sprintf("%v", m["DivisionPosition_Code"]), + } + userDivisionPositions = append(userDivisionPositions, dp) + } + } + } + } position_code := "" if v, exist := claims["user_position_code"]; exist && v != nil { position_code = v.(string) } data = &pa.AuthInfo{ - Uuid: accessUuid, - User_Id: uint(user_id), - User_Name: user_name, - User_Position_Code: position_code, + Uuid: accessUuid, + User_Id: uint(user_id), + User_Name: user_name, + User_Position_Code: position_code, + User_DivisionPositions: userDivisionPositions, } return } diff --git a/internal/use-case/main-use-case/authentication/helper.go b/internal/use-case/main-use-case/authentication/helper.go index af4d2ccc..50b0c8fd 100644 --- a/internal/use-case/main-use-case/authentication/helper.go +++ b/internal/use-case/main-use-case/authentication/helper.go @@ -1,11 +1,14 @@ package authentication import ( + "errors" + edp "simrs-vx/internal/domain/main-entities/division-position" + ee "simrs-vx/internal/domain/main-entities/employee" - // edp "simrs-vx/internal/domain/main-entities/division-position" + pa "simrs-vx/pkg/auth-helper" dg "github.com/karincake/apem/db-gorm-pg" - // pa "simrs-vx/pkg/auth-helper" + "gorm.io/gorm" ) // just return the error code @@ -24,7 +27,40 @@ func getDocName(id uint) string { return "authentication" } -// func getDivisionPosition(user_id uint) []pa.DivisionPosition { -// var divisionPosition []pa.DivisionPosition -// var divisionPositionList []edp.DivisionPosition -// } +func getDivisionPosition(user_id uint) ([]pa.DivisionPosition, error) { + var result []pa.DivisionPosition + + var employee ee.Employee + if err := dg.I.Where("\"User_Id\" = ?", user_id).First(&employee).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return result, nil + } + return result, errors.New("no employee found") + } + + var divisionPositions []edp.DivisionPosition + err := dg.I. + Preload("Division"). + Where("\"Employee_Id\" = ?", employee.Id). + Find(&divisionPositions).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + return result, nil + } + return result, err + } + + for _, dp := range divisionPositions { + result = append(result, pa.DivisionPosition{ + Division_Code: func() string { + if dp.Division != nil { + return dp.Division.Code + } + return "" + }(), + DivisionPosition_Code: dp.Code, + }) + } + + return result, nil +} diff --git a/pkg/auth-helper/tycovar.go b/pkg/auth-helper/tycovar.go index aa23e992..288c9d21 100644 --- a/pkg/auth-helper/tycovar.go +++ b/pkg/auth-helper/tycovar.go @@ -7,16 +7,16 @@ import ( type AuthKey struct{} type AuthInfo struct { - Uuid string - User_Id uint - User_Name string - User_DivisionPosition []DivisionPosition - User_Position_Code string + Uuid string + User_Id uint + User_Name string + User_DivisionPositions []DivisionPosition + User_Position_Code string } type DivisionPosition struct { - Division_Code string - DivisionPosition_Code string + Division_Code string `json:"division_code"` + DivisionPosition_Code string `json:"divisionPosition_code"` } func (a AuthInfo) IsDoctor() bool { From 7966cd11e139116f6f903ce88f6fd9b7c52cd51d Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:57:31 +0700 Subject: [PATCH 06/10] add coms, and disabillty column into person --- .../migrations/20251006045658.sql | 2 + cmd/main-migration/migrations/atlas.sum | 5 +- .../domain/main-entities/person/entity.go | 54 ++++++++++--------- 3 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 cmd/main-migration/migrations/20251006045658.sql diff --git a/cmd/main-migration/migrations/20251006045658.sql b/cmd/main-migration/migrations/20251006045658.sql new file mode 100644 index 00000000..a8c3a4d7 --- /dev/null +++ b/cmd/main-migration/migrations/20251006045658.sql @@ -0,0 +1,2 @@ +-- Modify "Person" table +ALTER TABLE "public"."Person" ADD COLUMN "CommunicationIssueStatus" boolean NULL, ADD COLUMN "Disabillity" character varying(100) NULL; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index de8766a9..e6f4c0ca 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:cZd+VVhnt5FF4se9KNDa0hoFlY3AMn3nN7apKGwyPf4= +h1:JsKC89Hpwk3JTQjwLwPRlSPOwsFDWgb5NZ1roR6HyL4= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -24,4 +24,5 @@ h1:cZd+VVhnt5FF4se9KNDa0hoFlY3AMn3nN7apKGwyPf4= 20251002085604.sql h1:3xZ68eYp4urXRnvotNH1XvG2mYOSDV/j3zHEZ/txg5E= 20251003032030.sql h1:HB+mQ2lXMNomHDpaRhB/9IwYI9/YiDO5eOJ+nAQH/jw= 20251005060450.sql h1:LbtCE2b+8osM3CvnmQJH1uCPtn+d7WchsslBOz8bL3Q= -20251006041122.sql h1:XQh6G6ZbkpiKXpMy6xe1pJRD+vvyQ1IEw+1JOIRU7Cg= +20251006041122.sql h1:MlS7f21z06sutnf9dIekt5fuHJr4lgcQ4uCuCXAGsfc= +20251006045658.sql h1:Frqb7wni/OVZT3jVYOE4ff/3MmWccWJJj4yMxvWUHbs= diff --git a/internal/domain/main-entities/person/entity.go b/internal/domain/main-entities/person/entity.go index 0f12fcd3..569a73c4 100644 --- a/internal/domain/main-entities/person/entity.go +++ b/internal/domain/main-entities/person/entity.go @@ -13,32 +13,34 @@ import ( ) type Person struct { - ecore.Main // adjust this according to the needs - Name string `json:"name" gorm:"not null;size:150"` - FrontTitle *string `json:"frontTitle" gorm:"size:50"` - EndTitle *string `json:"endTitle" gorm:"size:50"` - BirthDate *time.Time `json:"birthDate,omitempty"` - BirthRegency_Code *string `json:"birthRegency_code" gorm:"size:4"` - Gender_Code *erp.GenderCode `json:"gender_code" gorm:"size:10"` - ResidentIdentityNumber *string `json:"residentIdentityNumber" gorm:"unique;size:16"` - PassportNumber *string `json:"passportNumber" gorm:"unique;size:20"` - DrivingLicenseNumber *string `json:"drivingLicenseNumber" gorm:"unique;size:20"` - Religion_Code *erp.ReligionCode `json:"religion_code" gorm:"size:10"` - Education_Code *erp.EducationCode `json:"education_code" gorm:"size:10"` - Ocupation_Code *erp.OcupationCode `json:"occupation_code" gorm:"size:15"` - Ocupation_Name *string `json:"occupation_name" gorm:"size:50"` - Nationality *string `json:"nationality": gorm:"size:50"` - Ethnic_Code *string `json:"ethnic_code" gorm:"size:20"` - Ethnic *ee.Ethnic `json:"ethnic,omitempty" gorm:"foreignKey:Ethnic_Code;references:Code"` - Addresses *[]epa.PersonAddress `json:"addresses" gorm:"foreignKey:Person_Id"` - Contacts *[]epc.PersonContact `json:"contacts" gorm:"foreignKey:Person_Id"` - Relatives *[]epr.PersonRelative `json:"relatives" gorm:"foreignKey:Person_Id"` - Language_Code *string `json:"language_code" gorm:"size:10"` - Language *el.Language `json:"language,omitempty" gorm:"foreignKey:Language_Code;references:Code"` - ResidentIdentityFileUrl *string `json:"residentIdentityFileUrl" gorm:"size:1024"` - PassportFileUrl *string `json:"passportFileUrl" gorm:"size:1024"` - DrivingLicenseFileUrl *string `json:"drivingLicenseFileUrl" gorm:"size:1024"` - FamilyIdentityFileUrl *string `json:"familyIdentityFileUrl" gorm:"size:1024"` + ecore.Main // adjust this according to the needs + Name string `json:"name" gorm:"not null;size:150"` + FrontTitle *string `json:"frontTitle" gorm:"size:50"` + EndTitle *string `json:"endTitle" gorm:"size:50"` + BirthDate *time.Time `json:"birthDate,omitempty"` + BirthRegency_Code *string `json:"birthRegency_code" gorm:"size:4"` + Gender_Code *erp.GenderCode `json:"gender_code" gorm:"size:10"` + ResidentIdentityNumber *string `json:"residentIdentityNumber" gorm:"unique;size:16"` + PassportNumber *string `json:"passportNumber" gorm:"unique;size:20"` + DrivingLicenseNumber *string `json:"drivingLicenseNumber" gorm:"unique;size:20"` + Religion_Code *erp.ReligionCode `json:"religion_code" gorm:"size:10"` + Education_Code *erp.EducationCode `json:"education_code" gorm:"size:10"` + Ocupation_Code *erp.OcupationCode `json:"occupation_code" gorm:"size:15"` + Ocupation_Name *string `json:"occupation_name" gorm:"size:50"` + Nationality *string `json:"nationality": gorm:"size:50"` + Ethnic_Code *string `json:"ethnic_code" gorm:"size:20"` + Ethnic *ee.Ethnic `json:"ethnic,omitempty" gorm:"foreignKey:Ethnic_Code;references:Code"` + Addresses *[]epa.PersonAddress `json:"addresses" gorm:"foreignKey:Person_Id"` + Contacts *[]epc.PersonContact `json:"contacts" gorm:"foreignKey:Person_Id"` + Relatives *[]epr.PersonRelative `json:"relatives" gorm:"foreignKey:Person_Id"` + Language_Code *string `json:"language_code" gorm:"size:10"` + Language *el.Language `json:"language,omitempty" gorm:"foreignKey:Language_Code;references:Code"` + CommunicationIssueStatus bool `json:"communicationIssueStatus"` + Disabillity *string `json:"disabillity" gorm:"size:100"` + ResidentIdentityFileUrl *string `json:"residentIdentityFileUrl" gorm:"size:1024"` + PassportFileUrl *string `json:"passportFileUrl" gorm:"size:1024"` + DrivingLicenseFileUrl *string `json:"drivingLicenseFileUrl" gorm:"size:1024"` + FamilyIdentityFileUrl *string `json:"familyIdentityFileUrl" gorm:"size:1024"` } func (d Person) IsSameResidentIdentityNumber(input *string) bool { From cb7eac26ef5fd853a8b9fd8f065832705817c56d Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 11:59:50 +0700 Subject: [PATCH 07/10] fix disability column typo --- cmd/main-migration/migrations/20251006045928.sql | 2 ++ cmd/main-migration/migrations/atlas.sum | 5 +++-- internal/domain/main-entities/person/entity.go | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 cmd/main-migration/migrations/20251006045928.sql diff --git a/cmd/main-migration/migrations/20251006045928.sql b/cmd/main-migration/migrations/20251006045928.sql new file mode 100644 index 00000000..f495a26d --- /dev/null +++ b/cmd/main-migration/migrations/20251006045928.sql @@ -0,0 +1,2 @@ +-- Rename a column from "Disabillity" to "Disability" +ALTER TABLE "public"."Person" RENAME COLUMN "Disabillity" TO "Disability"; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index e6f4c0ca..e900c72e 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:JsKC89Hpwk3JTQjwLwPRlSPOwsFDWgb5NZ1roR6HyL4= +h1:mTtZwYftlpTk+eVzzPqjg+OMUYcQGa39qB5fLUehDC8= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -25,4 +25,5 @@ h1:JsKC89Hpwk3JTQjwLwPRlSPOwsFDWgb5NZ1roR6HyL4= 20251003032030.sql h1:HB+mQ2lXMNomHDpaRhB/9IwYI9/YiDO5eOJ+nAQH/jw= 20251005060450.sql h1:LbtCE2b+8osM3CvnmQJH1uCPtn+d7WchsslBOz8bL3Q= 20251006041122.sql h1:MlS7f21z06sutnf9dIekt5fuHJr4lgcQ4uCuCXAGsfc= -20251006045658.sql h1:Frqb7wni/OVZT3jVYOE4ff/3MmWccWJJj4yMxvWUHbs= +20251006045658.sql h1:3FmGCPCzjgMPdWDRodZTsx3KVaodd9zB9ilib69aewk= +20251006045928.sql h1:bIdFndhaIdxtwEJr9aNirQTZ2bFGg9KK5PYhN8dDyUs= diff --git a/internal/domain/main-entities/person/entity.go b/internal/domain/main-entities/person/entity.go index 569a73c4..91b2462e 100644 --- a/internal/domain/main-entities/person/entity.go +++ b/internal/domain/main-entities/person/entity.go @@ -36,7 +36,7 @@ type Person struct { Language_Code *string `json:"language_code" gorm:"size:10"` Language *el.Language `json:"language,omitempty" gorm:"foreignKey:Language_Code;references:Code"` CommunicationIssueStatus bool `json:"communicationIssueStatus"` - Disabillity *string `json:"disabillity" gorm:"size:100"` + Disability *string `json:"disability" gorm:"size:100"` ResidentIdentityFileUrl *string `json:"residentIdentityFileUrl" gorm:"size:1024"` PassportFileUrl *string `json:"passportFileUrl" gorm:"size:1024"` DrivingLicenseFileUrl *string `json:"drivingLicenseFileUrl" gorm:"size:1024"` From ec7cd9b9293b2d36b770400047d3b27e2bb167cb Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 12:03:25 +0700 Subject: [PATCH 08/10] feat (person): add coms issue and disability field --- internal/domain/main-entities/person/dto.go | 168 +++++++++--------- .../use-case/main-use-case/person/helper.go | 2 + 2 files changed, 90 insertions(+), 80 deletions(-) diff --git a/internal/domain/main-entities/person/dto.go b/internal/domain/main-entities/person/dto.go index 7490d579..85617706 100644 --- a/internal/domain/main-entities/person/dto.go +++ b/internal/domain/main-entities/person/dto.go @@ -13,22 +13,24 @@ import ( ) type CreateDto struct { - Name string `json:"name" validate:"maxLength=150"` - FrontTitle *string `json:"frontTitle" validate:"maxLength=50"` - EndTitle *string `json:"endTitle" validate:"maxLength=50"` - BirthDate *time.Time `json:"birthDate,omitempty"` - BirthRegency_Code *string `json:"birthRegency_code" validate:"maxLength=4"` - Gender_Code *erp.GenderCode `json:"gender_code"` - ResidentIdentityNumber *string `json:"residentIdentityNumber" validate:"nik;maxLength=16"` - PassportNumber *string `json:"passportNumber" validate:"maxLength=20"` - DrivingLicenseNumber *string `json:"drivingLicenseNumber" validate:"maxLength=20"` - Religion_Code *erp.ReligionCode `json:"religion_code" validate:"maxLength=10"` - Education_Code *erp.EducationCode `json:"education_code" validate:"maxLength=10"` - Ocupation_Code *erp.OcupationCode `json:"occupation_code" validate:"maxLength=15"` - Ocupation_Name *string `json:"occupation_name" validate:"maxLength=50"` - Nationality *string `json:"nationality" validate:"maxLength=50"` - Ethnic_Code *string `json:"ethnic_code" validate:"maxLength=20"` - Language_Code *string `json:"language_code" validate:"maxLength=10"` + Name string `json:"name" validate:"maxLength=150"` + FrontTitle *string `json:"frontTitle" validate:"maxLength=50"` + EndTitle *string `json:"endTitle" validate:"maxLength=50"` + BirthDate *time.Time `json:"birthDate,omitempty"` + BirthRegency_Code *string `json:"birthRegency_code" validate:"maxLength=4"` + Gender_Code *erp.GenderCode `json:"gender_code"` + ResidentIdentityNumber *string `json:"residentIdentityNumber" validate:"nik;maxLength=16"` + PassportNumber *string `json:"passportNumber" validate:"maxLength=20"` + DrivingLicenseNumber *string `json:"drivingLicenseNumber" validate:"maxLength=20"` + Religion_Code *erp.ReligionCode `json:"religion_code" validate:"maxLength=10"` + Education_Code *erp.EducationCode `json:"education_code" validate:"maxLength=10"` + Ocupation_Code *erp.OcupationCode `json:"occupation_code" validate:"maxLength=15"` + Ocupation_Name *string `json:"occupation_name" validate:"maxLength=50"` + Nationality *string `json:"nationality" validate:"maxLength=50"` + Ethnic_Code *string `json:"ethnic_code" validate:"maxLength=20"` + Language_Code *string `json:"language_code" validate:"maxLength=10"` + CommunicationIssueStatus bool `json:"communicationIssueStatus"` + Disability *string `json:"disability" validate:"maxLength=100"` } type ReadListDto struct { @@ -39,22 +41,24 @@ type ReadListDto struct { } type FilterDto struct { - Name string `json:"name"` - FrontTitle *string `json:"frontTitle"` - EndTitle *string `json:"endTitle"` - BirthDate *time.Time `json:"birthDate,omitempty"` - BirthRegency_Code *string `json:"birthRegency-code"` - Gender_Code *erp.GenderCode `json:"gender-code"` - ResidentIdentityNumber *string `json:"residentIdentityNumber"` - PassportNumber *string `json:"passportNumber"` - DrivingLicenseNumber *string `json:"drivingLicenseNumber"` - Religion_Code *erp.ReligionCode `json:"religion-code"` - Education_Code *erp.EducationCode `json:"education-code"` - Ocupation_Code *erp.OcupationCode `json:"occupation-code"` - Ocupation_Name *string `json:"occupation-name"` - Nationality *string `json:"nationality"` - Ethnic_Code *string `json:"ethnic-code"` - Language_Code *string `json:"language-code"` + Name string `json:"name"` + FrontTitle *string `json:"frontTitle"` + EndTitle *string `json:"endTitle"` + BirthDate *time.Time `json:"birthDate,omitempty"` + BirthRegency_Code *string `json:"birthRegency-code"` + Gender_Code *erp.GenderCode `json:"gender-code"` + ResidentIdentityNumber *string `json:"residentIdentityNumber"` + PassportNumber *string `json:"passportNumber"` + DrivingLicenseNumber *string `json:"drivingLicenseNumber"` + Religion_Code *erp.ReligionCode `json:"religion-code"` + Education_Code *erp.EducationCode `json:"education-code"` + Ocupation_Code *erp.OcupationCode `json:"occupation-code"` + Ocupation_Name *string `json:"occupation-name"` + Nationality *string `json:"nationality"` + Ethnic_Code *string `json:"ethnic-code"` + Language_Code *string `json:"language-code"` + CommunicationIssueStatus bool `json:"communicationIssueStatus"` + Disability *string `json:"disability"` } type ReadDetailDto struct { @@ -82,58 +86,62 @@ type MetaDto struct { type ResponseDto struct { ecore.Main - Name string `json:"name"` - FrontTitle *string `json:"frontTitle"` - EndTitle *string `json:"endTitle"` - BirthDate *time.Time `json:"birthDate,omitempty"` - BirthRegency_Code *string `json:"birthRegency_code"` - Gender_Code *erp.GenderCode `json:"gender_code"` - ResidentIdentityNumber *string `json:"residentIdentityNumber"` - PassportNumber *string `json:"passportNumber"` - DrivingLicenseNumber *string `json:"drivingLicenseNumber"` - Religion_Code *erp.ReligionCode `json:"religion_code"` - Education_Code *erp.EducationCode `json:"education_code"` - Ocupation_Code *erp.OcupationCode `json:"occupation_code"` - Ocupation_Name *string `json:"occupation_name"` - Nationality *string `json:"nationality"` - Ethnic_Code *string `json:"ethnic_code"` - Ethnic *ee.Ethnic `json:"ethnic,omitempty"` - Addresses *[]epa.PersonAddress `json:"addresses,omitempty"` - Contacts *[]epc.PersonContact `json:"contacts,omitempty"` - Relatives *[]epr.PersonRelative `json:"relatives,omitempty"` - Language_Code *string `json:"language_code"` - ResidentIdentityFileUrl *string `json:"residentIdentityFileUrl"` - PassportFileUrl *string `json:"passportFileUrl"` - DrivingLicenseFileUrl *string `json:"drivingLicenseFileUrl"` - FamilyIdentityFileUrl *string `json:"familyIdentityFileUrl"` + Name string `json:"name"` + FrontTitle *string `json:"frontTitle"` + EndTitle *string `json:"endTitle"` + BirthDate *time.Time `json:"birthDate,omitempty"` + BirthRegency_Code *string `json:"birthRegency_code"` + Gender_Code *erp.GenderCode `json:"gender_code"` + ResidentIdentityNumber *string `json:"residentIdentityNumber"` + PassportNumber *string `json:"passportNumber"` + DrivingLicenseNumber *string `json:"drivingLicenseNumber"` + Religion_Code *erp.ReligionCode `json:"religion_code"` + Education_Code *erp.EducationCode `json:"education_code"` + Ocupation_Code *erp.OcupationCode `json:"occupation_code"` + Ocupation_Name *string `json:"occupation_name"` + Nationality *string `json:"nationality"` + Ethnic_Code *string `json:"ethnic_code"` + Ethnic *ee.Ethnic `json:"ethnic,omitempty"` + Addresses *[]epa.PersonAddress `json:"addresses,omitempty"` + Contacts *[]epc.PersonContact `json:"contacts,omitempty"` + Relatives *[]epr.PersonRelative `json:"relatives,omitempty"` + Language_Code *string `json:"language_code"` + CommunicationIssueStatus bool `json:"communicationIssueStatus"` + Disability *string `json:"disability"` + ResidentIdentityFileUrl *string `json:"residentIdentityFileUrl"` + PassportFileUrl *string `json:"passportFileUrl"` + DrivingLicenseFileUrl *string `json:"drivingLicenseFileUrl"` + FamilyIdentityFileUrl *string `json:"familyIdentityFileUrl"` } func (d *Person) ToResponse() ResponseDto { resp := ResponseDto{ - Name: d.Name, - FrontTitle: d.FrontTitle, - EndTitle: d.EndTitle, - BirthDate: d.BirthDate, - BirthRegency_Code: d.BirthRegency_Code, - Gender_Code: d.Gender_Code, - ResidentIdentityNumber: d.ResidentIdentityNumber, - PassportNumber: d.PassportNumber, - DrivingLicenseNumber: d.DrivingLicenseNumber, - Religion_Code: d.Religion_Code, - Education_Code: d.Education_Code, - Ocupation_Code: d.Ocupation_Code, - Ocupation_Name: d.Ocupation_Name, - Nationality: d.Nationality, - Ethnic_Code: d.Ethnic_Code, - Ethnic: d.Ethnic, - Addresses: d.Addresses, - Contacts: d.Contacts, - Relatives: d.Relatives, - Language_Code: d.Language_Code, - ResidentIdentityFileUrl: d.ResidentIdentityFileUrl, - PassportFileUrl: d.PassportFileUrl, - DrivingLicenseFileUrl: d.DrivingLicenseFileUrl, - FamilyIdentityFileUrl: d.FamilyIdentityFileUrl, + Name: d.Name, + FrontTitle: d.FrontTitle, + EndTitle: d.EndTitle, + BirthDate: d.BirthDate, + BirthRegency_Code: d.BirthRegency_Code, + Gender_Code: d.Gender_Code, + ResidentIdentityNumber: d.ResidentIdentityNumber, + PassportNumber: d.PassportNumber, + DrivingLicenseNumber: d.DrivingLicenseNumber, + Religion_Code: d.Religion_Code, + Education_Code: d.Education_Code, + Ocupation_Code: d.Ocupation_Code, + Ocupation_Name: d.Ocupation_Name, + Nationality: d.Nationality, + Ethnic_Code: d.Ethnic_Code, + Ethnic: d.Ethnic, + Addresses: d.Addresses, + Contacts: d.Contacts, + Relatives: d.Relatives, + Language_Code: d.Language_Code, + CommunicationIssueStatus: d.CommunicationIssueStatus, + Disability: d.Disability, + ResidentIdentityFileUrl: d.ResidentIdentityFileUrl, + PassportFileUrl: d.PassportFileUrl, + DrivingLicenseFileUrl: d.DrivingLicenseFileUrl, + FamilyIdentityFileUrl: d.FamilyIdentityFileUrl, } resp.Main = d.Main return resp diff --git a/internal/use-case/main-use-case/person/helper.go b/internal/use-case/main-use-case/person/helper.go index f412a268..61a2f18c 100644 --- a/internal/use-case/main-use-case/person/helper.go +++ b/internal/use-case/main-use-case/person/helper.go @@ -33,4 +33,6 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Person) { data.Nationality = inputSrc.Nationality data.Ethnic_Code = inputSrc.Ethnic_Code data.Language_Code = inputSrc.Language_Code + data.CommunicationIssueStatus = inputSrc.CommunicationIssueStatus + data.Disability = inputSrc.Disability } From 8de44b1e4d3a6365977e07cb51df5e1a28cd4f03 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 12:41:09 +0700 Subject: [PATCH 09/10] update extractToken to read user_division_positions claim/jwt --- .../main-use-case/authentication/case.go | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/internal/use-case/main-use-case/authentication/case.go b/internal/use-case/main-use-case/authentication/case.go index 3e10d86f..b6e9f2f4 100644 --- a/internal/use-case/main-use-case/authentication/case.go +++ b/internal/use-case/main-use-case/authentication/case.go @@ -188,15 +188,25 @@ func ExtractToken(r *http.Request, tokenType TokenType) (data *pa.AuthInfo, err user_name := fmt.Sprintf("%v", claims["user_name"]) var userDivisionPositions []pa.DivisionPosition - if raw, ok := claims["user_division_position"]; ok && raw != nil { - if list, ok := raw.([]interface{}); ok { - for _, item := range list { + raw := claims["user_division_positions"] + if raw == nil { + fmt.Println("No user_division_positions found in claims") + } else { + list, ok := raw.([]interface{}) + if !ok { + fmt.Printf("user_division_positions is not []interface{}, but %T\n", raw) + } else { + fmt.Printf("Found %d division positions\n", len(list)) + for i, item := range list { if m, ok := item.(map[string]interface{}); ok { + fmt.Printf("Item %d: %v\n", i, m) dp := pa.DivisionPosition{ - Division_Code: fmt.Sprintf("%v", m["Division_Code"]), - DivisionPosition_Code: fmt.Sprintf("%v", m["DivisionPosition_Code"]), + Division_Code: fmt.Sprintf("%v", m["division_code"]), + DivisionPosition_Code: fmt.Sprintf("%v", m["divisionPosition_code"]), } userDivisionPositions = append(userDivisionPositions, dp) + } else { + fmt.Printf("Item %d not map[string]interface{} but %T\n", i, item) } } } From 40206abb2be9dae94c7cfb4b565b6602adad08eb Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 6 Oct 2025 14:31:34 +0700 Subject: [PATCH 10/10] handle nested preloads --- pkg/use-case-helper/use-case-helper.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/use-case-helper/use-case-helper.go b/pkg/use-case-helper/use-case-helper.go index 04a8eada..8c41266f 100644 --- a/pkg/use-case-helper/use-case-helper.go +++ b/pkg/use-case-helper/use-case-helper.go @@ -118,7 +118,11 @@ func GetPreloads(input string) []string { result := []string{} parts := strings.Split(input, ",") for _, p := range parts { - result = append(result, kebabToPascal(p)) + subParts := strings.Split(p, "-") + for i := range subParts { + subParts[i] = kebabToPascal(subParts[i]) + } + result = append(result, strings.Join(subParts, ".")) } return result }