package repository import ( "context" dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db" "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" ) func (s *Store) CreateUserBonus(ctx context.Context, bonus domain.CreateBonus) (domain.UserBonus, error) { newBonus, err := s.queries.CreateUserBonus(ctx, domain.ConvertCreateBonus(bonus)) if err != nil { return domain.UserBonus{}, err } return domain.ConvertDBBonus(newBonus), nil } func (s *Store) GetAllUserBonuses(ctx context.Context, filter domain.BonusFilter) ([]domain.UserBonus, error) { bonuses, err := s.queries.GetAllUserBonuses(ctx, dbgen.GetAllUserBonusesParams{ UserID: filter.UserID.ToPG(), Offset: filter.Offset.ToPG(), Limit: filter.Limit.ToPG(), }) if err != nil { return nil, err } return domain.ConvertDBBonuses(bonuses), nil } func (s *Store) GetBonusCount(ctx context.Context, filter domain.BonusFilter) (int64, error) { count, err := s.queries.GetBonusCount(ctx, filter.UserID.ToPG()) if err != nil { return 0, err } return count, nil } func (s *Store) GetBonusByID(ctx context.Context, bonusID int64) (domain.UserBonus, error) { bonus, err := s.queries.GetUserBonusByID(ctx, bonusID) if err != nil { return domain.UserBonus{}, err } return domain.ConvertDBBonus(bonus), nil } func (s *Store) GetBonusStats(ctx context.Context, filter domain.BonusFilter) (domain.BonusStats, error) { bonus, err := s.queries.GetBonusStats(ctx, dbgen.GetBonusStatsParams{ CompanyID: filter.CompanyID.ToPG(), UserID: filter.UserID.ToPG(), }) if err != nil { return domain.BonusStats{}, err } return domain.ConvertDBBonusStats(bonus), nil } func (s *Store) UpdateUserBonus(ctx context.Context, bonusID int64, IsClaimed bool) (error) { err := s.queries.UpdateUserBonus(ctx, dbgen.UpdateUserBonusParams{ ID: bonusID, IsClaimed: IsClaimed, }) if err != nil { return err } return nil } func (s *Store) DeleteUserBonus(ctx context.Context, bonusID int64) (error) { err := s.queries.DeleteUserBonus(ctx, bonusID) if err != nil { return err } return nil }