package repository import ( "context" "gitlab.com/mbugroup/lti-api.git/internal/common/repository" entity "gitlab.com/mbugroup/lti-api.git/internal/entities" "gorm.io/gorm" ) type ExpenseRealizationRepository interface { repository.BaseRepository[entity.ExpenseRealization] IdExists(ctx context.Context, id uint64) (bool, error) GetByExpenseNonstockID(ctx context.Context, expenseNonstockID uint64) (*entity.ExpenseRealization, error) } type ExpenseRealizationRepositoryImpl struct { *repository.BaseRepositoryImpl[entity.ExpenseRealization] } func NewExpenseRealizationRepository(db *gorm.DB) ExpenseRealizationRepository { return &ExpenseRealizationRepositoryImpl{ BaseRepositoryImpl: repository.NewBaseRepository[entity.ExpenseRealization](db), } } func (r *ExpenseRealizationRepositoryImpl) IdExists(ctx context.Context, id uint64) (bool, error) { return repository.Exists[entity.ExpenseRealization](ctx, r.DB(), uint(id)) } func (r *ExpenseRealizationRepositoryImpl) GetByExpenseNonstockID(ctx context.Context, expenseNonstockID uint64) (*entity.ExpenseRealization, error) { var realization entity.ExpenseRealization err := r.DB().WithContext(ctx). Where("expense_nonstock_id = ?", expenseNonstockID). First(&realization).Error if err != nil { return nil, err } return &realization, nil }