add restrict delete master data kandang group

This commit is contained in:
giovanni
2026-03-27 12:11:17 +07:00
parent 6510bccc76
commit 63cf0c6fac
2 changed files with 29 additions and 0 deletions
@@ -2,6 +2,7 @@ package repository
import (
"context"
"errors"
"gorm.io/gorm"
@@ -14,6 +15,7 @@ type KandangGroupRepository interface {
LocationExists(ctx context.Context, locationId uint) (bool, error)
PicExists(ctx context.Context, picId uint) (bool, error)
NameExists(ctx context.Context, name string, excludeID *uint) (bool, error)
HasDailyChecklistRelation(ctx context.Context, kandangGroupId uint) (bool, error)
}
type KandangGroupRepositoryImpl struct {
@@ -39,3 +41,20 @@ func (r *KandangGroupRepositoryImpl) PicExists(ctx context.Context, picId uint)
func (r *KandangGroupRepositoryImpl) NameExists(ctx context.Context, name string, excludeID *uint) (bool, error) {
return repository.ExistsByName[entity.KandangGroup](ctx, r.db, name, excludeID)
}
func (r *KandangGroupRepositoryImpl) HasDailyChecklistRelation(ctx context.Context, kandangGroupId uint) (bool, error) {
var marker int
err := r.db.WithContext(ctx).
Model(&entity.DailyChecklist{}).
Select("1").
Where("kandang_id = ?", kandangGroupId).
Limit(1).
Take(&marker).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
return false, nil
}
if err != nil {
return false, err
}
return true, nil
}