From 8aa34607b9c2ce3e9c3e85d10ad85e3bff1dd1d9 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 1 Sep 2025 14:28:34 +0700 Subject: [PATCH] remove unnecessary field in readdetail --- internal/domain/main-entities/device/dto.go | 8 +--- .../domain/main-entities/diagnose-src/dto.go | 6 +-- internal/domain/main-entities/district/dto.go | 6 +-- .../main-entities/division-position/dto.go | 6 +-- internal/domain/main-entities/division/dto.go | 6 +-- .../domain/main-entities/doctor-fee/dto.go | 8 ++-- internal/domain/main-entities/doctor/dto.go | 1 - .../main-entities/employee copy/entity.go | 19 -------- internal/domain/main-entities/employee/dto.go | 27 +++++++++--- internal/domain/main-entities/ethnic/dto.go | 5 +-- internal/domain/main-entities/infra/dto.go | 9 ++-- .../domain/main-entities/installation/dto.go | 6 +-- .../main-entities/insurance-company/dto.go | 9 ++-- .../domain/main-entities/item-price/dto.go | 6 +-- internal/domain/main-entities/item/dto.go | 9 +--- internal/domain/main-entities/material/dto.go | 10 ++--- .../main-entities/mcu-src-category/dto.go | 6 +-- internal/domain/main-entities/mcu-src/dto.go | 6 +-- .../medical-action-src-item/dto.go | 5 +-- .../main-entities/medical-action-src/dto.go | 6 +-- .../main-entities/medicine-group/dto.go | 5 +-- .../main-entities/medicine-method/dto.go | 5 +-- .../main-entities/medicine-mix-item/dto.go | 5 +-- .../domain/main-entities/medicine-mix/dto.go | 3 +- internal/domain/main-entities/medicine/dto.go | 13 ++---- .../main-entities/person-address/dto.go | 8 +--- .../main-entities/person-contact/dto.go | 6 +-- internal/domain/main-entities/person/dto.go | 14 ++---- .../main-entities/pharmacy-company/dto.go | 6 +-- .../main-entities/practice-schedule/dto.go | 7 +-- .../domain/main-entities/procedure-src/dto.go | 6 +-- internal/domain/main-entities/province/dto.go | 5 +-- internal/domain/main-entities/regency/dto.go | 6 +-- internal/domain/main-entities/unit/dto.go | 5 +-- internal/domain/main-entities/uom/dto.go | 5 +-- internal/domain/main-entities/user/dto.go | 4 +- internal/domain/main-entities/village/dto.go | 6 +-- .../use-case/main-use-case/employee/case.go | 14 +++++- .../use-case/main-use-case/employee/helper.go | 44 +++++++++++++++++++ .../use-case/main-use-case/employee/lib.go | 8 +++- pkg/use-case-helper/use-case-helper.go | 21 +++++++++ 41 files changed, 175 insertions(+), 185 deletions(-) delete mode 100644 internal/domain/main-entities/employee copy/entity.go diff --git a/internal/domain/main-entities/device/dto.go b/internal/domain/main-entities/device/dto.go index 6d21f63c..cd299608 100644 --- a/internal/domain/main-entities/device/dto.go +++ b/internal/domain/main-entities/device/dto.go @@ -28,12 +28,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - 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"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/diagnose-src/dto.go b/internal/domain/main-entities/diagnose-src/dto.go index 9e8736a1..3cfe0152 100644 --- a/internal/domain/main-entities/diagnose-src/dto.go +++ b/internal/domain/main-entities/diagnose-src/dto.go @@ -21,10 +21,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - IndName string `json:"indName"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/district/dto.go b/internal/domain/main-entities/district/dto.go index 850d4649..57f41892 100644 --- a/internal/domain/main-entities/district/dto.go +++ b/internal/domain/main-entities/district/dto.go @@ -19,10 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint32 `json:"id"` - Regency_Code string `json:"regency_code"` - Code string `json:"code"` - Name string `json:"name"` + Id uint32 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/division-position/dto.go b/internal/domain/main-entities/division-position/dto.go index 8dd18d0b..4011a47d 100644 --- a/internal/domain/main-entities/division-position/dto.go +++ b/internal/domain/main-entities/division-position/dto.go @@ -22,10 +22,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Division_Id *uint16 `json:"division_id"` - Code string `json:"code"` - Name string `json:"name"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/division/dto.go b/internal/domain/main-entities/division/dto.go index d9d7b606..890bd606 100644 --- a/internal/domain/main-entities/division/dto.go +++ b/internal/domain/main-entities/division/dto.go @@ -21,10 +21,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - Parent_Id *int16 `json:"parent_id"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/doctor-fee/dto.go b/internal/domain/main-entities/doctor-fee/dto.go index 6052f984..b25d2ebd 100644 --- a/internal/domain/main-entities/doctor-fee/dto.go +++ b/internal/domain/main-entities/doctor-fee/dto.go @@ -26,11 +26,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Doctor_Id *uint `json:"doctor_id"` - FeeType_Code *ero.DoctorFeeTypeCode `json:"feeType_code"` - Price *float64 `json:"price"` - Item_Id *uint `json:"item_id"` + Id uint16 `json:"id"` + Doctor_Id *uint `json:"doctor_id"` + Item_Id *uint `json:"item_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/doctor/dto.go b/internal/domain/main-entities/doctor/dto.go index f251fe59..351cfdfd 100644 --- a/internal/domain/main-entities/doctor/dto.go +++ b/internal/domain/main-entities/doctor/dto.go @@ -29,7 +29,6 @@ type ReadDetailDto struct { Employee_Id *uint `json:"employee_id"` IHS_Number *string `json:"ihs_number"` SIP_Number *string `json:"sip_number"` - Unit_Id *uint `json:"unit_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/employee copy/entity.go b/internal/domain/main-entities/employee copy/entity.go deleted file mode 100644 index 55b829fa..00000000 --- a/internal/domain/main-entities/employee copy/entity.go +++ /dev/null @@ -1,19 +0,0 @@ -package employee - -import ( - ecore "simrs-vx/internal/domain/base-entities/core" - ed "simrs-vx/internal/domain/main-entities/division" - erc "simrs-vx/internal/domain/references/common" - ero "simrs-vx/internal/domain/references/organization" -) - -type Employee struct { - ecore.Main // adjust this according to the needs - User_Id *uint `json:"user_id"` - Person_Id *uint `json:"person_id"` - Position_Code ero.EmployeePosisitionCode `json:"position_code" gorm:"not null;size:20"` - Division_Code *string `json:"division_code"` - Division *ed.Division `json:"division,omitempty" gorm:"foreignKey:Division_Code;references:Code"` - Number *string `json:"number" gorm:"size:20"` - Status_Code erc.StatusCode `json:"status_code" gorm:"not null;size:10"` -} diff --git a/internal/domain/main-entities/employee/dto.go b/internal/domain/main-entities/employee/dto.go index eb7432ec..e12cf4d6 100644 --- a/internal/domain/main-entities/employee/dto.go +++ b/internal/domain/main-entities/employee/dto.go @@ -3,13 +3,17 @@ package employee import ( ecore "simrs-vx/internal/domain/base-entities/core" ed "simrs-vx/internal/domain/main-entities/division" + ep "simrs-vx/internal/domain/main-entities/person" + eu "simrs-vx/internal/domain/main-entities/user" erc "simrs-vx/internal/domain/references/common" ero "simrs-vx/internal/domain/references/organization" ) type CreateDto struct { User_Id *uint `json:"user_id"` + UserRequest *eu.CreateDto `json:"user_request"` Person_Id *uint `json:"person_id"` + PersonRequest *ep.CreateDto `json:"person_request"` Position_Code ero.EmployeePosisitionCode `json:"position_code"` Division_Code *string `json:"division_code"` Number *string `json:"number"` @@ -17,6 +21,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { User_Id *uint `json:"user_id"` Person_Id *uint `json:"person_id"` Position_Code ero.EmployeePosisitionCode `json:"position_code"` @@ -30,13 +40,10 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - User_Id *uint `json:"user_id"` - Person_Id *uint `json:"person_id"` - Position_Code ero.EmployeePosisitionCode `json:"position_code"` - Division_Code *string `json:"division_code"` - Number *string `json:"number"` - Status_Code erc.ActiveStatusCode `json:"status_code"` + Id uint16 `json:"id"` + User_Id *uint `json:"user_id"` + Person_Id *uint `json:"person_id"` + Number *string `json:"number"` } type UpdateDto struct { @@ -86,3 +93,9 @@ func ToResponseList(data []Employee) []ResponseDto { } return resp } + +func (c CreateDto) Sanitize() CreateDto { + sanitized := c + sanitized.UserRequest.Password = "[REDACTED]" + return sanitized +} diff --git a/internal/domain/main-entities/ethnic/dto.go b/internal/domain/main-entities/ethnic/dto.go index 64e5ca85..f434e4ae 100644 --- a/internal/domain/main-entities/ethnic/dto.go +++ b/internal/domain/main-entities/ethnic/dto.go @@ -19,9 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/infra/dto.go b/internal/domain/main-entities/infra/dto.go index 17f36ddf..9cfb076d 100644 --- a/internal/domain/main-entities/infra/dto.go +++ b/internal/domain/main-entities/infra/dto.go @@ -28,12 +28,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - 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"` + Id uint16 `json:"id"` + Code *string `json:"code"` + Item_Id *uint `json:"item_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/installation/dto.go b/internal/domain/main-entities/installation/dto.go index d3691c03..76b4084b 100644 --- a/internal/domain/main-entities/installation/dto.go +++ b/internal/domain/main-entities/installation/dto.go @@ -22,10 +22,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/insurance-company/dto.go b/internal/domain/main-entities/insurance-company/dto.go index 2cc36195..c541120f 100644 --- a/internal/domain/main-entities/insurance-company/dto.go +++ b/internal/domain/main-entities/insurance-company/dto.go @@ -26,12 +26,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - Regency_Code *string `json:"regency_code"` - Address string `json:"address"` - PhoneNumber string `json:"phoneNumber"` + Id uint16 `json:"id"` + Code *string `json:"code"` + PhoneNumber *string `json:"phoneNumber"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/item-price/dto.go b/internal/domain/main-entities/item-price/dto.go index 730284e0..ca8ab948 100644 --- a/internal/domain/main-entities/item-price/dto.go +++ b/internal/domain/main-entities/item-price/dto.go @@ -23,10 +23,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Item_Id *uint `json:"item_id"` - Price float64 `json:"price"` - InsuranceCompany_Code *string `json:"insuranceCompany_code"` + Id uint16 `json:"id"` + Item_Id *uint `json:"item_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/item/dto.go b/internal/domain/main-entities/item/dto.go index b90cbd58..a6ab4991 100644 --- a/internal/domain/main-entities/item/dto.go +++ b/internal/domain/main-entities/item/dto.go @@ -29,13 +29,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - ItemGroup_Code ero.ItemGroupCode `json:"itemGroup_code"` - Uom_Code *string `json:"uom_code"` - Infra_Id *int16 `json:"infra_id"` - Stock *int `json:"stock"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/material/dto.go b/internal/domain/main-entities/material/dto.go index ce4311d4..5ec82138 100644 --- a/internal/domain/main-entities/material/dto.go +++ b/internal/domain/main-entities/material/dto.go @@ -30,13 +30,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - Uom_Code string `json:"uom_code"` - Infra_Id *uint16 `json:"infra_id"` - Stock *int `json:"stock"` - Item_Id *uint `json:"item_id"` + Id uint16 `json:"id"` + Code *string `json:"code"` + Item_Id *uint `json:"item_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/mcu-src-category/dto.go b/internal/domain/main-entities/mcu-src-category/dto.go index 6c48beb3..7058722f 100644 --- a/internal/domain/main-entities/mcu-src-category/dto.go +++ b/internal/domain/main-entities/mcu-src-category/dto.go @@ -22,10 +22,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - Scope_Code *ere.CheckupScopeCode `json:"scope_code"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/mcu-src/dto.go b/internal/domain/main-entities/mcu-src/dto.go index f0c06a51..7f950979 100644 --- a/internal/domain/main-entities/mcu-src/dto.go +++ b/internal/domain/main-entities/mcu-src/dto.go @@ -21,10 +21,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - CheckupCategory_Code *string `json:"checkupCategory_code"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto 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 79ba260c..050af71b 100644 --- a/internal/domain/main-entities/medical-action-src-item/dto.go +++ b/internal/domain/main-entities/medical-action-src-item/dto.go @@ -24,10 +24,7 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - MedicalActionSrc_Id *uint `json:"medicalActionSrc_id"` - ProcedureSrc_Id *uint `json:"procedureSrc_id"` - Item_Id *uint `json:"item_id"` + Id uint16 `json:"id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/medical-action-src/dto.go b/internal/domain/main-entities/medical-action-src/dto.go index 85fdf003..32ad3e0d 100644 --- a/internal/domain/main-entities/medical-action-src/dto.go +++ b/internal/domain/main-entities/medical-action-src/dto.go @@ -22,10 +22,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - Item_Id *uint `json:"item_id"` + Id uint16 `json:"id"` + Code string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/medicine-group/dto.go b/internal/domain/main-entities/medicine-group/dto.go index 3ae439a3..c4dfde6c 100644 --- a/internal/domain/main-entities/medicine-group/dto.go +++ b/internal/domain/main-entities/medicine-group/dto.go @@ -19,9 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/medicine-method/dto.go b/internal/domain/main-entities/medicine-method/dto.go index 074f8caa..763a7c65 100644 --- a/internal/domain/main-entities/medicine-method/dto.go +++ b/internal/domain/main-entities/medicine-method/dto.go @@ -19,9 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/medicine-mix-item/dto.go b/internal/domain/main-entities/medicine-mix-item/dto.go index fcc1865e..230347b7 100644 --- a/internal/domain/main-entities/medicine-mix-item/dto.go +++ b/internal/domain/main-entities/medicine-mix-item/dto.go @@ -23,10 +23,7 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - MedicineMix_Id *uint `json:"medicineMix_id"` - Medicine_Id *uint `json:"medicine_id"` - Dose *uint8 `json:"dose"` + Id uint16 `json:"id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/medicine-mix/dto.go b/internal/domain/main-entities/medicine-mix/dto.go index 1d21a635..39314051 100644 --- a/internal/domain/main-entities/medicine-mix/dto.go +++ b/internal/domain/main-entities/medicine-mix/dto.go @@ -17,8 +17,7 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Name string `json:"name"` + Id uint16 `json:"id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/medicine/dto.go b/internal/domain/main-entities/medicine/dto.go index 9e505b8b..bd17f253 100644 --- a/internal/domain/main-entities/medicine/dto.go +++ b/internal/domain/main-entities/medicine/dto.go @@ -38,16 +38,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - 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"` - Dose uint8 `json:"dose"` - Infra_Id *uint16 `json:"infra_id"` - Stock *int `json:"stock"` - Item_Id *uint `json:"item_id"` + Id uint16 `json:"id"` + Code *string `json:"code"` + Item_Id *uint `json:"item_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/person-address/dto.go b/internal/domain/main-entities/person-address/dto.go index 73ae88ce..f88799f1 100644 --- a/internal/domain/main-entities/person-address/dto.go +++ b/internal/domain/main-entities/person-address/dto.go @@ -19,12 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint `json:"id"` - Person_Id uint `json:"person_id"` - Address string `json:"address"` - Rt string `json:"rt"` - Rw string `json:"rw"` - Village_Code string `json:"village_code"` + Id uint `json:"id"` + Person_Id uint `json:"person_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/person-contact/dto.go b/internal/domain/main-entities/person-contact/dto.go index e6865191..036db7e7 100644 --- a/internal/domain/main-entities/person-contact/dto.go +++ b/internal/domain/main-entities/person-contact/dto.go @@ -18,10 +18,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint `json:"id"` - Person_Id uint `json:"person_id"` - Type_Code erp.ContactTypeCode `json:"type_code"` - Value string `json:"value"` + Id uint `json:"id"` + Person_Id uint `json:"person_id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/person/dto.go b/internal/domain/main-entities/person/dto.go index 296e23b6..2f8c54fd 100644 --- a/internal/domain/main-entities/person/dto.go +++ b/internal/domain/main-entities/person/dto.go @@ -29,17 +29,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint `json:"id"` - Name string `json:"name"` - BirthDate *time.Time `json:"birthDate,omitempty"` - BirthRegency_Code *string `json:"birthRegency_code"` - Gender_Code *erp.GenderCode `json:"gender_code"` - ResidentIdentityNumber *string `json:"residentIdentityNumber"` - 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"` - Ethnic_Code *string `json:"ethnic_code"` + Id uint `json:"id"` + Name *string `json:"name"` + ResidentIdentityNumber *string `json:"residentIdentityNumber"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/pharmacy-company/dto.go b/internal/domain/main-entities/pharmacy-company/dto.go index d8f4dd27..eb7ce5e1 100644 --- a/internal/domain/main-entities/pharmacy-company/dto.go +++ b/internal/domain/main-entities/pharmacy-company/dto.go @@ -21,10 +21,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - Regency_Code string `json:"regency_code"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/practice-schedule/dto.go b/internal/domain/main-entities/practice-schedule/dto.go index ea09c0d9..64ba3aef 100644 --- a/internal/domain/main-entities/practice-schedule/dto.go +++ b/internal/domain/main-entities/practice-schedule/dto.go @@ -26,12 +26,7 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - 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"` + Id uint16 `json:"id"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/procedure-src/dto.go b/internal/domain/main-entities/procedure-src/dto.go index c0ba8c30..a69a5244 100644 --- a/internal/domain/main-entities/procedure-src/dto.go +++ b/internal/domain/main-entities/procedure-src/dto.go @@ -21,10 +21,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` - IndName string `json:"indName"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/province/dto.go b/internal/domain/main-entities/province/dto.go index bc1461e0..5bd519a8 100644 --- a/internal/domain/main-entities/province/dto.go +++ b/internal/domain/main-entities/province/dto.go @@ -15,9 +15,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id int16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` + Id int16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/regency/dto.go b/internal/domain/main-entities/regency/dto.go index 6cb850de..7fb7546b 100644 --- a/internal/domain/main-entities/regency/dto.go +++ b/internal/domain/main-entities/regency/dto.go @@ -19,10 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Province_Code string `json:"province_code"` - Code string `json:"code"` - Name string `json:"name"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/unit/dto.go b/internal/domain/main-entities/unit/dto.go index 448d16ec..11782b74 100644 --- a/internal/domain/main-entities/unit/dto.go +++ b/internal/domain/main-entities/unit/dto.go @@ -22,10 +22,9 @@ type ReadListDto struct { } type ReadDetailDto struct { - Installation_Id *uint16 `json:"installation_id"` Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` + Installation_Id *uint16 `json:"installation_id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/uom/dto.go b/internal/domain/main-entities/uom/dto.go index 08055c12..597510a1 100644 --- a/internal/domain/main-entities/uom/dto.go +++ b/internal/domain/main-entities/uom/dto.go @@ -19,9 +19,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint16 `json:"id"` - Code string `json:"code"` - Name string `json:"name"` + Id uint16 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/user/dto.go b/internal/domain/main-entities/user/dto.go index 7ac5715c..102429b7 100644 --- a/internal/domain/main-entities/user/dto.go +++ b/internal/domain/main-entities/user/dto.go @@ -22,8 +22,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint `json:"id"` - Name string `json:"name"` + Id uint `json:"id"` + Name *string `json:"name"` } type UpdateDto struct { diff --git a/internal/domain/main-entities/village/dto.go b/internal/domain/main-entities/village/dto.go index bdd1a323..968784ee 100644 --- a/internal/domain/main-entities/village/dto.go +++ b/internal/domain/main-entities/village/dto.go @@ -17,10 +17,8 @@ type ReadListDto struct { } type ReadDetailDto struct { - Id uint32 `json:"id"` - District_Code string `json:"district_code"` - Code string `json:"code"` - Name string `json:"name"` + Id uint32 `json:"id"` + Code *string `json:"code"` } type UpdateDto struct { diff --git a/internal/use-case/main-use-case/employee/case.go b/internal/use-case/main-use-case/employee/case.go index 68476e13..5d77ded2 100644 --- a/internal/use-case/main-use-case/employee/case.go +++ b/internal/use-case/main-use-case/employee/case.go @@ -24,7 +24,7 @@ func Create(input e.CreateDto) (*d.Data, error) { } // Start log - pl.SetLogInfo(&event, input, "started", "create") + pl.SetLogInfo(&event, input.Sanitize(), "started", "create") err := dg.I.Transaction(func(tx *gorm.DB) error { mwRunner := newMiddlewareRunner(&event, tx) @@ -34,6 +34,15 @@ func Create(input e.CreateDto) (*d.Data, error) { return err } + if input.Person_Id == nil { + if err := createPerson(&input, &event, tx); err != nil { + return err + } + } + if err := createUser(&input, &event, tx); err != nil { + return err + } + if resData, err := CreateData(input, &event, tx); err != nil { return err } else { @@ -87,6 +96,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) { return err } + if len(input.Includes) > 0 { + input.Preloads = pu.GetPreloads(input.Includes) + } if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { return err } diff --git a/internal/use-case/main-use-case/employee/helper.go b/internal/use-case/main-use-case/employee/helper.go index 1660048f..8eca2b26 100644 --- a/internal/use-case/main-use-case/employee/helper.go +++ b/internal/use-case/main-use-case/employee/helper.go @@ -5,7 +5,14 @@ Any functions that are used internally by the use-case package employee import ( + "errors" e "simrs-vx/internal/domain/main-entities/employee" + pl "simrs-vx/pkg/logger" + + up "simrs-vx/internal/use-case/main-use-case/person" + uu "simrs-vx/internal/use-case/main-use-case/user" + + "gorm.io/gorm" ) func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Employee) { @@ -24,3 +31,40 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Employee) { data.Number = inputSrc.Number data.Status_Code = inputSrc.Status_Code } + +func createUser(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error { + if input.UserRequest == nil { + event.Status = "failed" + event.ErrInfo = pl.ErrorInfo{ + Code: "data-create-fail", + Detail: "user request is required", + Raw: errors.New("user request is required"), + } + return pl.SetLogError(event, input) + } + user, err := uu.CreateData(*input.UserRequest, event, tx) + if err != nil { + return err + } + input.User_Id = &user.Id + return nil +} + +func createPerson(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error { + if input.PersonRequest == nil { + event.Status = "failed" + event.ErrInfo = pl.ErrorInfo{ + Code: "data-create-fail", + Detail: "person request is required", + Raw: errors.New("person request is required"), + } + return pl.SetLogError(event, input) + } + person, err := up.CreateData(*input.PersonRequest, event, tx) + if err != nil { + return err + } + input.Person_Id = &person.Id + return nil + +} diff --git a/internal/use-case/main-use-case/employee/lib.go b/internal/use-case/main-use-case/employee/lib.go index 261acb56..18dc9d9a 100644 --- a/internal/use-case/main-use-case/employee/lib.go +++ b/internal/use-case/main-use-case/employee/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Em tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Employee{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/pkg/use-case-helper/use-case-helper.go b/pkg/use-case-helper/use-case-helper.go index fadfa373..beb369c1 100644 --- a/pkg/use-case-helper/use-case-helper.go +++ b/pkg/use-case-helper/use-case-helper.go @@ -80,3 +80,24 @@ func HandleMiddlewareError(event *pl.Event, mwType, mwName string, logData inter func AddPrefix(prefix string, str string) string { return prefix + str } + +func GetPreloads(input string) []string { + result := []string{} + parts := strings.Split(input, ",") + for _, p := range parts { + result = append(result, kebabToPascal(p)) + } + return result +} + +func kebabToPascal(input string) string { + parts := strings.Split(input, "-") + for i, p := range parts { + if len(p) > 0 { + r := []rune(p) + r[0] = []rune(strings.ToUpper(string(r[0])))[0] + parts[i] = string(r) + } + } + return strings.Join(parts, "") +}