feat(BE-281): unique uniformity weeks

This commit is contained in:
ragilap
2026-01-09 10:04:31 +07:00
parent f7522636e2
commit 338312edd1
@@ -605,13 +605,13 @@ func (s uniformityService) UpdateOne(c *fiber.Ctx, req *validation.Update, id ui
} }
func (s *uniformityService) ensureUniqueUniformity(ctx context.Context, id uint, projectFlockKandangID uint, week int, uniformDate *time.Time) error { func (s *uniformityService) ensureUniqueUniformity(ctx context.Context, id uint, projectFlockKandangID uint, week int, uniformDate *time.Time) error {
if projectFlockKandangID == 0 || week == 0 || uniformDate == nil || uniformDate.IsZero() { if projectFlockKandangID == 0 || week == 0 {
return nil return nil
} }
query := s.Repository.DB().WithContext(ctx). query := s.Repository.DB().WithContext(ctx).
Model(&entity.ProjectFlockKandangUniformity{}). Model(&entity.ProjectFlockKandangUniformity{}).
Where("project_flock_kandang_id = ? AND week = ? AND uniform_date = ?", projectFlockKandangID, week, *uniformDate) Where("project_flock_kandang_id = ? AND week = ?", projectFlockKandangID, week)
if id != 0 { if id != 0 {
query = query.Where("id <> ?", id) query = query.Where("id <> ?", id)
} }
@@ -621,7 +621,7 @@ func (s *uniformityService) ensureUniqueUniformity(ctx context.Context, id uint,
return fiber.NewError(fiber.StatusInternalServerError, "Failed to validate uniformity uniqueness") return fiber.NewError(fiber.StatusInternalServerError, "Failed to validate uniformity uniqueness")
} }
if count > 0 { if count > 0 {
return fiber.NewError(fiber.StatusConflict, "Uniformity already exists for the same project flock kandang, week, and date") return fiber.NewError(fiber.StatusConflict, "Uniformity already exists for the same project flock kandang and week")
} }
return nil return nil
} }