-- name: InsertOddsMarket :exec INSERT INTO odds_market ( event_id, market_type, market_name, market_category, market_id, raw_odds, fetched_at, expires_at ) VALUES ( $1, $2, $3, $4, $5, $6, $7, $8 ) ON CONFLICT (event_id, market_id) DO UPDATE SET market_type = EXCLUDED.market_type, market_name = EXCLUDED.market_name, market_category = EXCLUDED.market_category, raw_odds = EXCLUDED.raw_odds, fetched_at = EXCLUDED.fetched_at, expires_at = EXCLUDED.expires_at; -- name: InsertOddSettings :exec INSERT INTO company_odd_settings ( company_id, odds_market_id, is_active, custom_raw_odds ) VALUES ($1, $2, $3, $4) ON CONFLICT (company_id, odds_market_id) DO UPDATE SET is_active = EXCLUDED.is_active, custom_raw_odds = EXCLUDED.custom_raw_odds; -- name: GetAllOdds :many SELECT * FROM odds_market_with_event LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset'); -- name: GetAllOddsWithSettings :many SELECT * FROM odds_market_with_settings WHERE company_id = $1 LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset'); -- name: GetOddsByMarketID :one SELECT * FROM odds_market_with_event WHERE market_id = $1 AND event_id = $2; -- name: GetOddsWithSettingsByMarketID :one SELECT * FROM odds_market_with_settings WHERE market_id = $1 AND event_id = $2 AND company_id = $3; -- name: GetOddsByEventID :many SELECT * FROM odds_market_with_event WHERE event_id = $1 AND ( is_live = sqlc.narg('is_live') OR sqlc.narg('is_live') IS NULL ) AND ( status = sqlc.narg('status') OR sqlc.narg('status') IS NULL ) AND ( source = sqlc.narg('source') OR sqlc.narg('source') IS NULL ) LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset'); -- name: GetOddsWithSettingsByEventID :many SELECT * FROM odds_market_with_settings WHERE event_id = $1 AND company_id = $2 LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset'); -- name: DeleteOddsForEvent :exec DELETE FROM odds_market Where event_id = $1;