diff --git a/internal/domain/main-entities/mcu-src/dto.go b/internal/domain/main-entities/mcu-src/dto.go index 7f950979..66205ab2 100644 --- a/internal/domain/main-entities/mcu-src/dto.go +++ b/internal/domain/main-entities/mcu-src/dto.go @@ -11,6 +11,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Code string `json:"code"` Name string `json:"name"` CheckupCategory_Code *string `json:"checkupCategory_code"` 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 050af71b..75836c14 100644 --- a/internal/domain/main-entities/medical-action-src-item/dto.go +++ b/internal/domain/main-entities/medical-action-src-item/dto.go @@ -14,6 +14,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { MedicalActionSrc_Id *uint `json:"medicalActionSrc_id"` ProcedureSrc_Id *uint `json:"procedureSrc_id"` Item_Id *uint `json:"item_id"` diff --git a/internal/domain/main-entities/medical-action-src/dto.go b/internal/domain/main-entities/medical-action-src/dto.go index 32ad3e0d..664848df 100644 --- a/internal/domain/main-entities/medical-action-src/dto.go +++ b/internal/domain/main-entities/medical-action-src/dto.go @@ -12,6 +12,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Code string `json:"code"` Name string `json:"name"` Item_Id *uint `json:"item_id"` diff --git a/internal/domain/main-entities/medicine-mix-item/dto.go b/internal/domain/main-entities/medicine-mix-item/dto.go index 230347b7..dbcbce21 100644 --- a/internal/domain/main-entities/medicine-mix-item/dto.go +++ b/internal/domain/main-entities/medicine-mix-item/dto.go @@ -13,6 +13,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { MedicineMix_Id *uint `json:"medicineMix_id"` Medicine_Id *uint `json:"medicine_id"` Dose *uint8 `json:"dose"` diff --git a/internal/domain/main-entities/medicine/dto.go b/internal/domain/main-entities/medicine/dto.go index bd17f253..bd01f213 100644 --- a/internal/domain/main-entities/medicine/dto.go +++ b/internal/domain/main-entities/medicine/dto.go @@ -22,6 +22,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Code string `json:"code"` Name string `json:"name"` MedicineGroup_Code *string `json:"medicineGroup_code"` diff --git a/internal/domain/main-entities/nurse/dto.go b/internal/domain/main-entities/nurse/dto.go index 3feaa041..f108c1cb 100644 --- a/internal/domain/main-entities/nurse/dto.go +++ b/internal/domain/main-entities/nurse/dto.go @@ -11,6 +11,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Employee_Id *uint `json:"employee_id"` IHS_Number *string `json:"ihs_number"` @@ -18,7 +24,6 @@ type ReadListDto struct { PageSize int `json:"page_size"` NoPagination int `json:"no_pagination"` } - type ReadDetailDto struct { Id uint16 `json:"id"` Employee_Id *uint `json:"employee_id"` diff --git a/internal/domain/main-entities/nutritionist/dto.go b/internal/domain/main-entities/nutritionist/dto.go index c5bc7003..f69e252e 100644 --- a/internal/domain/main-entities/nutritionist/dto.go +++ b/internal/domain/main-entities/nutritionist/dto.go @@ -11,6 +11,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Employee_Id *uint `json:"employee_id"` IHS_Number *string `json:"ihs_number"` diff --git a/internal/domain/main-entities/person/dto.go b/internal/domain/main-entities/person/dto.go index 2f8c54fd..24ac3d6c 100644 --- a/internal/domain/main-entities/person/dto.go +++ b/internal/domain/main-entities/person/dto.go @@ -23,6 +23,23 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { + 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"` + Page int `json:"page"` PageSize int `json:"page_size"` NoPagination int `json:"no_pagination"` diff --git a/internal/domain/main-entities/pharmacist/dto.go b/internal/domain/main-entities/pharmacist/dto.go index 07bcd1f7..7d32082d 100644 --- a/internal/domain/main-entities/pharmacist/dto.go +++ b/internal/domain/main-entities/pharmacist/dto.go @@ -11,6 +11,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Employee_Id *uint `json:"employee_id"` IHS_Number *string `json:"ihs_number"` diff --git a/internal/domain/main-entities/practice-schedule/dto.go b/internal/domain/main-entities/practice-schedule/dto.go index 64ba3aef..3896868f 100644 --- a/internal/domain/main-entities/practice-schedule/dto.go +++ b/internal/domain/main-entities/practice-schedule/dto.go @@ -14,6 +14,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Doctor_Id *uint `json:"doctor_id"` Unit_Code *string `json:"unit_code"` Day_Code *erc.DayCode `json:"day_code"` diff --git a/internal/domain/main-entities/unit/dto.go b/internal/domain/main-entities/unit/dto.go index 11782b74..8d4c0b44 100644 --- a/internal/domain/main-entities/unit/dto.go +++ b/internal/domain/main-entities/unit/dto.go @@ -12,6 +12,12 @@ type CreateDto struct { } type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Preloads []string `json:"-"` +} + +type FilterDto struct { Installation_Id *uint16 `json:"installation_id"` Code string `json:"code"` Name string `json:"name"` diff --git a/internal/use-case/main-use-case/mcu-src/case.go b/internal/use-case/main-use-case/mcu-src/case.go index 3dc69a7c..ae7a1860 100644 --- a/internal/use-case/main-use-case/mcu-src/case.go +++ b/internal/use-case/main-use-case/mcu-src/case.go @@ -87,6 +87,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/mcu-src/lib.go b/internal/use-case/main-use-case/mcu-src/lib.go index 023d334e..e7e76041 100644 --- a/internal/use-case/main-use-case/mcu-src/lib.go +++ b/internal/use-case/main-use-case/mcu-src/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Mc tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.McuSrc{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/medical-action-src-item/case.go b/internal/use-case/main-use-case/medical-action-src-item/case.go index e811714d..2efdca2c 100644 --- a/internal/use-case/main-use-case/medical-action-src-item/case.go +++ b/internal/use-case/main-use-case/medical-action-src-item/case.go @@ -87,6 +87,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/medical-action-src-item/lib.go b/internal/use-case/main-use-case/medical-action-src-item/lib.go index f294c118..02d81f6c 100644 --- a/internal/use-case/main-use-case/medical-action-src-item/lib.go +++ b/internal/use-case/main-use-case/medical-action-src-item/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Me tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.MedicalActionSrcItem{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/medical-action-src/case.go b/internal/use-case/main-use-case/medical-action-src/case.go index 0b22aa7e..1c0fe565 100644 --- a/internal/use-case/main-use-case/medical-action-src/case.go +++ b/internal/use-case/main-use-case/medical-action-src/case.go @@ -87,6 +87,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/medical-action-src/lib.go b/internal/use-case/main-use-case/medical-action-src/lib.go index b0cdbdc0..5bef2fca 100644 --- a/internal/use-case/main-use-case/medical-action-src/lib.go +++ b/internal/use-case/main-use-case/medical-action-src/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Me tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.MedicalActionSrc{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/medicine-mix-item/case.go b/internal/use-case/main-use-case/medicine-mix-item/case.go index 1b6dfc6e..42145947 100644 --- a/internal/use-case/main-use-case/medicine-mix-item/case.go +++ b/internal/use-case/main-use-case/medicine-mix-item/case.go @@ -87,6 +87,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/medicine-mix-item/lib.go b/internal/use-case/main-use-case/medicine-mix-item/lib.go index 739c6a7a..3bea8e9c 100644 --- a/internal/use-case/main-use-case/medicine-mix-item/lib.go +++ b/internal/use-case/main-use-case/medicine-mix-item/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Me tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.MedicineMixItem{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/medicine/case.go b/internal/use-case/main-use-case/medicine/case.go index 40f49134..aa970478 100644 --- a/internal/use-case/main-use-case/medicine/case.go +++ b/internal/use-case/main-use-case/medicine/case.go @@ -90,6 +90,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/medicine/lib.go b/internal/use-case/main-use-case/medicine/lib.go index a66e7cd0..c7295e10 100644 --- a/internal/use-case/main-use-case/medicine/lib.go +++ b/internal/use-case/main-use-case/medicine/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Me tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Medicine{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/nurse/case.go b/internal/use-case/main-use-case/nurse/case.go index 9bb32296..509be4dd 100644 --- a/internal/use-case/main-use-case/nurse/case.go +++ b/internal/use-case/main-use-case/nurse/case.go @@ -87,6 +87,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/nurse/lib.go b/internal/use-case/main-use-case/nurse/lib.go index 263888e7..c0ffdbb8 100644 --- a/internal/use-case/main-use-case/nurse/lib.go +++ b/internal/use-case/main-use-case/nurse/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Nu tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Nurse{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/nutritionist/case.go b/internal/use-case/main-use-case/nutritionist/case.go index b7cad178..f584f005 100644 --- a/internal/use-case/main-use-case/nutritionist/case.go +++ b/internal/use-case/main-use-case/nutritionist/case.go @@ -87,6 +87,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/nutritionist/lib.go b/internal/use-case/main-use-case/nutritionist/lib.go index 263c4231..abe77aa4 100644 --- a/internal/use-case/main-use-case/nutritionist/lib.go +++ b/internal/use-case/main-use-case/nutritionist/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Nu tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Nutritionist{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/person/case.go b/internal/use-case/main-use-case/person/case.go index a372c34a..e0395bd9 100644 --- a/internal/use-case/main-use-case/person/case.go +++ b/internal/use-case/main-use-case/person/case.go @@ -87,6 +87,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/person/lib.go b/internal/use-case/main-use-case/person/lib.go index 430e8b69..e704bfbb 100644 --- a/internal/use-case/main-use-case/person/lib.go +++ b/internal/use-case/main-use-case/person/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Pe tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Person{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/pharmacist/case.go b/internal/use-case/main-use-case/pharmacist/case.go index a2e7aecc..cdc8503f 100644 --- a/internal/use-case/main-use-case/pharmacist/case.go +++ b/internal/use-case/main-use-case/pharmacist/case.go @@ -87,6 +87,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/pharmacist/lib.go b/internal/use-case/main-use-case/pharmacist/lib.go index 18d41f26..cc22a87f 100644 --- a/internal/use-case/main-use-case/pharmacist/lib.go +++ b/internal/use-case/main-use-case/pharmacist/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Ph tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Pharmacist{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/practice-schedule/case.go b/internal/use-case/main-use-case/practice-schedule/case.go index 82ef0c8b..223d97ec 100644 --- a/internal/use-case/main-use-case/practice-schedule/case.go +++ b/internal/use-case/main-use-case/practice-schedule/case.go @@ -87,6 +87,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/practice-schedule/lib.go b/internal/use-case/main-use-case/practice-schedule/lib.go index a926e984..1d5e34ac 100644 --- a/internal/use-case/main-use-case/practice-schedule/lib.go +++ b/internal/use-case/main-use-case/practice-schedule/lib.go @@ -51,9 +51,15 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Pr tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.PracticeSchedule{}). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC") diff --git a/internal/use-case/main-use-case/unit/case.go b/internal/use-case/main-use-case/unit/case.go index 0ab8cdcb..beb91f7b 100644 --- a/internal/use-case/main-use-case/unit/case.go +++ b/internal/use-case/main-use-case/unit/case.go @@ -87,6 +87,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/unit/lib.go b/internal/use-case/main-use-case/unit/lib.go index d7aebcaf..f43530dc 100644 --- a/internal/use-case/main-use-case/unit/lib.go +++ b/internal/use-case/main-use-case/unit/lib.go @@ -51,10 +51,16 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Un tx = dg.I } + if len(input.Preloads) > 0 { + for _, preload := range input.Preloads { + tx = tx.Preload(preload) + } + } + tx = tx. Model(&e.Unit{}). Preload("Installation"). - Scopes(gh.Filter(input)). + Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). Order("\"CreatedAt\" DESC")