Yimaru-BackEnd/internal/repository/ticket.go

71 lines
1.5 KiB
Go

package repository
import (
"context"
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
"github.com/jackc/pgx/v5/pgtype"
)
func (s *Store) CreateTicket(ctx context.Context, amount domain.Currency, totalOdds float32) (domain.Ticket, error) {
ticket, err := s.queries.CreateTicket(ctx, dbgen.CreateTicketParams{
Amount: pgtype.Int8{
Int64: int64(amount),
},
TotalOdds: totalOdds,
})
if err != nil {
return domain.Ticket{}, err
}
return domain.Ticket{
ID: ticket.ID,
Amount: amount,
TotalOdds: totalOdds,
}, err
}
func (s *Store) GetTicketByID(ctx context.Context, id int64) (domain.Ticket, error) {
ticket, err := s.queries.GetTicketByID(ctx, id)
if err != nil {
return domain.Ticket{}, err
}
return domain.Ticket{
ID: ticket.ID,
Amount: domain.Currency(ticket.Amount.Int64),
TotalOdds: ticket.TotalOdds,
}, nil
}
func (s *Store) GetAllTickets(ctx context.Context) ([]domain.Ticket, error) {
tickets, err := s.queries.GetAllTickets(ctx)
if err != nil {
return nil, err
}
var result []domain.Ticket
for _, ticket := range tickets {
result = append(result, domain.Ticket{
ID: ticket.ID,
Amount: domain.Currency(ticket.Amount.Int64),
TotalOdds: ticket.TotalOdds,
})
}
return result, nil
}
func (s *Store) DeleteOldTickets(ctx context.Context) error {
return s.queries.DeleteOldTickets(ctx)
}
func (s *Store) DeleteTicket(ctx context.Context, id int64) error {
return s.queries.DeleteTicket(ctx, id)
}