diff --git a/internal/domain/main-entities/medicine/dto.go b/internal/domain/main-entities/medicine/dto.go index 9e63c9ae..df45de8f 100644 --- a/internal/domain/main-entities/medicine/dto.go +++ b/internal/domain/main-entities/medicine/dto.go @@ -25,6 +25,7 @@ type ReadListDto struct { FilterDto Includes string `json:"includes"` Preloads []string `json:"-"` + Search string `json:"search"` } type FilterDto struct { diff --git a/internal/domain/main-entities/specialist/dto.go b/internal/domain/main-entities/specialist/dto.go index ac10b720..01b004e0 100644 --- a/internal/domain/main-entities/specialist/dto.go +++ b/internal/domain/main-entities/specialist/dto.go @@ -14,6 +14,7 @@ type ReadListDto struct { FilterDto Includes string `json:"includes"` Preloads []string `json:"-"` + Search string `json:"search"` } type FilterDto struct { diff --git a/internal/domain/main-entities/subspecialist/dto.go b/internal/domain/main-entities/subspecialist/dto.go index cf387146..ef3178d8 100644 --- a/internal/domain/main-entities/subspecialist/dto.go +++ b/internal/domain/main-entities/subspecialist/dto.go @@ -14,6 +14,7 @@ type ReadListDto struct { FilterDto Includes string `json:"includes"` Preloads []string `json:"-"` + Search string `json:"search"` } type FilterDto struct { diff --git a/internal/domain/main-entities/unit/dto.go b/internal/domain/main-entities/unit/dto.go index e3521eb5..ff082dc7 100644 --- a/internal/domain/main-entities/unit/dto.go +++ b/internal/domain/main-entities/unit/dto.go @@ -15,6 +15,7 @@ type ReadListDto struct { FilterDto Includes string `json:"includes"` Preloads []string `json:"-"` + Search string `json:"search"` } type FilterDto struct { diff --git a/internal/use-case/main-use-case/medicine/lib.go b/internal/use-case/main-use-case/medicine/lib.go index ce894baa..40fe2c13 100644 --- a/internal/use-case/main-use-case/medicine/lib.go +++ b/internal/use-case/main-use-case/medicine/lib.go @@ -2,6 +2,8 @@ package medicine import ( e "simrs-vx/internal/domain/main-entities/medicine" + + plh "simrs-vx/pkg/lib-helper" pl "simrs-vx/pkg/logger" pu "simrs-vx/pkg/use-case-helper" @@ -57,6 +59,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Me } } + plh.SearchCodeOrName(input.Search, tx) + tx = tx. Model(&e.Medicine{}). Scopes(gh.Filter(input.FilterDto)). diff --git a/internal/use-case/main-use-case/specialist/lib.go b/internal/use-case/main-use-case/specialist/lib.go index 206682e0..32378daf 100644 --- a/internal/use-case/main-use-case/specialist/lib.go +++ b/internal/use-case/main-use-case/specialist/lib.go @@ -2,6 +2,8 @@ package specialist import ( e "simrs-vx/internal/domain/main-entities/specialist" + + plh "simrs-vx/pkg/lib-helper" pl "simrs-vx/pkg/logger" pu "simrs-vx/pkg/use-case-helper" @@ -57,6 +59,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Sp } } + plh.SearchCodeOrName(input.Search, tx) + tx = tx. Model(&e.Specialist{}). Scopes(gh.Filter(input.FilterDto)). diff --git a/internal/use-case/main-use-case/subspecialist/lib.go b/internal/use-case/main-use-case/subspecialist/lib.go index 5d879b1e..3753cc8d 100644 --- a/internal/use-case/main-use-case/subspecialist/lib.go +++ b/internal/use-case/main-use-case/subspecialist/lib.go @@ -2,6 +2,8 @@ package subspecialist import ( e "simrs-vx/internal/domain/main-entities/subspecialist" + + plh "simrs-vx/pkg/lib-helper" pl "simrs-vx/pkg/logger" pu "simrs-vx/pkg/use-case-helper" @@ -57,6 +59,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Su } } + plh.SearchCodeOrName(input.Search, tx) + tx = tx. Model(&e.Subspecialist{}). Scopes(gh.Filter(input.FilterDto)). diff --git a/internal/use-case/main-use-case/unit/lib.go b/internal/use-case/main-use-case/unit/lib.go index 9be91f11..24f49256 100644 --- a/internal/use-case/main-use-case/unit/lib.go +++ b/internal/use-case/main-use-case/unit/lib.go @@ -2,6 +2,8 @@ package unit import ( e "simrs-vx/internal/domain/main-entities/unit" + + plh "simrs-vx/pkg/lib-helper" pl "simrs-vx/pkg/logger" pu "simrs-vx/pkg/use-case-helper" @@ -57,6 +59,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Un } } + plh.SearchCodeOrName(input.Search, tx) + tx = tx. Model(&e.Unit{}). Preload("Installation"). diff --git a/pkg/lib-helper/lib-helper.go b/pkg/lib-helper/lib-helper.go new file mode 100644 index 00000000..d5274847 --- /dev/null +++ b/pkg/lib-helper/lib-helper.go @@ -0,0 +1,9 @@ +package libhelper + +import "gorm.io/gorm" + +func SearchCodeOrName(search string, tx *gorm.DB) { + if search != "" { + tx.Where("\"Code\" LIKE ? OR \"Name\" LIKE ?", "%"+search+"%", "%"+search+"%") + } +}