114 lines
2.9 KiB
SQL
114 lines
2.9 KiB
SQL
-- name: InsertEvent :exec
|
|
INSERT INTO events (
|
|
id, sport_id, match_name, home_team, away_team,
|
|
home_team_id, away_team_id, home_kit_image, away_kit_image,
|
|
league_id, league_name, league_cc, start_time, score,
|
|
match_minute, timer_status, added_time, match_period,
|
|
is_live, status
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5,
|
|
$6, $7, $8, $9,
|
|
$10, $11, $12, $13, $14,
|
|
$15, $16, $17, $18,
|
|
$19, $20
|
|
)
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
sport_id = EXCLUDED.sport_id,
|
|
match_name = EXCLUDED.match_name,
|
|
home_team = EXCLUDED.home_team,
|
|
away_team = EXCLUDED.away_team,
|
|
home_team_id = EXCLUDED.home_team_id,
|
|
away_team_id = EXCLUDED.away_team_id,
|
|
home_kit_image = EXCLUDED.home_kit_image,
|
|
away_kit_image = EXCLUDED.away_kit_image,
|
|
league_id = EXCLUDED.league_id,
|
|
league_name = EXCLUDED.league_name,
|
|
league_cc = EXCLUDED.league_cc,
|
|
start_time = EXCLUDED.start_time,
|
|
score = EXCLUDED.score,
|
|
match_minute = EXCLUDED.match_minute,
|
|
timer_status = EXCLUDED.timer_status,
|
|
added_time = EXCLUDED.added_time,
|
|
match_period = EXCLUDED.match_period,
|
|
is_live = EXCLUDED.is_live,
|
|
status = EXCLUDED.status,
|
|
fetched_at = now();
|
|
-- name: InsertUpcomingEvent :exec
|
|
INSERT INTO events (
|
|
id, sport_id, match_name, home_team, away_team,
|
|
home_team_id, away_team_id, home_kit_image, away_kit_image,
|
|
league_id, league_name, league_cc, start_time,
|
|
is_live, status
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5,
|
|
$6, $7, $8, $9,
|
|
$10, $11, $12, $13,
|
|
false, 'upcoming'
|
|
)
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
sport_id = EXCLUDED.sport_id,
|
|
match_name = EXCLUDED.match_name,
|
|
home_team = EXCLUDED.home_team,
|
|
away_team = EXCLUDED.away_team,
|
|
home_team_id = EXCLUDED.home_team_id,
|
|
away_team_id = EXCLUDED.away_team_id,
|
|
home_kit_image = EXCLUDED.home_kit_image,
|
|
away_kit_image = EXCLUDED.away_kit_image,
|
|
league_id = EXCLUDED.league_id,
|
|
league_name = EXCLUDED.league_name,
|
|
league_cc = EXCLUDED.league_cc,
|
|
start_time = EXCLUDED.start_time,
|
|
is_live = false,
|
|
status = 'upcoming',
|
|
fetched_at = now();
|
|
|
|
|
|
-- name: ListLiveEvents :many
|
|
SELECT id FROM events WHERE is_live = true;
|
|
|
|
-- name: GetAllUpcomingEvents :many
|
|
SELECT
|
|
id,
|
|
sport_id,
|
|
match_name,
|
|
home_team,
|
|
away_team,
|
|
home_team_id,
|
|
away_team_id,
|
|
home_kit_image,
|
|
away_kit_image,
|
|
league_id,
|
|
league_name,
|
|
league_cc,
|
|
start_time,
|
|
is_live,
|
|
status,
|
|
fetched_at
|
|
FROM events
|
|
WHERE is_live = false
|
|
AND status = 'upcoming'
|
|
ORDER BY start_time ASC;
|
|
-- name: GetUpcomingByID :one
|
|
SELECT
|
|
id,
|
|
sport_id,
|
|
match_name,
|
|
home_team,
|
|
away_team,
|
|
home_team_id,
|
|
away_team_id,
|
|
home_kit_image,
|
|
away_kit_image,
|
|
league_id,
|
|
league_name,
|
|
league_cc,
|
|
start_time,
|
|
is_live,
|
|
status,
|
|
fetched_at
|
|
FROM events
|
|
WHERE id = $1
|
|
AND is_live = false
|
|
AND status = 'upcoming'
|
|
LIMIT 1;
|