From d1612e5c659544d04379e29a8f9d4460a1fd5bbf Mon Sep 17 00:00:00 2001 From: giovanni Date: Mon, 13 Apr 2026 10:51:12 +0700 Subject: [PATCH] add query param location id --- .../controllers/project_flock_kandang.controller.go | 1 + .../validations/project_flock_kandang.validation.go | 1 + .../repositories/projectflock_kandang.repository.go | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/internal/modules/production/project-flock-kandangs/controllers/project_flock_kandang.controller.go b/internal/modules/production/project-flock-kandangs/controllers/project_flock_kandang.controller.go index 9333410f..8593b992 100644 --- a/internal/modules/production/project-flock-kandangs/controllers/project_flock_kandang.controller.go +++ b/internal/modules/production/project-flock-kandangs/controllers/project_flock_kandang.controller.go @@ -32,6 +32,7 @@ func (u *ProjectFlockKandangController) GetAll(c *fiber.Ctx) error { KandangId: uint(c.QueryInt("kandang_id", 0)), Category: c.Query("category", ""), AreaId: uint(c.QueryInt("area_id", 0)), + LocationId: uint(c.QueryInt("location_id", 0)), SortBy: c.Query("sort_by", ""), SortOrder: c.Query("sort_order", ""), StepName: c.Query("step_name", ""), diff --git a/internal/modules/production/project-flock-kandangs/validations/project_flock_kandang.validation.go b/internal/modules/production/project-flock-kandangs/validations/project_flock_kandang.validation.go index 1fc392ec..a1d71596 100644 --- a/internal/modules/production/project-flock-kandangs/validations/project_flock_kandang.validation.go +++ b/internal/modules/production/project-flock-kandangs/validations/project_flock_kandang.validation.go @@ -19,6 +19,7 @@ type Query struct { KandangId uint `query:"kandang_id" validate:"omitempty"` Category string `query:"category" validate:"omitempty,oneof=Growing Laying"` AreaId uint `query:"area_id" validate:"omitempty"` + LocationId uint `query:"location_id" validate:"omitempty,number,gt=0"` SortBy string `query:"sort_by" validate:"omitempty,oneof=created_at period"` SortOrder string `query:"sort_order" validate:"omitempty,oneof=ASC DESC"` StepName string `query:"step_name" validate:"omitempty,max=50"` diff --git a/internal/modules/production/project_flocks/repositories/projectflock_kandang.repository.go b/internal/modules/production/project_flocks/repositories/projectflock_kandang.repository.go index 29b06fe4..194d1157 100644 --- a/internal/modules/production/project_flocks/repositories/projectflock_kandang.repository.go +++ b/internal/modules/production/project_flocks/repositories/projectflock_kandang.repository.go @@ -178,6 +178,10 @@ func (r *projectFlockKandangRepositoryImpl) GetAllWithFilters(ctx context.Contex if query.AreaId > 0 { q = q.Where("\"project_flocks\".\"area_id\" = ?", query.AreaId) } + + if query.LocationId > 0 { + q = q.Where("\"kandangs\".\"location_id\" = ?", query.LocationId) + } } if err := q.Model(&entity.ProjectFlockKandang{}).Count(&total).Error; err != nil { @@ -276,6 +280,10 @@ func (r *projectFlockKandangRepositoryImpl) GetAllWithFiltersScoped(ctx context. if query.AreaId > 0 { q = q.Where("\"project_flocks\".\"area_id\" = ?", query.AreaId) } + + if query.LocationId > 0 { + q = q.Where("\"kandangs\".\"location_id\" = ?", query.LocationId) + } } if err := q.Model(&entity.ProjectFlockKandang{}).Count(&total).Error; err != nil { @@ -362,6 +370,10 @@ func (r *projectFlockKandangRepositoryImpl) GetAllNameWithPeriodeScoped(ctx cont if params.AreaId > 0 { q = q.Where("\"project_flocks\".\"area_id\" = ?", params.AreaId) } + + if params.LocationId > 0 { + q = q.Where("\"kandangs\".\"location_id\" = ?", params.LocationId) + } } if err := q.Count(&total).Error; err != nil {