45 lines
1.7 KiB
Go
45 lines
1.7 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
func (s *Store) SaveEvent(ctx context.Context, e domain.Event) error {
|
|
parsedTime, err := time.Parse(time.RFC3339, e.StartTime)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return s.queries.InsertEvent(ctx, dbgen.InsertEventParams{
|
|
ID: e.ID,
|
|
SportID: pgtype.Text{String: e.SportID, Valid: true},
|
|
MatchName: pgtype.Text{String: e.MatchName, Valid: true},
|
|
HomeTeam: pgtype.Text{String: e.HomeTeam, Valid: true},
|
|
AwayTeam: pgtype.Text{String: e.AwayTeam, Valid: true},
|
|
HomeTeamID: pgtype.Text{String: e.HomeTeamID, Valid: true},
|
|
AwayTeamID: pgtype.Text{String: e.AwayTeamID, Valid: true},
|
|
HomeKitImage: pgtype.Text{String: e.HomeKitImage, Valid: true},
|
|
AwayKitImage: pgtype.Text{String: e.AwayKitImage, Valid: true},
|
|
LeagueID: pgtype.Text{String: e.LeagueID, Valid: true},
|
|
LeagueName: pgtype.Text{String: e.LeagueName, Valid: true},
|
|
LeagueCc: pgtype.Text{String: e.LeagueCC, Valid: true},
|
|
StartTime: pgtype.Timestamp{Time: parsedTime, Valid: true},
|
|
Score: pgtype.Text{String: e.Score, Valid: true},
|
|
MatchMinute: pgtype.Int4{Int32: int32(e.MatchMinute), Valid: true},
|
|
TimerStatus: pgtype.Text{String: e.TimerStatus, Valid: true},
|
|
AddedTime: pgtype.Int4{Int32: int32(e.AddedTime), Valid: true},
|
|
MatchPeriod: pgtype.Int4{Int32: int32(e.MatchPeriod), Valid: true},
|
|
IsLive: pgtype.Bool{Bool: e.IsLive, Valid: true},
|
|
Status: pgtype.Text{String: e.Status, Valid: true},
|
|
})
|
|
}
|
|
|
|
func (s *Store) GetLiveEventIDs(ctx context.Context) ([]string, error) {
|
|
return s.queries.ListLiveEvents(ctx)
|
|
}
|