fix duplicate name, time type and phase id create phase activity

This commit is contained in:
giovanni
2026-01-20 23:01:58 +07:00
parent e6244dea8a
commit 67ecdbc1dd
@@ -110,6 +110,17 @@ func (s *phaseActivityService) CreateOne(c *fiber.Ctx, req *validation.Create) (
return nil, fiber.NewError(fiber.StatusBadRequest, "time_type cannot be empty") return nil, fiber.NewError(fiber.StatusBadRequest, "time_type cannot be empty")
} }
existing, err := s.Repository.First(c.Context(), func(db *gorm.DB) *gorm.DB {
return db.Where("phase_id = ? AND name = ? AND time_type = ?", phase.Id, name, timeType)
})
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
s.Log.Errorf("Failed to check phaseActivity uniqueness: %+v", err)
return nil, err
}
if existing != nil {
return nil, fiber.NewError(fiber.StatusBadRequest, "phase activity with same name and time_type already exists")
}
createBody := &entity.PhaseActivity{ createBody := &entity.PhaseActivity{
PhaseId: phase.Id, PhaseId: phase.Id,
Name: name, Name: name,