// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.29.0 // source: events_with_settings.sql package dbgen import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const GetEventWithSettingByID = `-- name: GetEventWithSettingByID :one SELECT e.id, e.source_event_id, e.sport_id, e.match_name, e.home_team, e.away_team, e.home_team_id, e.away_team_id, e.home_kit_image, e.away_kit_image, e.league_id, e.league_name, e.start_time, e.score, e.match_minute, e.timer_status, e.added_time, e.match_period, e.is_live, e.status, e.fetched_at, e.updated_at, e.source, e.default_is_active, e.default_is_featured, e.default_winning_upper_limit, e.is_monitored, ces.company_id, COALESCE(ces.is_active, e.default_is_active) AS is_active, COALESCE(ces.is_featured, e.default_is_featured) AS is_featured, COALESCE( ces.winning_upper_limit, e.default_winning_upper_limit ) AS winning_upper_limit, ces.updated_at, l.country_code as league_cc, COALESCE(om.total_outcomes, 0) AS total_outcomes, COALESCE(ebs.number_of_bets, 0) AS number_of_bets, COALESCE(ebs.total_amount, 0) AS total_amount, COALESCE(ebs.avg_bet_amount, 0) AS avg_bet_amount, COALESCE(ebs.total_potential_winnings, 0) AS total_potential_winnings FROM events e LEFT JOIN company_event_settings ces ON e.id = ces.event_id AND ces.company_id = $2 LEFT JOIN event_bet_stats ebs ON ebs.event_id = e.id JOIN leagues l ON l.id = e.league_id LEFT JOIN ( SELECT event_id, SUM(number_of_outcomes) AS total_outcomes FROM odds_market GROUP BY event_id ) om ON om.event_id = e.id WHERE e.id = $1 LIMIT 1 ` type GetEventWithSettingByIDParams struct { ID int64 `json:"id"` CompanyID int64 `json:"company_id"` } type GetEventWithSettingByIDRow struct { ID int64 `json:"id"` SourceEventID string `json:"source_event_id"` SportID int32 `json:"sport_id"` MatchName string `json:"match_name"` HomeTeam string `json:"home_team"` AwayTeam string `json:"away_team"` HomeTeamID int64 `json:"home_team_id"` AwayTeamID int64 `json:"away_team_id"` HomeKitImage string `json:"home_kit_image"` AwayKitImage string `json:"away_kit_image"` LeagueID int64 `json:"league_id"` LeagueName string `json:"league_name"` StartTime pgtype.Timestamp `json:"start_time"` Score pgtype.Text `json:"score"` MatchMinute pgtype.Int4 `json:"match_minute"` TimerStatus pgtype.Text `json:"timer_status"` AddedTime pgtype.Int4 `json:"added_time"` MatchPeriod pgtype.Int4 `json:"match_period"` IsLive bool `json:"is_live"` Status string `json:"status"` FetchedAt pgtype.Timestamp `json:"fetched_at"` UpdatedAt pgtype.Timestamp `json:"updated_at"` Source string `json:"source"` DefaultIsActive bool `json:"default_is_active"` DefaultIsFeatured bool `json:"default_is_featured"` DefaultWinningUpperLimit int64 `json:"default_winning_upper_limit"` IsMonitored bool `json:"is_monitored"` CompanyID pgtype.Int8 `json:"company_id"` IsActive bool `json:"is_active"` IsFeatured bool `json:"is_featured"` WinningUpperLimit int64 `json:"winning_upper_limit"` UpdatedAt_2 pgtype.Timestamp `json:"updated_at_2"` LeagueCc pgtype.Text `json:"league_cc"` TotalOutcomes int64 `json:"total_outcomes"` NumberOfBets int64 `json:"number_of_bets"` TotalAmount int64 `json:"total_amount"` AvgBetAmount float64 `json:"avg_bet_amount"` TotalPotentialWinnings int64 `json:"total_potential_winnings"` } func (q *Queries) GetEventWithSettingByID(ctx context.Context, arg GetEventWithSettingByIDParams) (GetEventWithSettingByIDRow, error) { row := q.db.QueryRow(ctx, GetEventWithSettingByID, arg.ID, arg.CompanyID) var i GetEventWithSettingByIDRow err := row.Scan( &i.ID, &i.SourceEventID, &i.SportID, &i.MatchName, &i.HomeTeam, &i.AwayTeam, &i.HomeTeamID, &i.AwayTeamID, &i.HomeKitImage, &i.AwayKitImage, &i.LeagueID, &i.LeagueName, &i.StartTime, &i.Score, &i.MatchMinute, &i.TimerStatus, &i.AddedTime, &i.MatchPeriod, &i.IsLive, &i.Status, &i.FetchedAt, &i.UpdatedAt, &i.Source, &i.DefaultIsActive, &i.DefaultIsFeatured, &i.DefaultWinningUpperLimit, &i.IsMonitored, &i.CompanyID, &i.IsActive, &i.IsFeatured, &i.WinningUpperLimit, &i.UpdatedAt_2, &i.LeagueCc, &i.TotalOutcomes, &i.NumberOfBets, &i.TotalAmount, &i.AvgBetAmount, &i.TotalPotentialWinnings, ) return i, err } const GetEventsWithSettings = `-- name: GetEventsWithSettings :many SELECT e.id, e.source_event_id, e.sport_id, e.match_name, e.home_team, e.away_team, e.home_team_id, e.away_team_id, e.home_kit_image, e.away_kit_image, e.league_id, e.league_name, e.start_time, e.score, e.match_minute, e.timer_status, e.added_time, e.match_period, e.is_live, e.status, e.fetched_at, e.updated_at, e.source, e.default_is_active, e.default_is_featured, e.default_winning_upper_limit, e.is_monitored, ces.company_id, COALESCE(ces.is_active, e.default_is_active) AS is_active, COALESCE(ces.is_featured, e.default_is_featured) AS is_featured, COALESCE( ces.winning_upper_limit, e.default_winning_upper_limit ) AS winning_upper_limit, ces.updated_at, l.country_code as league_cc, COALESCE(om.total_outcomes, 0) AS total_outcomes, COALESCE(ebs.number_of_bets, 0) AS number_of_bets, COALESCE(ebs.total_amount, 0) AS total_amount, COALESCE(ebs.avg_bet_amount, 0) AS avg_bet_amount, COALESCE(ebs.total_potential_winnings, 0) AS total_potential_winnings FROM events e LEFT JOIN company_event_settings ces ON e.id = ces.event_id AND ces.company_id = $1 LEFT JOIN event_bet_stats ebs ON ebs.event_id = e.id JOIN leagues l ON l.id = e.league_id LEFT JOIN ( SELECT event_id, SUM(number_of_outcomes) AS total_outcomes FROM odds_market GROUP BY event_id ) om ON om.event_id = e.id WHERE ( is_live = $2 OR $2 IS NULL ) AND ( status = $3 OR $3 IS NULL ) AND( league_id = $4 OR $4 IS NULL ) AND ( e.sport_id = $5 OR $5 IS NULL ) AND ( match_name ILIKE '%' || $6 || '%' OR league_name ILIKE '%' || $6 || '%' OR $6 IS NULL ) AND ( start_time < $7 OR $7 IS NULL ) AND ( start_time > $8 OR $8 IS NULL ) AND ( l.country_code = $9 OR $9 IS NULL ) AND ( ces.is_featured = $10 OR e.default_is_featured = $10 OR $10 IS NULL ) AND ( ces.is_active = $11 OR e.default_is_active = $11 OR $11 IS NULL ) AND ( source = $12 OR $12 IS NULL ) ORDER BY start_time ASC LIMIT $14 OFFSET $13 ` type GetEventsWithSettingsParams struct { CompanyID int64 `json:"company_id"` IsLive pgtype.Bool `json:"is_live"` Status pgtype.Text `json:"status"` LeagueID pgtype.Int8 `json:"league_id"` SportID pgtype.Int4 `json:"sport_id"` Query pgtype.Text `json:"query"` LastStartTime pgtype.Timestamp `json:"last_start_time"` FirstStartTime pgtype.Timestamp `json:"first_start_time"` CountryCode pgtype.Text `json:"country_code"` IsFeatured pgtype.Bool `json:"is_featured"` IsActive pgtype.Bool `json:"is_active"` Source pgtype.Text `json:"source"` Offset pgtype.Int4 `json:"offset"` Limit pgtype.Int4 `json:"limit"` } type GetEventsWithSettingsRow struct { ID int64 `json:"id"` SourceEventID string `json:"source_event_id"` SportID int32 `json:"sport_id"` MatchName string `json:"match_name"` HomeTeam string `json:"home_team"` AwayTeam string `json:"away_team"` HomeTeamID int64 `json:"home_team_id"` AwayTeamID int64 `json:"away_team_id"` HomeKitImage string `json:"home_kit_image"` AwayKitImage string `json:"away_kit_image"` LeagueID int64 `json:"league_id"` LeagueName string `json:"league_name"` StartTime pgtype.Timestamp `json:"start_time"` Score pgtype.Text `json:"score"` MatchMinute pgtype.Int4 `json:"match_minute"` TimerStatus pgtype.Text `json:"timer_status"` AddedTime pgtype.Int4 `json:"added_time"` MatchPeriod pgtype.Int4 `json:"match_period"` IsLive bool `json:"is_live"` Status string `json:"status"` FetchedAt pgtype.Timestamp `json:"fetched_at"` UpdatedAt pgtype.Timestamp `json:"updated_at"` Source string `json:"source"` DefaultIsActive bool `json:"default_is_active"` DefaultIsFeatured bool `json:"default_is_featured"` DefaultWinningUpperLimit int64 `json:"default_winning_upper_limit"` IsMonitored bool `json:"is_monitored"` CompanyID pgtype.Int8 `json:"company_id"` IsActive bool `json:"is_active"` IsFeatured bool `json:"is_featured"` WinningUpperLimit int64 `json:"winning_upper_limit"` UpdatedAt_2 pgtype.Timestamp `json:"updated_at_2"` LeagueCc pgtype.Text `json:"league_cc"` TotalOutcomes int64 `json:"total_outcomes"` NumberOfBets int64 `json:"number_of_bets"` TotalAmount int64 `json:"total_amount"` AvgBetAmount float64 `json:"avg_bet_amount"` TotalPotentialWinnings int64 `json:"total_potential_winnings"` } func (q *Queries) GetEventsWithSettings(ctx context.Context, arg GetEventsWithSettingsParams) ([]GetEventsWithSettingsRow, error) { rows, err := q.db.Query(ctx, GetEventsWithSettings, arg.CompanyID, arg.IsLive, arg.Status, arg.LeagueID, arg.SportID, arg.Query, arg.LastStartTime, arg.FirstStartTime, arg.CountryCode, arg.IsFeatured, arg.IsActive, arg.Source, arg.Offset, arg.Limit, ) if err != nil { return nil, err } defer rows.Close() var items []GetEventsWithSettingsRow for rows.Next() { var i GetEventsWithSettingsRow if err := rows.Scan( &i.ID, &i.SourceEventID, &i.SportID, &i.MatchName, &i.HomeTeam, &i.AwayTeam, &i.HomeTeamID, &i.AwayTeamID, &i.HomeKitImage, &i.AwayKitImage, &i.LeagueID, &i.LeagueName, &i.StartTime, &i.Score, &i.MatchMinute, &i.TimerStatus, &i.AddedTime, &i.MatchPeriod, &i.IsLive, &i.Status, &i.FetchedAt, &i.UpdatedAt, &i.Source, &i.DefaultIsActive, &i.DefaultIsFeatured, &i.DefaultWinningUpperLimit, &i.IsMonitored, &i.CompanyID, &i.IsActive, &i.IsFeatured, &i.WinningUpperLimit, &i.UpdatedAt_2, &i.LeagueCc, &i.TotalOutcomes, &i.NumberOfBets, &i.TotalAmount, &i.AvgBetAmount, &i.TotalPotentialWinnings, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const GetTotalCompanyEvents = `-- name: GetTotalCompanyEvents :one SELECT COUNT(*) FROM events e LEFT JOIN company_event_settings ces ON e.id = ces.event_id AND ces.company_id = $1 JOIN leagues l ON l.id = e.league_id WHERE ( is_live = $2 OR $2 IS NULL ) AND ( status = $3 OR $3 IS NULL ) AND( league_id = $4 OR $4 IS NULL ) AND ( e.sport_id = $5 OR $5 IS NULL ) AND ( match_name ILIKE '%' || $6 || '%' OR league_name ILIKE '%' || $6 || '%' OR $6 IS NULL ) AND ( start_time < $7 OR $7 IS NULL ) AND ( start_time > $8 OR $8 IS NULL ) AND ( l.country_code = $9 OR $9 IS NULL ) AND ( ces.is_featured = $10 OR e.default_is_featured = $10 OR $10 IS NULL ) AND ( ces.is_active = $11 OR e.default_is_active = $11 OR $11 IS NULL ) AND ( source = $12 OR $12 IS NULL ) ` type GetTotalCompanyEventsParams struct { CompanyID int64 `json:"company_id"` IsLive pgtype.Bool `json:"is_live"` Status pgtype.Text `json:"status"` LeagueID pgtype.Int8 `json:"league_id"` SportID pgtype.Int4 `json:"sport_id"` Query pgtype.Text `json:"query"` LastStartTime pgtype.Timestamp `json:"last_start_time"` FirstStartTime pgtype.Timestamp `json:"first_start_time"` CountryCode pgtype.Text `json:"country_code"` IsFeatured pgtype.Bool `json:"is_featured"` IsActive pgtype.Bool `json:"is_active"` Source pgtype.Text `json:"source"` } func (q *Queries) GetTotalCompanyEvents(ctx context.Context, arg GetTotalCompanyEventsParams) (int64, error) { row := q.db.QueryRow(ctx, GetTotalCompanyEvents, arg.CompanyID, arg.IsLive, arg.Status, arg.LeagueID, arg.SportID, arg.Query, arg.LastStartTime, arg.FirstStartTime, arg.CountryCode, arg.IsFeatured, arg.IsActive, arg.Source, ) var count int64 err := row.Scan(&count) return count, err } const SaveTenantEventSettings = `-- name: SaveTenantEventSettings :exec INSERT INTO company_event_settings ( company_id, event_id, is_active, is_featured, winning_upper_limit ) VALUES ($1, $2, $3, $4, $5) ON CONFLICT(company_id, event_id) DO UPDATE SET is_active = EXCLUDED.is_active, is_featured = EXCLUDED.is_featured, winning_upper_limit = EXCLUDED.winning_upper_limit ` type SaveTenantEventSettingsParams struct { CompanyID int64 `json:"company_id"` EventID int64 `json:"event_id"` IsActive pgtype.Bool `json:"is_active"` IsFeatured pgtype.Bool `json:"is_featured"` WinningUpperLimit pgtype.Int8 `json:"winning_upper_limit"` } func (q *Queries) SaveTenantEventSettings(ctx context.Context, arg SaveTenantEventSettingsParams) error { _, err := q.db.Exec(ctx, SaveTenantEventSettings, arg.CompanyID, arg.EventID, arg.IsActive, arg.IsFeatured, arg.WinningUpperLimit, ) return err }