From 445789edfe76da4be9824f0f339f92405ae77b5e Mon Sep 17 00:00:00 2001 From: ragilap Date: Tue, 21 Oct 2025 15:51:19 +0700 Subject: [PATCH] FIX(BE): category dto do not show --- .../project_flocks/dto/projectflock.dto.go | 43 +++---------------- .../services/projectflock.service.go | 13 +++--- .../validations/projectflock.validation.go | 6 +-- internal/utils/constant.go | 17 +++----- 4 files changed, 20 insertions(+), 59 deletions(-) diff --git a/internal/modules/production/project_flocks/dto/projectflock.dto.go b/internal/modules/production/project_flocks/dto/projectflock.dto.go index cb35eb0f..e639e968 100644 --- a/internal/modules/production/project_flocks/dto/projectflock.dto.go +++ b/internal/modules/production/project_flocks/dto/projectflock.dto.go @@ -16,13 +16,8 @@ import ( ) type ProjectFlockBaseDTO struct { - Id uint `json:"id"` - Period int `json:"period"` - Category string `json:"category"` - Flock *flockDTO.FlockBaseDTO `json:"flock"` - Area *areaDTO.AreaBaseDTO `json:"area"` - Fcr *fcrDTO.FcrBaseDTO `json:"fcr"` - Location *locationDTO.LocationBaseDTO `json:"location"` + Id uint `json:"id"` + Period int `json:"period"` } type ProjectFlockListDTO struct { @@ -72,6 +67,7 @@ func ToProjectFlockListDTO(e entity.ProjectFlock) ProjectFlockListDTO { return ProjectFlockListDTO{ ProjectFlockBaseDTO: createProjectFlockBaseDTO(e), Kandangs: kandangSummaries, + Category: e.Category, CreatedAt: e.CreatedAt, UpdatedAt: e.UpdatedAt, CreatedUser: createdUser, @@ -126,38 +122,9 @@ func defaultProjectFlockLatestApproval(e entity.ProjectFlock) approvalDTO.Approv } func createProjectFlockBaseDTO(e entity.ProjectFlock) ProjectFlockBaseDTO { - var flock *flockDTO.FlockBaseDTO - if e.Flock.Id != 0 { - mapped := flockDTO.ToFlockBaseDTO(e.Flock) - flock = &mapped - } - - var area *areaDTO.AreaBaseDTO - if e.Area.Id != 0 { - mapped := areaDTO.ToAreaBaseDTO(e.Area) - area = &mapped - } - - var fcr *fcrDTO.FcrBaseDTO - if e.Fcr.Id != 0 { - mapped := fcrDTO.ToFcrBaseDTO(e.Fcr) - fcr = &mapped - } - - var location *locationDTO.LocationBaseDTO - if e.Location.Id != 0 { - mapped := locationDTO.ToLocationBaseDTO(e.Location) - location = &mapped - } - return ProjectFlockBaseDTO{ - Id: e.Id, - Period: e.Period, - Category: e.Category, - Flock: flock, - Area: area, - Fcr: fcr, - Location: location, + Id: e.Id, + Period: e.Period, } } diff --git a/internal/modules/production/project_flocks/services/projectflock.service.go b/internal/modules/production/project_flocks/services/projectflock.service.go index 49401dd4..f6ebf6e7 100644 --- a/internal/modules/production/project_flocks/services/projectflock.service.go +++ b/internal/modules/production/project_flocks/services/projectflock.service.go @@ -219,8 +219,8 @@ func (s *projectflockService) CreateOne(c *fiber.Ctx, req *validation.Create) (* return nil, err } - category, ok := utils.NormalizeProjectFlockCategory(req.Category) - if !ok { + cat := strings.ToUpper(req.Category) + if !utils.IsValidProjectFlockCategory(cat) { return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid category") } @@ -257,7 +257,7 @@ func (s *projectflockService) CreateOne(c *fiber.Ctx, req *validation.Create) (* createBody := &entity.ProjectFlock{ FlockId: req.FlockId, AreaId: req.AreaId, - Category: string(category), + Category: cat, FcrId: req.FcrId, LocationId: req.LocationId, CreatedBy: 1, @@ -342,11 +342,12 @@ func (s projectflockService) UpdateOne(c *fiber.Ctx, req *validation.Update, id }) } if req.Category != nil { - if normalized, ok := utils.NormalizeProjectFlockCategory(*req.Category); ok { - updateBody["category"] = string(normalized) - } else { + cat := strings.ToUpper(*req.Category) + if !utils.IsValidProjectFlockCategory(cat) { return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid category") } + + updateBody["category"] = cat } if req.FcrId != nil { updateBody["fcr_id"] = *req.FcrId diff --git a/internal/modules/production/project_flocks/validations/projectflock.validation.go b/internal/modules/production/project_flocks/validations/projectflock.validation.go index 00c9eab8..9ee066af 100644 --- a/internal/modules/production/project_flocks/validations/projectflock.validation.go +++ b/internal/modules/production/project_flocks/validations/projectflock.validation.go @@ -3,7 +3,7 @@ package validation type Create struct { FlockId uint `json:"flock_id" validate:"required_strict,number,gt=0"` AreaId uint `json:"area_id" validate:"required_strict,number,gt=0"` - Category string `json:"category" validate:"required_strict,oneof=growing laying GROWING LAYING"` + Category string `json:"category" validate:"required_strict"` FcrId uint `json:"fcr_id" validate:"required_strict,number,gt=0"` LocationId uint `json:"location_id" validate:"required_strict,number,gt=0"` KandangIds []uint `json:"kandang_ids" validate:"required,min=1,dive,gt=0"` @@ -12,7 +12,7 @@ type Create struct { type Update struct { FlockId *uint `json:"flock_id,omitempty" validate:"omitempty,number,gt=0"` AreaId *uint `json:"area_id,omitempty" validate:"omitempty,number,gt=0"` - Category *string `json:"category,omitempty" validate:"omitempty,oneof=growing laying GROWING LAYING"` + Category *string `json:"category,omitempty" validate:"omitempty"` FcrId *uint `json:"fcr_id,omitempty" validate:"omitempty,number,gt=0"` LocationId *uint `json:"location_id,omitempty" validate:"omitempty,number,gt=0"` KandangIds []uint `json:"kandang_ids,omitempty" validate:"omitempty,min=1,dive,gt=0"` @@ -22,7 +22,7 @@ type Query struct { Page int `query:"page" validate:"omitempty,number,min=1"` Limit int `query:"limit" validate:"omitempty,number,min=1,max=100"` Search string `query:"search" validate:"omitempty,max=50"` - SortBy string `query:"sort_by" validate:"omitempty,oneof=area location kandangs period"` + SortBy string `query:"sort_by" validate:"omitempty"` SortOrder string `query:"sort_order" validate:"omitempty,oneof=asc desc"` AreaId uint `query:"area_id" validate:"omitempty,number,gt=0"` LocationId uint `query:"location_id" validate:"omitempty,number,gt=0"` diff --git a/internal/utils/constant.go b/internal/utils/constant.go index 5ab236b0..bdbc53b6 100644 --- a/internal/utils/constant.go +++ b/internal/utils/constant.go @@ -250,19 +250,12 @@ func IsValidCustomerSupplierType(v string) bool { return false } -func NormalizeProjectFlockCategory(v string) (ProjectFlockCategory, bool) { - normalized := ProjectFlockCategory(strings.ToUpper(strings.TrimSpace(v))) - switch normalized { - case ProjectFlockCategoryGrowing, ProjectFlockCategoryLaying: - return normalized, true - default: - return "", false - } -} - func IsValidProjectFlockCategory(v string) bool { - _, ok := NormalizeProjectFlockCategory(v) - return ok + switch ProjectFlockCategory(v) { + case ProjectFlockCategoryGrowing, ProjectFlockCategoryLaying: + return true + } + return false } func IsValidSupplierCategory(v string) bool {