Yimaru-BackEnd/internal/repository/company_stats.go

39 lines
1.1 KiB
Go

package repository
import (
"context"
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
"github.com/SamuelTariku/FortuneBet-Backend/internal/ports"
)
// Interface for creating new company stats store
func NewCompanyStatStore(s *Store) ports.CompanyStatStore { return s }
func (s *Store) UpdateCompanyStats(ctx context.Context) error {
return s.queries.UpdateCompanyStats(ctx)
}
func (s *Store) GetCompanyStatByID(ctx context.Context, companyID int64) ([]domain.CompanyStat, error) {
stats, err := s.queries.GetCompanyStatsByID(ctx, companyID)
if err != nil {
return nil, err
}
return domain.ConvertDBCompanyStatsList(stats), nil
}
func (s *Store) GetCompanyStatsByInterval(ctx context.Context, filter domain.CompanyStatFilter) ([]domain.CompanyStat, error) {
stats, err := s.queries.GetCompanyStats(ctx, dbgen.GetCompanyStatsParams{
Interval: filter.Interval.ToPG(),
CompanyID: filter.CompanyID.ToPG(),
})
if err != nil {
return nil, err
}
return domain.ConvertDBCompanyStatsByIntervalList(stats), nil
}