enetpulse fixture and result fixes
This commit is contained in:
parent
e98477d6cc
commit
857212d9ba
|
|
@ -56,7 +56,7 @@ ON virtual_game_provider_reports (provider_id, report_date, report_type);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS virtual_games (
|
CREATE TABLE IF NOT EXISTS virtual_games (
|
||||||
id BIGSERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
game_id VARCHAR(150) NOT NULL,
|
game_id VARCHAR(150) UNIQUE NOT NULL,
|
||||||
provider_id VARCHAR(100) NOT NULL REFERENCES virtual_game_providers(provider_id) ON DELETE CASCADE,
|
provider_id VARCHAR(100) NOT NULL REFERENCES virtual_game_providers(provider_id) ON DELETE CASCADE,
|
||||||
name VARCHAR(255) NOT NULL,
|
name VARCHAR(255) NOT NULL,
|
||||||
category VARCHAR(100),
|
category VARCHAR(100),
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,9 @@ CREATE TABLE IF NOT EXISTS enetpulse_fixtures (
|
||||||
sport_fk VARCHAR(50) NOT NULL REFERENCES enetpulse_sports(sport_id) ON DELETE CASCADE,
|
sport_fk VARCHAR(50) NOT NULL REFERENCES enetpulse_sports(sport_id) ON DELETE CASCADE,
|
||||||
tournament_fk VARCHAR(50), -- raw tournamentFK (optional)
|
tournament_fk VARCHAR(50), -- raw tournamentFK (optional)
|
||||||
tournament_template_fk VARCHAR(50) REFERENCES enetpulse_tournament_templates(template_id) ON DELETE CASCADE,
|
tournament_template_fk VARCHAR(50) REFERENCES enetpulse_tournament_templates(template_id) ON DELETE CASCADE,
|
||||||
tournament_stage_fk VARCHAR(50) REFERENCES enetpulse_tournament_stages(stage_id) ON DELETE CASCADE,
|
-- tournament_stage_fk VARCHAR(50) REFERENCES enetpulse_tournament_stages(stage_id) ON DELETE CASCADE,
|
||||||
|
|
||||||
tournament_stage_name VARCHAR(255),
|
-- tournament_stage_name VARCHAR(255),
|
||||||
tournament_name VARCHAR(255),
|
tournament_name VARCHAR(255),
|
||||||
tournament_template_name VARCHAR(255),
|
tournament_template_name VARCHAR(255),
|
||||||
sport_name VARCHAR(255),
|
sport_name VARCHAR(255),
|
||||||
|
|
@ -94,9 +94,9 @@ CREATE TABLE IF NOT EXISTS enetpulse_results (
|
||||||
sport_fk VARCHAR(50) NOT NULL REFERENCES enetpulse_sports(sport_id) ON DELETE CASCADE,
|
sport_fk VARCHAR(50) NOT NULL REFERENCES enetpulse_sports(sport_id) ON DELETE CASCADE,
|
||||||
tournament_fk VARCHAR(50),
|
tournament_fk VARCHAR(50),
|
||||||
tournament_template_fk VARCHAR(50) REFERENCES enetpulse_tournament_templates(template_id) ON DELETE CASCADE,
|
tournament_template_fk VARCHAR(50) REFERENCES enetpulse_tournament_templates(template_id) ON DELETE CASCADE,
|
||||||
tournament_stage_fk VARCHAR(50) REFERENCES enetpulse_tournament_stages(stage_id) ON DELETE CASCADE,
|
-- tournament_stage_fk VARCHAR(50) REFERENCES enetpulse_tournament_stages(stage_id) ON DELETE CASCADE,
|
||||||
|
|
||||||
tournament_stage_name VARCHAR(255),
|
-- tournament_stage_name VARCHAR(255),
|
||||||
tournament_name VARCHAR(255),
|
tournament_name VARCHAR(255),
|
||||||
tournament_template_name VARCHAR(255),
|
tournament_template_name VARCHAR(255),
|
||||||
sport_name VARCHAR(255),
|
sport_name VARCHAR(255),
|
||||||
|
|
|
||||||
|
|
@ -154,8 +154,6 @@ INSERT INTO enetpulse_fixtures (
|
||||||
sport_fk,
|
sport_fk,
|
||||||
tournament_fk,
|
tournament_fk,
|
||||||
tournament_template_fk,
|
tournament_template_fk,
|
||||||
tournament_stage_fk,
|
|
||||||
tournament_stage_name,
|
|
||||||
tournament_name,
|
tournament_name,
|
||||||
tournament_template_name,
|
tournament_template_name,
|
||||||
sport_name,
|
sport_name,
|
||||||
|
|
@ -169,7 +167,7 @@ INSERT INTO enetpulse_fixtures (
|
||||||
created_at,
|
created_at,
|
||||||
updated_at
|
updated_at
|
||||||
) VALUES (
|
) VALUES (
|
||||||
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP
|
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP
|
||||||
)
|
)
|
||||||
ON CONFLICT (fixture_id) DO UPDATE
|
ON CONFLICT (fixture_id) DO UPDATE
|
||||||
SET
|
SET
|
||||||
|
|
@ -177,8 +175,6 @@ SET
|
||||||
sport_fk = EXCLUDED.sport_fk,
|
sport_fk = EXCLUDED.sport_fk,
|
||||||
tournament_fk = EXCLUDED.tournament_fk,
|
tournament_fk = EXCLUDED.tournament_fk,
|
||||||
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
||||||
tournament_stage_fk = EXCLUDED.tournament_stage_fk,
|
|
||||||
tournament_stage_name = EXCLUDED.tournament_stage_name,
|
|
||||||
tournament_name = EXCLUDED.tournament_name,
|
tournament_name = EXCLUDED.tournament_name,
|
||||||
tournament_template_name = EXCLUDED.tournament_template_name,
|
tournament_template_name = EXCLUDED.tournament_template_name,
|
||||||
sport_name = EXCLUDED.sport_name,
|
sport_name = EXCLUDED.sport_name,
|
||||||
|
|
@ -192,6 +188,7 @@ SET
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
RETURNING *;
|
RETURNING *;
|
||||||
|
|
||||||
|
|
||||||
-- name: GetAllEnetpulseFixtures :many
|
-- name: GetAllEnetpulseFixtures :many
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM enetpulse_fixtures
|
FROM enetpulse_fixtures
|
||||||
|
|
@ -204,8 +201,6 @@ INSERT INTO enetpulse_results (
|
||||||
sport_fk,
|
sport_fk,
|
||||||
tournament_fk,
|
tournament_fk,
|
||||||
tournament_template_fk,
|
tournament_template_fk,
|
||||||
tournament_stage_fk,
|
|
||||||
tournament_stage_name,
|
|
||||||
tournament_name,
|
tournament_name,
|
||||||
tournament_template_name,
|
tournament_template_name,
|
||||||
sport_name,
|
sport_name,
|
||||||
|
|
@ -228,14 +223,14 @@ INSERT INTO enetpulse_results (
|
||||||
first_half_ended,
|
first_half_ended,
|
||||||
second_half_started,
|
second_half_started,
|
||||||
second_half_ended,
|
second_half_ended,
|
||||||
game_ended
|
game_ended,
|
||||||
|
created_at,
|
||||||
|
updated_at
|
||||||
) VALUES (
|
) VALUES (
|
||||||
$1, $2, $3, $4, $5, $6,
|
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,
|
||||||
$7, $8, $9, $10, $11,
|
$11,$12,$13,$14,$15,$16,$17,$18,
|
||||||
$12, $13, $14, $15, $16,
|
$19,$20,$21,$22,$23,$24,$25,$26,
|
||||||
$17, $18, $19, $20, $21,
|
$27,$28,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP
|
||||||
$22, $23, $24, $25, $26,
|
|
||||||
$27, $28, $29, $30
|
|
||||||
)
|
)
|
||||||
ON CONFLICT (result_id) DO UPDATE
|
ON CONFLICT (result_id) DO UPDATE
|
||||||
SET
|
SET
|
||||||
|
|
@ -243,8 +238,6 @@ SET
|
||||||
sport_fk = EXCLUDED.sport_fk,
|
sport_fk = EXCLUDED.sport_fk,
|
||||||
tournament_fk = EXCLUDED.tournament_fk,
|
tournament_fk = EXCLUDED.tournament_fk,
|
||||||
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
||||||
tournament_stage_fk = EXCLUDED.tournament_stage_fk,
|
|
||||||
tournament_stage_name = EXCLUDED.tournament_stage_name,
|
|
||||||
tournament_name = EXCLUDED.tournament_name,
|
tournament_name = EXCLUDED.tournament_name,
|
||||||
tournament_template_name = EXCLUDED.tournament_template_name,
|
tournament_template_name = EXCLUDED.tournament_template_name,
|
||||||
sport_name = EXCLUDED.sport_name,
|
sport_name = EXCLUDED.sport_name,
|
||||||
|
|
@ -276,6 +269,80 @@ SELECT *
|
||||||
FROM enetpulse_results
|
FROM enetpulse_results
|
||||||
ORDER BY created_at DESC;
|
ORDER BY created_at DESC;
|
||||||
|
|
||||||
|
-- name: CreateEnetpulseResultParticipant :one
|
||||||
|
INSERT INTO enetpulse_result_participants (
|
||||||
|
participant_map_id,
|
||||||
|
result_fk,
|
||||||
|
participant_fk,
|
||||||
|
number,
|
||||||
|
name,
|
||||||
|
gender,
|
||||||
|
type,
|
||||||
|
country_fk,
|
||||||
|
country_name,
|
||||||
|
ordinary_time,
|
||||||
|
running_score,
|
||||||
|
halftime,
|
||||||
|
final_result,
|
||||||
|
last_updated_at,
|
||||||
|
created_at
|
||||||
|
) VALUES (
|
||||||
|
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,CURRENT_TIMESTAMP
|
||||||
|
)
|
||||||
|
ON CONFLICT (participant_map_id) DO UPDATE
|
||||||
|
SET
|
||||||
|
result_fk = EXCLUDED.result_fk,
|
||||||
|
participant_fk = EXCLUDED.participant_fk,
|
||||||
|
number = EXCLUDED.number,
|
||||||
|
name = EXCLUDED.name,
|
||||||
|
gender = EXCLUDED.gender,
|
||||||
|
type = EXCLUDED.type,
|
||||||
|
country_fk = EXCLUDED.country_fk,
|
||||||
|
country_name = EXCLUDED.country_name,
|
||||||
|
ordinary_time = EXCLUDED.ordinary_time,
|
||||||
|
running_score = EXCLUDED.running_score,
|
||||||
|
halftime = EXCLUDED.halftime,
|
||||||
|
final_result = EXCLUDED.final_result,
|
||||||
|
last_updated_at = EXCLUDED.last_updated_at
|
||||||
|
RETURNING *;
|
||||||
|
|
||||||
|
-- name: GetEnetpulseResultParticipantsByResultFK :many
|
||||||
|
SELECT *
|
||||||
|
FROM enetpulse_result_participants
|
||||||
|
WHERE result_fk = $1
|
||||||
|
ORDER BY created_at DESC;
|
||||||
|
|
||||||
|
-- name: CreateEnetpulseResultReferee :one
|
||||||
|
INSERT INTO enetpulse_result_referees (
|
||||||
|
result_fk,
|
||||||
|
referee_fk,
|
||||||
|
assistant1_referee_fk,
|
||||||
|
assistant2_referee_fk,
|
||||||
|
fourth_referee_fk,
|
||||||
|
var1_referee_fk,
|
||||||
|
var2_referee_fk,
|
||||||
|
last_updated_at,
|
||||||
|
created_at
|
||||||
|
) VALUES (
|
||||||
|
$1,$2,$3,$4,$5,$6,$7,$8,CURRENT_TIMESTAMP
|
||||||
|
)
|
||||||
|
ON CONFLICT (result_fk) DO UPDATE
|
||||||
|
SET
|
||||||
|
referee_fk = EXCLUDED.referee_fk,
|
||||||
|
assistant1_referee_fk = EXCLUDED.assistant1_referee_fk,
|
||||||
|
assistant2_referee_fk = EXCLUDED.assistant2_referee_fk,
|
||||||
|
fourth_referee_fk = EXCLUDED.fourth_referee_fk,
|
||||||
|
var1_referee_fk = EXCLUDED.var1_referee_fk,
|
||||||
|
var2_referee_fk = EXCLUDED.var2_referee_fk,
|
||||||
|
last_updated_at = EXCLUDED.last_updated_at
|
||||||
|
RETURNING *;
|
||||||
|
|
||||||
|
-- name: GetEnetpulseResultRefereesByResultFK :many
|
||||||
|
SELECT *
|
||||||
|
FROM enetpulse_result_referees
|
||||||
|
WHERE result_fk = $1
|
||||||
|
ORDER BY created_at DESC;
|
||||||
|
|
||||||
-- name: CreateEnetpulseOutcomeType :one
|
-- name: CreateEnetpulseOutcomeType :one
|
||||||
INSERT INTO enetpulse_outcome_types (
|
INSERT INTO enetpulse_outcome_types (
|
||||||
outcome_type_id,
|
outcome_type_id,
|
||||||
|
|
@ -389,7 +456,6 @@ SELECT
|
||||||
f.sport_fk,
|
f.sport_fk,
|
||||||
f.tournament_fk,
|
f.tournament_fk,
|
||||||
f.tournament_template_fk,
|
f.tournament_template_fk,
|
||||||
f.tournament_stage_fk,
|
|
||||||
f.start_date,
|
f.start_date,
|
||||||
f.status_type,
|
f.status_type,
|
||||||
f.status_desc_fk,
|
f.status_desc_fk,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ services:
|
||||||
image: mongo:7.0.11
|
image: mongo:7.0.11
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "27022:27017"
|
- "27025:27017"
|
||||||
environment:
|
environment:
|
||||||
MONGO_INITDB_ROOT_USERNAME: root
|
MONGO_INITDB_ROOT_USERNAME: root
|
||||||
MONGO_INITDB_ROOT_PASSWORD: secret
|
MONGO_INITDB_ROOT_PASSWORD: secret
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ INSERT INTO enetpulse_fixtures (
|
||||||
sport_fk,
|
sport_fk,
|
||||||
tournament_fk,
|
tournament_fk,
|
||||||
tournament_template_fk,
|
tournament_template_fk,
|
||||||
tournament_stage_fk,
|
|
||||||
tournament_stage_name,
|
|
||||||
tournament_name,
|
tournament_name,
|
||||||
tournament_template_name,
|
tournament_template_name,
|
||||||
sport_name,
|
sport_name,
|
||||||
|
|
@ -33,7 +31,7 @@ INSERT INTO enetpulse_fixtures (
|
||||||
created_at,
|
created_at,
|
||||||
updated_at
|
updated_at
|
||||||
) VALUES (
|
) VALUES (
|
||||||
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP
|
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP
|
||||||
)
|
)
|
||||||
ON CONFLICT (fixture_id) DO UPDATE
|
ON CONFLICT (fixture_id) DO UPDATE
|
||||||
SET
|
SET
|
||||||
|
|
@ -41,8 +39,6 @@ SET
|
||||||
sport_fk = EXCLUDED.sport_fk,
|
sport_fk = EXCLUDED.sport_fk,
|
||||||
tournament_fk = EXCLUDED.tournament_fk,
|
tournament_fk = EXCLUDED.tournament_fk,
|
||||||
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
||||||
tournament_stage_fk = EXCLUDED.tournament_stage_fk,
|
|
||||||
tournament_stage_name = EXCLUDED.tournament_stage_name,
|
|
||||||
tournament_name = EXCLUDED.tournament_name,
|
tournament_name = EXCLUDED.tournament_name,
|
||||||
tournament_template_name = EXCLUDED.tournament_template_name,
|
tournament_template_name = EXCLUDED.tournament_template_name,
|
||||||
sport_name = EXCLUDED.sport_name,
|
sport_name = EXCLUDED.sport_name,
|
||||||
|
|
@ -54,7 +50,7 @@ SET
|
||||||
updates_count = EXCLUDED.updates_count,
|
updates_count = EXCLUDED.updates_count,
|
||||||
last_updated_at = EXCLUDED.last_updated_at,
|
last_updated_at = EXCLUDED.last_updated_at,
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
RETURNING id, fixture_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_stage_fk, tournament_stage_name, tournament_name, tournament_template_name, sport_name, gender, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, created_at, updated_at
|
RETURNING id, fixture_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_name, tournament_template_name, sport_name, gender, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, created_at, updated_at
|
||||||
`
|
`
|
||||||
|
|
||||||
type CreateEnetpulseFixtureParams struct {
|
type CreateEnetpulseFixtureParams struct {
|
||||||
|
|
@ -63,8 +59,6 @@ type CreateEnetpulseFixtureParams struct {
|
||||||
SportFk string `json:"sport_fk"`
|
SportFk string `json:"sport_fk"`
|
||||||
TournamentFk pgtype.Text `json:"tournament_fk"`
|
TournamentFk pgtype.Text `json:"tournament_fk"`
|
||||||
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
||||||
TournamentStageFk pgtype.Text `json:"tournament_stage_fk"`
|
|
||||||
TournamentStageName pgtype.Text `json:"tournament_stage_name"`
|
|
||||||
TournamentName pgtype.Text `json:"tournament_name"`
|
TournamentName pgtype.Text `json:"tournament_name"`
|
||||||
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
||||||
SportName pgtype.Text `json:"sport_name"`
|
SportName pgtype.Text `json:"sport_name"`
|
||||||
|
|
@ -84,8 +78,6 @@ func (q *Queries) CreateEnetpulseFixture(ctx context.Context, arg CreateEnetpuls
|
||||||
arg.SportFk,
|
arg.SportFk,
|
||||||
arg.TournamentFk,
|
arg.TournamentFk,
|
||||||
arg.TournamentTemplateFk,
|
arg.TournamentTemplateFk,
|
||||||
arg.TournamentStageFk,
|
|
||||||
arg.TournamentStageName,
|
|
||||||
arg.TournamentName,
|
arg.TournamentName,
|
||||||
arg.TournamentTemplateName,
|
arg.TournamentTemplateName,
|
||||||
arg.SportName,
|
arg.SportName,
|
||||||
|
|
@ -105,8 +97,6 @@ func (q *Queries) CreateEnetpulseFixture(ctx context.Context, arg CreateEnetpuls
|
||||||
&i.SportFk,
|
&i.SportFk,
|
||||||
&i.TournamentFk,
|
&i.TournamentFk,
|
||||||
&i.TournamentTemplateFk,
|
&i.TournamentTemplateFk,
|
||||||
&i.TournamentStageFk,
|
|
||||||
&i.TournamentStageName,
|
|
||||||
&i.TournamentName,
|
&i.TournamentName,
|
||||||
&i.TournamentTemplateName,
|
&i.TournamentTemplateName,
|
||||||
&i.SportName,
|
&i.SportName,
|
||||||
|
|
@ -351,8 +341,6 @@ INSERT INTO enetpulse_results (
|
||||||
sport_fk,
|
sport_fk,
|
||||||
tournament_fk,
|
tournament_fk,
|
||||||
tournament_template_fk,
|
tournament_template_fk,
|
||||||
tournament_stage_fk,
|
|
||||||
tournament_stage_name,
|
|
||||||
tournament_name,
|
tournament_name,
|
||||||
tournament_template_name,
|
tournament_template_name,
|
||||||
sport_name,
|
sport_name,
|
||||||
|
|
@ -375,14 +363,14 @@ INSERT INTO enetpulse_results (
|
||||||
first_half_ended,
|
first_half_ended,
|
||||||
second_half_started,
|
second_half_started,
|
||||||
second_half_ended,
|
second_half_ended,
|
||||||
game_ended
|
game_ended,
|
||||||
|
created_at,
|
||||||
|
updated_at
|
||||||
) VALUES (
|
) VALUES (
|
||||||
$1, $2, $3, $4, $5, $6,
|
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,
|
||||||
$7, $8, $9, $10, $11,
|
$11,$12,$13,$14,$15,$16,$17,$18,
|
||||||
$12, $13, $14, $15, $16,
|
$19,$20,$21,$22,$23,$24,$25,$26,
|
||||||
$17, $18, $19, $20, $21,
|
$27,$28,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP
|
||||||
$22, $23, $24, $25, $26,
|
|
||||||
$27, $28, $29, $30
|
|
||||||
)
|
)
|
||||||
ON CONFLICT (result_id) DO UPDATE
|
ON CONFLICT (result_id) DO UPDATE
|
||||||
SET
|
SET
|
||||||
|
|
@ -390,8 +378,6 @@ SET
|
||||||
sport_fk = EXCLUDED.sport_fk,
|
sport_fk = EXCLUDED.sport_fk,
|
||||||
tournament_fk = EXCLUDED.tournament_fk,
|
tournament_fk = EXCLUDED.tournament_fk,
|
||||||
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
tournament_template_fk = EXCLUDED.tournament_template_fk,
|
||||||
tournament_stage_fk = EXCLUDED.tournament_stage_fk,
|
|
||||||
tournament_stage_name = EXCLUDED.tournament_stage_name,
|
|
||||||
tournament_name = EXCLUDED.tournament_name,
|
tournament_name = EXCLUDED.tournament_name,
|
||||||
tournament_template_name = EXCLUDED.tournament_template_name,
|
tournament_template_name = EXCLUDED.tournament_template_name,
|
||||||
sport_name = EXCLUDED.sport_name,
|
sport_name = EXCLUDED.sport_name,
|
||||||
|
|
@ -416,7 +402,7 @@ SET
|
||||||
second_half_ended = EXCLUDED.second_half_ended,
|
second_half_ended = EXCLUDED.second_half_ended,
|
||||||
game_ended = EXCLUDED.game_ended,
|
game_ended = EXCLUDED.game_ended,
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
RETURNING id, result_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_stage_fk, tournament_stage_name, tournament_name, tournament_template_name, sport_name, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, round, live, venue_name, livestats_plus, livestats_type, commentary, lineup_confirmed, verified, spectators, game_started, first_half_ended, second_half_started, second_half_ended, game_ended, created_at, updated_at
|
RETURNING id, result_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_name, tournament_template_name, sport_name, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, round, live, venue_name, livestats_plus, livestats_type, commentary, lineup_confirmed, verified, spectators, game_started, first_half_ended, second_half_started, second_half_ended, game_ended, created_at, updated_at
|
||||||
`
|
`
|
||||||
|
|
||||||
type CreateEnetpulseResultParams struct {
|
type CreateEnetpulseResultParams struct {
|
||||||
|
|
@ -425,8 +411,6 @@ type CreateEnetpulseResultParams struct {
|
||||||
SportFk string `json:"sport_fk"`
|
SportFk string `json:"sport_fk"`
|
||||||
TournamentFk pgtype.Text `json:"tournament_fk"`
|
TournamentFk pgtype.Text `json:"tournament_fk"`
|
||||||
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
||||||
TournamentStageFk pgtype.Text `json:"tournament_stage_fk"`
|
|
||||||
TournamentStageName pgtype.Text `json:"tournament_stage_name"`
|
|
||||||
TournamentName pgtype.Text `json:"tournament_name"`
|
TournamentName pgtype.Text `json:"tournament_name"`
|
||||||
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
||||||
SportName pgtype.Text `json:"sport_name"`
|
SportName pgtype.Text `json:"sport_name"`
|
||||||
|
|
@ -459,8 +443,6 @@ func (q *Queries) CreateEnetpulseResult(ctx context.Context, arg CreateEnetpulse
|
||||||
arg.SportFk,
|
arg.SportFk,
|
||||||
arg.TournamentFk,
|
arg.TournamentFk,
|
||||||
arg.TournamentTemplateFk,
|
arg.TournamentTemplateFk,
|
||||||
arg.TournamentStageFk,
|
|
||||||
arg.TournamentStageName,
|
|
||||||
arg.TournamentName,
|
arg.TournamentName,
|
||||||
arg.TournamentTemplateName,
|
arg.TournamentTemplateName,
|
||||||
arg.SportName,
|
arg.SportName,
|
||||||
|
|
@ -493,8 +475,6 @@ func (q *Queries) CreateEnetpulseResult(ctx context.Context, arg CreateEnetpulse
|
||||||
&i.SportFk,
|
&i.SportFk,
|
||||||
&i.TournamentFk,
|
&i.TournamentFk,
|
||||||
&i.TournamentTemplateFk,
|
&i.TournamentTemplateFk,
|
||||||
&i.TournamentStageFk,
|
|
||||||
&i.TournamentStageName,
|
|
||||||
&i.TournamentName,
|
&i.TournamentName,
|
||||||
&i.TournamentTemplateName,
|
&i.TournamentTemplateName,
|
||||||
&i.SportName,
|
&i.SportName,
|
||||||
|
|
@ -524,6 +504,164 @@ func (q *Queries) CreateEnetpulseResult(ctx context.Context, arg CreateEnetpulse
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CreateEnetpulseResultParticipant = `-- name: CreateEnetpulseResultParticipant :one
|
||||||
|
INSERT INTO enetpulse_result_participants (
|
||||||
|
participant_map_id,
|
||||||
|
result_fk,
|
||||||
|
participant_fk,
|
||||||
|
number,
|
||||||
|
name,
|
||||||
|
gender,
|
||||||
|
type,
|
||||||
|
country_fk,
|
||||||
|
country_name,
|
||||||
|
ordinary_time,
|
||||||
|
running_score,
|
||||||
|
halftime,
|
||||||
|
final_result,
|
||||||
|
last_updated_at,
|
||||||
|
created_at
|
||||||
|
) VALUES (
|
||||||
|
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,CURRENT_TIMESTAMP
|
||||||
|
)
|
||||||
|
ON CONFLICT (participant_map_id) DO UPDATE
|
||||||
|
SET
|
||||||
|
result_fk = EXCLUDED.result_fk,
|
||||||
|
participant_fk = EXCLUDED.participant_fk,
|
||||||
|
number = EXCLUDED.number,
|
||||||
|
name = EXCLUDED.name,
|
||||||
|
gender = EXCLUDED.gender,
|
||||||
|
type = EXCLUDED.type,
|
||||||
|
country_fk = EXCLUDED.country_fk,
|
||||||
|
country_name = EXCLUDED.country_name,
|
||||||
|
ordinary_time = EXCLUDED.ordinary_time,
|
||||||
|
running_score = EXCLUDED.running_score,
|
||||||
|
halftime = EXCLUDED.halftime,
|
||||||
|
final_result = EXCLUDED.final_result,
|
||||||
|
last_updated_at = EXCLUDED.last_updated_at
|
||||||
|
RETURNING id, participant_map_id, result_fk, participant_fk, number, name, gender, type, country_fk, country_name, ordinary_time, running_score, halftime, final_result, last_updated_at, created_at
|
||||||
|
`
|
||||||
|
|
||||||
|
type CreateEnetpulseResultParticipantParams struct {
|
||||||
|
ParticipantMapID string `json:"participant_map_id"`
|
||||||
|
ResultFk string `json:"result_fk"`
|
||||||
|
ParticipantFk string `json:"participant_fk"`
|
||||||
|
Number pgtype.Int4 `json:"number"`
|
||||||
|
Name pgtype.Text `json:"name"`
|
||||||
|
Gender pgtype.Text `json:"gender"`
|
||||||
|
Type pgtype.Text `json:"type"`
|
||||||
|
CountryFk pgtype.Text `json:"country_fk"`
|
||||||
|
CountryName pgtype.Text `json:"country_name"`
|
||||||
|
OrdinaryTime pgtype.Text `json:"ordinary_time"`
|
||||||
|
RunningScore pgtype.Text `json:"running_score"`
|
||||||
|
Halftime pgtype.Text `json:"halftime"`
|
||||||
|
FinalResult pgtype.Text `json:"final_result"`
|
||||||
|
LastUpdatedAt pgtype.Timestamptz `json:"last_updated_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) CreateEnetpulseResultParticipant(ctx context.Context, arg CreateEnetpulseResultParticipantParams) (EnetpulseResultParticipant, error) {
|
||||||
|
row := q.db.QueryRow(ctx, CreateEnetpulseResultParticipant,
|
||||||
|
arg.ParticipantMapID,
|
||||||
|
arg.ResultFk,
|
||||||
|
arg.ParticipantFk,
|
||||||
|
arg.Number,
|
||||||
|
arg.Name,
|
||||||
|
arg.Gender,
|
||||||
|
arg.Type,
|
||||||
|
arg.CountryFk,
|
||||||
|
arg.CountryName,
|
||||||
|
arg.OrdinaryTime,
|
||||||
|
arg.RunningScore,
|
||||||
|
arg.Halftime,
|
||||||
|
arg.FinalResult,
|
||||||
|
arg.LastUpdatedAt,
|
||||||
|
)
|
||||||
|
var i EnetpulseResultParticipant
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.ParticipantMapID,
|
||||||
|
&i.ResultFk,
|
||||||
|
&i.ParticipantFk,
|
||||||
|
&i.Number,
|
||||||
|
&i.Name,
|
||||||
|
&i.Gender,
|
||||||
|
&i.Type,
|
||||||
|
&i.CountryFk,
|
||||||
|
&i.CountryName,
|
||||||
|
&i.OrdinaryTime,
|
||||||
|
&i.RunningScore,
|
||||||
|
&i.Halftime,
|
||||||
|
&i.FinalResult,
|
||||||
|
&i.LastUpdatedAt,
|
||||||
|
&i.CreatedAt,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const CreateEnetpulseResultReferee = `-- name: CreateEnetpulseResultReferee :one
|
||||||
|
INSERT INTO enetpulse_result_referees (
|
||||||
|
result_fk,
|
||||||
|
referee_fk,
|
||||||
|
assistant1_referee_fk,
|
||||||
|
assistant2_referee_fk,
|
||||||
|
fourth_referee_fk,
|
||||||
|
var1_referee_fk,
|
||||||
|
var2_referee_fk,
|
||||||
|
last_updated_at,
|
||||||
|
created_at
|
||||||
|
) VALUES (
|
||||||
|
$1,$2,$3,$4,$5,$6,$7,$8,CURRENT_TIMESTAMP
|
||||||
|
)
|
||||||
|
ON CONFLICT (result_fk) DO UPDATE
|
||||||
|
SET
|
||||||
|
referee_fk = EXCLUDED.referee_fk,
|
||||||
|
assistant1_referee_fk = EXCLUDED.assistant1_referee_fk,
|
||||||
|
assistant2_referee_fk = EXCLUDED.assistant2_referee_fk,
|
||||||
|
fourth_referee_fk = EXCLUDED.fourth_referee_fk,
|
||||||
|
var1_referee_fk = EXCLUDED.var1_referee_fk,
|
||||||
|
var2_referee_fk = EXCLUDED.var2_referee_fk,
|
||||||
|
last_updated_at = EXCLUDED.last_updated_at
|
||||||
|
RETURNING id, result_fk, referee_fk, assistant1_referee_fk, assistant2_referee_fk, fourth_referee_fk, var1_referee_fk, var2_referee_fk, last_updated_at, created_at
|
||||||
|
`
|
||||||
|
|
||||||
|
type CreateEnetpulseResultRefereeParams struct {
|
||||||
|
ResultFk string `json:"result_fk"`
|
||||||
|
RefereeFk pgtype.Text `json:"referee_fk"`
|
||||||
|
Assistant1RefereeFk pgtype.Text `json:"assistant1_referee_fk"`
|
||||||
|
Assistant2RefereeFk pgtype.Text `json:"assistant2_referee_fk"`
|
||||||
|
FourthRefereeFk pgtype.Text `json:"fourth_referee_fk"`
|
||||||
|
Var1RefereeFk pgtype.Text `json:"var1_referee_fk"`
|
||||||
|
Var2RefereeFk pgtype.Text `json:"var2_referee_fk"`
|
||||||
|
LastUpdatedAt pgtype.Timestamptz `json:"last_updated_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) CreateEnetpulseResultReferee(ctx context.Context, arg CreateEnetpulseResultRefereeParams) (EnetpulseResultReferee, error) {
|
||||||
|
row := q.db.QueryRow(ctx, CreateEnetpulseResultReferee,
|
||||||
|
arg.ResultFk,
|
||||||
|
arg.RefereeFk,
|
||||||
|
arg.Assistant1RefereeFk,
|
||||||
|
arg.Assistant2RefereeFk,
|
||||||
|
arg.FourthRefereeFk,
|
||||||
|
arg.Var1RefereeFk,
|
||||||
|
arg.Var2RefereeFk,
|
||||||
|
arg.LastUpdatedAt,
|
||||||
|
)
|
||||||
|
var i EnetpulseResultReferee
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.ResultFk,
|
||||||
|
&i.RefereeFk,
|
||||||
|
&i.Assistant1RefereeFk,
|
||||||
|
&i.Assistant2RefereeFk,
|
||||||
|
&i.FourthRefereeFk,
|
||||||
|
&i.Var1RefereeFk,
|
||||||
|
&i.Var2RefereeFk,
|
||||||
|
&i.LastUpdatedAt,
|
||||||
|
&i.CreatedAt,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
const CreateEnetpulseSport = `-- name: CreateEnetpulseSport :one
|
const CreateEnetpulseSport = `-- name: CreateEnetpulseSport :one
|
||||||
INSERT INTO enetpulse_sports (
|
INSERT INTO enetpulse_sports (
|
||||||
sport_id,
|
sport_id,
|
||||||
|
|
@ -781,7 +919,7 @@ func (q *Queries) CreateEnetpulseTournamentTemplate(ctx context.Context, arg Cre
|
||||||
}
|
}
|
||||||
|
|
||||||
const GetAllEnetpulseFixtures = `-- name: GetAllEnetpulseFixtures :many
|
const GetAllEnetpulseFixtures = `-- name: GetAllEnetpulseFixtures :many
|
||||||
SELECT id, fixture_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_stage_fk, tournament_stage_name, tournament_name, tournament_template_name, sport_name, gender, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, created_at, updated_at
|
SELECT id, fixture_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_name, tournament_template_name, sport_name, gender, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, created_at, updated_at
|
||||||
FROM enetpulse_fixtures
|
FROM enetpulse_fixtures
|
||||||
ORDER BY created_at DESC
|
ORDER BY created_at DESC
|
||||||
`
|
`
|
||||||
|
|
@ -802,8 +940,6 @@ func (q *Queries) GetAllEnetpulseFixtures(ctx context.Context) ([]EnetpulseFixtu
|
||||||
&i.SportFk,
|
&i.SportFk,
|
||||||
&i.TournamentFk,
|
&i.TournamentFk,
|
||||||
&i.TournamentTemplateFk,
|
&i.TournamentTemplateFk,
|
||||||
&i.TournamentStageFk,
|
|
||||||
&i.TournamentStageName,
|
|
||||||
&i.TournamentName,
|
&i.TournamentName,
|
||||||
&i.TournamentTemplateName,
|
&i.TournamentTemplateName,
|
||||||
&i.SportName,
|
&i.SportName,
|
||||||
|
|
@ -946,7 +1082,7 @@ func (q *Queries) GetAllEnetpulsePreoddsBettingOffers(ctx context.Context) ([]En
|
||||||
}
|
}
|
||||||
|
|
||||||
const GetAllEnetpulseResults = `-- name: GetAllEnetpulseResults :many
|
const GetAllEnetpulseResults = `-- name: GetAllEnetpulseResults :many
|
||||||
SELECT id, result_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_stage_fk, tournament_stage_name, tournament_name, tournament_template_name, sport_name, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, round, live, venue_name, livestats_plus, livestats_type, commentary, lineup_confirmed, verified, spectators, game_started, first_half_ended, second_half_started, second_half_ended, game_ended, created_at, updated_at
|
SELECT id, result_id, name, sport_fk, tournament_fk, tournament_template_fk, tournament_name, tournament_template_name, sport_name, start_date, status_type, status_desc_fk, round_type_fk, updates_count, last_updated_at, round, live, venue_name, livestats_plus, livestats_type, commentary, lineup_confirmed, verified, spectators, game_started, first_half_ended, second_half_started, second_half_ended, game_ended, created_at, updated_at
|
||||||
FROM enetpulse_results
|
FROM enetpulse_results
|
||||||
ORDER BY created_at DESC
|
ORDER BY created_at DESC
|
||||||
`
|
`
|
||||||
|
|
@ -967,8 +1103,6 @@ func (q *Queries) GetAllEnetpulseResults(ctx context.Context) ([]EnetpulseResult
|
||||||
&i.SportFk,
|
&i.SportFk,
|
||||||
&i.TournamentFk,
|
&i.TournamentFk,
|
||||||
&i.TournamentTemplateFk,
|
&i.TournamentTemplateFk,
|
||||||
&i.TournamentStageFk,
|
|
||||||
&i.TournamentStageName,
|
|
||||||
&i.TournamentName,
|
&i.TournamentName,
|
||||||
&i.TournamentTemplateName,
|
&i.TournamentTemplateName,
|
||||||
&i.SportName,
|
&i.SportName,
|
||||||
|
|
@ -1172,6 +1306,88 @@ func (q *Queries) GetAllEnetpulseTournaments(ctx context.Context) ([]EnetpulseTo
|
||||||
return items, nil
|
return items, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const GetEnetpulseResultParticipantsByResultFK = `-- name: GetEnetpulseResultParticipantsByResultFK :many
|
||||||
|
SELECT id, participant_map_id, result_fk, participant_fk, number, name, gender, type, country_fk, country_name, ordinary_time, running_score, halftime, final_result, last_updated_at, created_at
|
||||||
|
FROM enetpulse_result_participants
|
||||||
|
WHERE result_fk = $1
|
||||||
|
ORDER BY created_at DESC
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetEnetpulseResultParticipantsByResultFK(ctx context.Context, resultFk string) ([]EnetpulseResultParticipant, error) {
|
||||||
|
rows, err := q.db.Query(ctx, GetEnetpulseResultParticipantsByResultFK, resultFk)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []EnetpulseResultParticipant
|
||||||
|
for rows.Next() {
|
||||||
|
var i EnetpulseResultParticipant
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.ParticipantMapID,
|
||||||
|
&i.ResultFk,
|
||||||
|
&i.ParticipantFk,
|
||||||
|
&i.Number,
|
||||||
|
&i.Name,
|
||||||
|
&i.Gender,
|
||||||
|
&i.Type,
|
||||||
|
&i.CountryFk,
|
||||||
|
&i.CountryName,
|
||||||
|
&i.OrdinaryTime,
|
||||||
|
&i.RunningScore,
|
||||||
|
&i.Halftime,
|
||||||
|
&i.FinalResult,
|
||||||
|
&i.LastUpdatedAt,
|
||||||
|
&i.CreatedAt,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const GetEnetpulseResultRefereesByResultFK = `-- name: GetEnetpulseResultRefereesByResultFK :many
|
||||||
|
SELECT id, result_fk, referee_fk, assistant1_referee_fk, assistant2_referee_fk, fourth_referee_fk, var1_referee_fk, var2_referee_fk, last_updated_at, created_at
|
||||||
|
FROM enetpulse_result_referees
|
||||||
|
WHERE result_fk = $1
|
||||||
|
ORDER BY created_at DESC
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetEnetpulseResultRefereesByResultFK(ctx context.Context, resultFk string) ([]EnetpulseResultReferee, error) {
|
||||||
|
rows, err := q.db.Query(ctx, GetEnetpulseResultRefereesByResultFK, resultFk)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []EnetpulseResultReferee
|
||||||
|
for rows.Next() {
|
||||||
|
var i EnetpulseResultReferee
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.ResultFk,
|
||||||
|
&i.RefereeFk,
|
||||||
|
&i.Assistant1RefereeFk,
|
||||||
|
&i.Assistant2RefereeFk,
|
||||||
|
&i.FourthRefereeFk,
|
||||||
|
&i.Var1RefereeFk,
|
||||||
|
&i.Var2RefereeFk,
|
||||||
|
&i.LastUpdatedAt,
|
||||||
|
&i.CreatedAt,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
const GetFixturesWithPreodds = `-- name: GetFixturesWithPreodds :many
|
const GetFixturesWithPreodds = `-- name: GetFixturesWithPreodds :many
|
||||||
SELECT
|
SELECT
|
||||||
f.fixture_id AS id,
|
f.fixture_id AS id,
|
||||||
|
|
@ -1180,7 +1396,6 @@ SELECT
|
||||||
f.sport_fk,
|
f.sport_fk,
|
||||||
f.tournament_fk,
|
f.tournament_fk,
|
||||||
f.tournament_template_fk,
|
f.tournament_template_fk,
|
||||||
f.tournament_stage_fk,
|
|
||||||
f.start_date,
|
f.start_date,
|
||||||
f.status_type,
|
f.status_type,
|
||||||
f.status_desc_fk,
|
f.status_desc_fk,
|
||||||
|
|
@ -1221,7 +1436,6 @@ type GetFixturesWithPreoddsRow struct {
|
||||||
SportFk string `json:"sport_fk"`
|
SportFk string `json:"sport_fk"`
|
||||||
TournamentFk pgtype.Text `json:"tournament_fk"`
|
TournamentFk pgtype.Text `json:"tournament_fk"`
|
||||||
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
||||||
TournamentStageFk pgtype.Text `json:"tournament_stage_fk"`
|
|
||||||
StartDate pgtype.Timestamptz `json:"start_date"`
|
StartDate pgtype.Timestamptz `json:"start_date"`
|
||||||
StatusType pgtype.Text `json:"status_type"`
|
StatusType pgtype.Text `json:"status_type"`
|
||||||
StatusDescFk pgtype.Text `json:"status_desc_fk"`
|
StatusDescFk pgtype.Text `json:"status_desc_fk"`
|
||||||
|
|
@ -1264,7 +1478,6 @@ func (q *Queries) GetFixturesWithPreodds(ctx context.Context) ([]GetFixturesWith
|
||||||
&i.SportFk,
|
&i.SportFk,
|
||||||
&i.TournamentFk,
|
&i.TournamentFk,
|
||||||
&i.TournamentTemplateFk,
|
&i.TournamentTemplateFk,
|
||||||
&i.TournamentStageFk,
|
|
||||||
&i.StartDate,
|
&i.StartDate,
|
||||||
&i.StatusType,
|
&i.StatusType,
|
||||||
&i.StatusDescFk,
|
&i.StatusDescFk,
|
||||||
|
|
|
||||||
|
|
@ -264,8 +264,6 @@ type EnetpulseFixture struct {
|
||||||
SportFk string `json:"sport_fk"`
|
SportFk string `json:"sport_fk"`
|
||||||
TournamentFk pgtype.Text `json:"tournament_fk"`
|
TournamentFk pgtype.Text `json:"tournament_fk"`
|
||||||
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
||||||
TournamentStageFk pgtype.Text `json:"tournament_stage_fk"`
|
|
||||||
TournamentStageName pgtype.Text `json:"tournament_stage_name"`
|
|
||||||
TournamentName pgtype.Text `json:"tournament_name"`
|
TournamentName pgtype.Text `json:"tournament_name"`
|
||||||
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
||||||
SportName pgtype.Text `json:"sport_name"`
|
SportName pgtype.Text `json:"sport_name"`
|
||||||
|
|
@ -333,8 +331,6 @@ type EnetpulseResult struct {
|
||||||
SportFk string `json:"sport_fk"`
|
SportFk string `json:"sport_fk"`
|
||||||
TournamentFk pgtype.Text `json:"tournament_fk"`
|
TournamentFk pgtype.Text `json:"tournament_fk"`
|
||||||
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
TournamentTemplateFk pgtype.Text `json:"tournament_template_fk"`
|
||||||
TournamentStageFk pgtype.Text `json:"tournament_stage_fk"`
|
|
||||||
TournamentStageName pgtype.Text `json:"tournament_stage_name"`
|
|
||||||
TournamentName pgtype.Text `json:"tournament_name"`
|
TournamentName pgtype.Text `json:"tournament_name"`
|
||||||
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
TournamentTemplateName pgtype.Text `json:"tournament_template_name"`
|
||||||
SportName pgtype.Text `json:"sport_name"`
|
SportName pgtype.Text `json:"sport_name"`
|
||||||
|
|
|
||||||
|
|
@ -121,9 +121,9 @@ type TournamentStageParticipantsResponse struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type DailyEventsRequest struct {
|
type DailyEventsRequest struct {
|
||||||
SportFK int // one of these three required
|
SportFK int // one of these three required
|
||||||
TournamentTemplateFK int
|
TournamentTemplateFK int
|
||||||
TournamentStageFK int
|
// TournamentStageFK int
|
||||||
Date string // YYYY-MM-DD optional
|
Date string // YYYY-MM-DD optional
|
||||||
Live string // yes/no optional
|
Live string // yes/no optional
|
||||||
IncludeVenue string // yes/no optional
|
IncludeVenue string // yes/no optional
|
||||||
|
|
@ -145,9 +145,9 @@ type DailyEventsResponse struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type FixturesRequest struct {
|
type FixturesRequest struct {
|
||||||
SportFK int
|
SportFK int
|
||||||
TournamentTemplateFK int
|
TournamentTemplateFK int
|
||||||
TournamentStageFK int
|
// TournamentStageFK int
|
||||||
LanguageTypeFK int
|
LanguageTypeFK int
|
||||||
Date string // YYYY-MM-DD
|
Date string // YYYY-MM-DD
|
||||||
Live string // "yes" | "no"
|
Live string // "yes" | "no"
|
||||||
|
|
@ -170,9 +170,9 @@ type FixtureEvent struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResultsRequest struct {
|
type ResultsRequest struct {
|
||||||
SportFK int
|
SportFK int
|
||||||
TournamentTemplateFK int
|
TournamentTemplateFK int
|
||||||
TournamentStageFK int
|
// TournamentStageFK int
|
||||||
LanguageTypeFK int
|
LanguageTypeFK int
|
||||||
Date string // YYYY-MM-DD
|
Date string // YYYY-MM-DD
|
||||||
Live string // "yes" | "no"
|
Live string // "yes" | "no"
|
||||||
|
|
@ -224,8 +224,8 @@ type EventDetailsResponse struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type EventListRequest struct {
|
type EventListRequest struct {
|
||||||
TournamentFK int // optional
|
TournamentFK int // optional
|
||||||
TournamentStageFK int // optional
|
// TournamentStageFK int // optional
|
||||||
IncludeEventProperties bool // default true
|
IncludeEventProperties bool // default true
|
||||||
StatusType string // e.g. "finished", "inprogress"
|
StatusType string // e.g. "finished", "inprogress"
|
||||||
IncludeVenue bool
|
IncludeVenue bool
|
||||||
|
|
@ -250,11 +250,11 @@ type ParticipantFixturesRequest struct {
|
||||||
SportFK int
|
SportFK int
|
||||||
TournamentFK int
|
TournamentFK int
|
||||||
TournamentTemplateFK int
|
TournamentTemplateFK int
|
||||||
TournamentStageFK int
|
// TournamentStageFK int
|
||||||
Date string
|
Date string
|
||||||
Live string
|
Live string
|
||||||
Limit int
|
Limit int
|
||||||
Offset int
|
Offset int
|
||||||
|
|
||||||
IncludeVenue bool
|
IncludeVenue bool
|
||||||
IncludeCountryCodes bool
|
IncludeCountryCodes bool
|
||||||
|
|
@ -486,32 +486,32 @@ type CreateEnetpulseFixture struct {
|
||||||
|
|
||||||
// Full domain model
|
// Full domain model
|
||||||
type EnetpulseFixture struct {
|
type EnetpulseFixture struct {
|
||||||
FixtureID string `json:"id"`
|
FixtureID string `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
SportFK string `json:"sportFK"`
|
SportFK string `json:"sportFK"`
|
||||||
TournamentFK string `json:"tournamentFK"`
|
TournamentFK string `json:"tournamentFK"`
|
||||||
TournamentTemplateFK string `json:"tournament_templateFK"`
|
TournamentTemplateFK string `json:"tournament_templateFK"`
|
||||||
TournamentStageFK string `json:"tournament_stageFK"`
|
// TournamentStageFK string `json:"tournament_stageFK"`
|
||||||
TournamentStageName string `json:"tournament_stage_name"`
|
TournamentStageName string `json:"tournament_stage_name"`
|
||||||
TournamentName string `json:"tournament_name"`
|
TournamentName string `json:"tournament_name"`
|
||||||
TournamentTemplateName string `json:"tournament_template_name"`
|
TournamentTemplateName string `json:"tournament_template_name"`
|
||||||
SportName string `json:"sport_name"`
|
SportName string `json:"sport_name"`
|
||||||
Gender string `json:"gender"`
|
Gender string `json:"gender"`
|
||||||
StartDate string `json:"startdate"` // ISO 8601
|
StartDate string `json:"startdate"` // ISO 8601
|
||||||
StatusType string `json:"status_type"`
|
StatusType string `json:"status_type"`
|
||||||
StatusDescFK string `json:"status_descFK"`
|
StatusDescFK string `json:"status_descFK"`
|
||||||
RoundTypeFK string `json:"round_typeFK"`
|
RoundTypeFK string `json:"round_typeFK"`
|
||||||
UpdatesCount string `json:"n"` // convert to int
|
UpdatesCount string `json:"n"` // convert to int
|
||||||
LastUpdatedAt string `json:"ut"` // parse to time.Time
|
LastUpdatedAt string `json:"ut"` // parse to time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateEnetpulseResult struct {
|
type CreateEnetpulseResult struct {
|
||||||
ResultID string `json:"result_id"`
|
ResultID string `json:"result_id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
SportFK string `json:"sport_fk"`
|
SportFK string `json:"sport_fk"`
|
||||||
TournamentFK string `json:"tournament_fk"`
|
TournamentFK string `json:"tournament_fk"`
|
||||||
TournamentTemplateFK string `json:"tournament_template_fk"`
|
TournamentTemplateFK string `json:"tournament_template_fk"`
|
||||||
TournamentStageFK string `json:"tournament_stage_fk"`
|
// TournamentStageFK string `json:"tournament_stage_fk"`
|
||||||
TournamentStageName string `json:"tournament_stage_name"`
|
TournamentStageName string `json:"tournament_stage_name"`
|
||||||
TournamentName string `json:"tournament_name"`
|
TournamentName string `json:"tournament_name"`
|
||||||
TournamentTemplateName string `json:"tournament_template_name"`
|
TournamentTemplateName string `json:"tournament_template_name"`
|
||||||
|
|
@ -544,13 +544,13 @@ type CreateEnetpulseResult struct {
|
||||||
|
|
||||||
// ✅ Used for reading result records
|
// ✅ Used for reading result records
|
||||||
type EnetpulseResult struct {
|
type EnetpulseResult struct {
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
ResultID string `json:"result_id"`
|
ResultID string `json:"result_id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
SportFK string `json:"sport_fk"`
|
SportFK string `json:"sport_fk"`
|
||||||
TournamentFK string `json:"tournament_fk"`
|
TournamentFK string `json:"tournament_fk"`
|
||||||
TournamentTemplateFK string `json:"tournament_template_fk"`
|
TournamentTemplateFK string `json:"tournament_template_fk"`
|
||||||
TournamentStageFK string `json:"tournament_stage_fk"`
|
// TournamentStageFK string `json:"tournament_stage_fk"`
|
||||||
TournamentStageName string `json:"tournament_stage_name"`
|
TournamentStageName string `json:"tournament_stage_name"`
|
||||||
TournamentName string `json:"tournament_name"`
|
TournamentName string `json:"tournament_name"`
|
||||||
TournamentTemplateName string `json:"tournament_template_name"`
|
TournamentTemplateName string `json:"tournament_template_name"`
|
||||||
|
|
@ -704,3 +704,65 @@ type EnetpulsePreodds struct {
|
||||||
CreatedAt time.Time
|
CreatedAt time.Time
|
||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type EnetpulseResultParticipant struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
ParticipantMapID string `json:"participant_map_id"`
|
||||||
|
ResultFk string `json:"result_fk"`
|
||||||
|
ParticipantFk string `json:"participant_fk"`
|
||||||
|
Number int32 `json:"number"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Gender string `json:"gender"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
CountryFk string `json:"country_fk"`
|
||||||
|
CountryName string `json:"country_name"`
|
||||||
|
OrdinaryTime string `json:"ordinary_time"`
|
||||||
|
RunningScore string `json:"running_score"`
|
||||||
|
Halftime string `json:"halftime"`
|
||||||
|
FinalResult string `json:"final_result"`
|
||||||
|
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateEnetpulseResultParticipant is the payload for inserting or updating a participant record.
|
||||||
|
type CreateEnetpulseResultParticipant struct {
|
||||||
|
ParticipantMapID string `json:"participant_map_id"`
|
||||||
|
ResultFk string `json:"result_fk"`
|
||||||
|
ParticipantFk string `json:"participant_fk"`
|
||||||
|
Number int32 `json:"number"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Gender string `json:"gender"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
CountryFk string `json:"country_fk"`
|
||||||
|
CountryName string `json:"country_name"`
|
||||||
|
OrdinaryTime string `json:"ordinary_time"`
|
||||||
|
RunningScore string `json:"running_score"`
|
||||||
|
Halftime string `json:"halftime"`
|
||||||
|
FinalResult string `json:"final_result"`
|
||||||
|
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnetpulseResultReferee struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
ResultFk string `json:"result_fk"`
|
||||||
|
RefereeFk string `json:"referee_fk"`
|
||||||
|
Assistant1RefereeFk string `json:"assistant1_referee_fk"`
|
||||||
|
Assistant2RefereeFk string `json:"assistant2_referee_fk"`
|
||||||
|
FourthRefereeFk string `json:"fourth_referee_fk"`
|
||||||
|
Var1RefereeFk string `json:"var1_referee_fk"`
|
||||||
|
Var2RefereeFk string `json:"var2_referee_fk"`
|
||||||
|
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateEnetpulseResultReferee is the payload for inserting or updating referee assignments.
|
||||||
|
type CreateEnetpulseResultReferee struct {
|
||||||
|
ResultFk string `json:"result_fk"`
|
||||||
|
RefereeFk string `json:"referee_fk"`
|
||||||
|
Assistant1RefereeFk string `json:"assistant1_referee_fk"`
|
||||||
|
Assistant2RefereeFk string `json:"assistant2_referee_fk"`
|
||||||
|
FourthRefereeFk string `json:"fourth_referee_fk"`
|
||||||
|
Var1RefereeFk string `json:"var1_referee_fk"`
|
||||||
|
Var2RefereeFk string `json:"var2_referee_fk"`
|
||||||
|
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -321,16 +321,16 @@ func (s *Store) GetFixturesWithPreodds(ctx context.Context) ([]domain.EnetpulseF
|
||||||
SportFk: row.SportFk,
|
SportFk: row.SportFk,
|
||||||
TournamentFk: row.TournamentFk.String,
|
TournamentFk: row.TournamentFk.String,
|
||||||
TournamentTemplateFk: row.TournamentTemplateFk.String,
|
TournamentTemplateFk: row.TournamentTemplateFk.String,
|
||||||
TournamentStageFk: row.TournamentStageFk.String,
|
// TournamentStageFk: row.TournamentStageFk.String,
|
||||||
StartDate: row.StartDate.Time,
|
StartDate: row.StartDate.Time,
|
||||||
StatusType: row.StatusType.String,
|
StatusType: row.StatusType.String,
|
||||||
StatusDescFk: row.StatusDescFk.String,
|
StatusDescFk: row.StatusDescFk.String,
|
||||||
RoundTypeFk: row.RoundTypeFk.String,
|
RoundTypeFk: row.RoundTypeFk.String,
|
||||||
UpdatesCount: row.FixtureUpdatesCount.Int32,
|
UpdatesCount: row.FixtureUpdatesCount.Int32,
|
||||||
LastUpdatedAt: row.FixtureLastUpdatedAt.Time,
|
LastUpdatedAt: row.FixtureLastUpdatedAt.Time,
|
||||||
CreatedAt: row.FixtureCreatedAt.Time,
|
CreatedAt: row.FixtureCreatedAt.Time,
|
||||||
UpdatedAt: row.FixtureUpdatedAt.Time,
|
UpdatedAt: row.FixtureUpdatedAt.Time,
|
||||||
Preodds: []domain.EnetpulsePreodds{}, // initialize slice
|
Preodds: []domain.EnetpulsePreodds{}, // initialize slice
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -387,13 +387,13 @@ func (s *Store) GetFixturesWithPreodds(ctx context.Context) ([]domain.EnetpulseF
|
||||||
// ConvertCreateEnetpulseFixture converts the domain model to the SQLC params struct.
|
// ConvertCreateEnetpulseFixture converts the domain model to the SQLC params struct.
|
||||||
func ConvertCreateEnetpulseFixture(f domain.CreateEnetpulseFixture) dbgen.CreateEnetpulseFixtureParams {
|
func ConvertCreateEnetpulseFixture(f domain.CreateEnetpulseFixture) dbgen.CreateEnetpulseFixtureParams {
|
||||||
return dbgen.CreateEnetpulseFixtureParams{
|
return dbgen.CreateEnetpulseFixtureParams{
|
||||||
FixtureID: f.FixtureID,
|
FixtureID: f.FixtureID,
|
||||||
Name: f.Name,
|
Name: f.Name,
|
||||||
SportFk: f.SportFK,
|
SportFk: f.SportFK,
|
||||||
TournamentFk: pgtype.Text{String: f.TournamentFK, Valid: f.TournamentFK != ""},
|
TournamentFk: pgtype.Text{String: f.TournamentFK, Valid: f.TournamentFK != ""},
|
||||||
TournamentTemplateFk: pgtype.Text{String: f.TournamentTemplateFK, Valid: f.TournamentTemplateFK != ""},
|
TournamentTemplateFk: pgtype.Text{String: f.TournamentTemplateFK, Valid: f.TournamentTemplateFK != ""},
|
||||||
TournamentStageFk: pgtype.Text{String: f.TournamentStageFK, Valid: f.TournamentStageFK != ""},
|
// TournamentStageFk: pgtype.Text{String: f.TournamentStageFK, Valid: f.TournamentStageFK != ""},
|
||||||
TournamentStageName: pgtype.Text{String: f.TournamentStageName, Valid: f.TournamentStageName != ""},
|
// TournamentStageName: pgtype.Text{String: f.TournamentStageName, Valid: f.TournamentStageName != ""},
|
||||||
TournamentName: pgtype.Text{String: f.TournamentName, Valid: f.TournamentName != ""},
|
TournamentName: pgtype.Text{String: f.TournamentName, Valid: f.TournamentName != ""},
|
||||||
TournamentTemplateName: pgtype.Text{String: f.TournamentTemplateName, Valid: f.TournamentTemplateName != ""},
|
TournamentTemplateName: pgtype.Text{String: f.TournamentTemplateName, Valid: f.TournamentTemplateName != ""},
|
||||||
SportName: pgtype.Text{String: f.SportName, Valid: f.SportName != ""},
|
SportName: pgtype.Text{String: f.SportName, Valid: f.SportName != ""},
|
||||||
|
|
@ -410,13 +410,13 @@ func ConvertCreateEnetpulseFixture(f domain.CreateEnetpulseFixture) dbgen.Create
|
||||||
// ConvertDBEnetpulseFixture converts the DB row to the domain model.
|
// ConvertDBEnetpulseFixture converts the DB row to the domain model.
|
||||||
func ConvertDBEnetpulseFixture(dbF dbgen.EnetpulseFixture) domain.EnetpulseFixture {
|
func ConvertDBEnetpulseFixture(dbF dbgen.EnetpulseFixture) domain.EnetpulseFixture {
|
||||||
return domain.EnetpulseFixture{
|
return domain.EnetpulseFixture{
|
||||||
FixtureID: dbF.FixtureID,
|
FixtureID: dbF.FixtureID,
|
||||||
Name: dbF.Name,
|
Name: dbF.Name,
|
||||||
SportFK: dbF.SportFk,
|
SportFK: dbF.SportFk,
|
||||||
TournamentFK: dbF.TournamentFk.String,
|
TournamentFK: dbF.TournamentFk.String,
|
||||||
TournamentTemplateFK: dbF.TournamentTemplateFk.String,
|
TournamentTemplateFK: dbF.TournamentTemplateFk.String,
|
||||||
TournamentStageFK: dbF.TournamentStageFk.String,
|
// TournamentStageFK: dbF.TournamentStageFk.String,
|
||||||
TournamentStageName: dbF.TournamentStageName.String,
|
// TournamentStageName: dbF.TournamentStageName.String,
|
||||||
TournamentName: dbF.TournamentName.String,
|
TournamentName: dbF.TournamentName.String,
|
||||||
TournamentTemplateName: dbF.TournamentTemplateName.String,
|
TournamentTemplateName: dbF.TournamentTemplateName.String,
|
||||||
SportName: dbF.SportName.String,
|
SportName: dbF.SportName.String,
|
||||||
|
|
@ -599,13 +599,13 @@ func ConvertDBEnetpulseTournament(dbT dbgen.EnetpulseTournament) domain.Enetpuls
|
||||||
|
|
||||||
func ConvertCreateEnetpulseResult(input domain.CreateEnetpulseResult) dbgen.CreateEnetpulseResultParams {
|
func ConvertCreateEnetpulseResult(input domain.CreateEnetpulseResult) dbgen.CreateEnetpulseResultParams {
|
||||||
return dbgen.CreateEnetpulseResultParams{
|
return dbgen.CreateEnetpulseResultParams{
|
||||||
ResultID: input.ResultID,
|
ResultID: input.ResultID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
SportFk: input.SportFK,
|
SportFk: input.SportFK,
|
||||||
TournamentFk: pgtype.Text{String: input.TournamentFK, Valid: input.TournamentFK != ""},
|
TournamentFk: pgtype.Text{String: input.TournamentFK, Valid: input.TournamentFK != ""},
|
||||||
TournamentTemplateFk: pgtype.Text{String: input.TournamentTemplateFK, Valid: input.TournamentTemplateFK != ""},
|
TournamentTemplateFk: pgtype.Text{String: input.TournamentTemplateFK, Valid: input.TournamentTemplateFK != ""},
|
||||||
TournamentStageFk: pgtype.Text{String: input.TournamentStageFK, Valid: input.TournamentStageFK != ""},
|
// TournamentStageFk: pgtype.Text{String: input.TournamentStageFK, Valid: input.TournamentStageFK != ""},
|
||||||
TournamentStageName: pgtype.Text{String: input.TournamentStageName, Valid: input.TournamentStageName != ""},
|
// TournamentStageName: pgtype.Text{String: input.TournamentStageName, Valid: input.TournamentStageName != ""},
|
||||||
TournamentName: pgtype.Text{String: input.TournamentName, Valid: input.TournamentName != ""},
|
TournamentName: pgtype.Text{String: input.TournamentName, Valid: input.TournamentName != ""},
|
||||||
TournamentTemplateName: pgtype.Text{String: input.TournamentTemplateName, Valid: input.TournamentTemplateName != ""},
|
TournamentTemplateName: pgtype.Text{String: input.TournamentTemplateName, Valid: input.TournamentTemplateName != ""},
|
||||||
SportName: pgtype.Text{String: input.SportName, Valid: input.SportName != ""},
|
SportName: pgtype.Text{String: input.SportName, Valid: input.SportName != ""},
|
||||||
|
|
@ -635,14 +635,14 @@ func ConvertCreateEnetpulseResult(input domain.CreateEnetpulseResult) dbgen.Crea
|
||||||
// ConvertDBEnetpulseResult maps SQLC result → domain model
|
// ConvertDBEnetpulseResult maps SQLC result → domain model
|
||||||
func ConvertDBEnetpulseResult(db dbgen.EnetpulseResult) domain.EnetpulseResult {
|
func ConvertDBEnetpulseResult(db dbgen.EnetpulseResult) domain.EnetpulseResult {
|
||||||
return domain.EnetpulseResult{
|
return domain.EnetpulseResult{
|
||||||
ID: db.ID,
|
ID: db.ID,
|
||||||
ResultID: db.ResultID,
|
ResultID: db.ResultID,
|
||||||
Name: db.Name,
|
Name: db.Name,
|
||||||
SportFK: db.SportFk,
|
SportFK: db.SportFk,
|
||||||
TournamentFK: db.TournamentFk.String,
|
TournamentFK: db.TournamentFk.String,
|
||||||
TournamentTemplateFK: db.TournamentTemplateFk.String,
|
TournamentTemplateFK: db.TournamentTemplateFk.String,
|
||||||
TournamentStageFK: db.TournamentStageFk.String,
|
// TournamentStageFK: db.TournamentStageFk.String,
|
||||||
TournamentStageName: db.TournamentStageName.String,
|
// TournamentStageName: db.TournamentStageName.String,
|
||||||
TournamentName: db.TournamentName.String,
|
TournamentName: db.TournamentName.String,
|
||||||
TournamentTemplateName: db.TournamentTemplateName.String,
|
TournamentTemplateName: db.TournamentTemplateName.String,
|
||||||
SportName: db.SportName.String,
|
SportName: db.SportName.String,
|
||||||
|
|
@ -815,3 +815,135 @@ func ConvertDBEnetpulsePreoddsBettingOffer(o dbgen.EnetpulsePreoddsBettingoffer)
|
||||||
UpdatedAt: o.UpdatedAt.Time,
|
UpdatedAt: o.UpdatedAt.Time,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Store) CreateEnetpulseResultParticipant(
|
||||||
|
ctx context.Context,
|
||||||
|
participant domain.CreateEnetpulseResultParticipant,
|
||||||
|
) (domain.EnetpulseResultParticipant, error) {
|
||||||
|
dbParticipant, err := s.queries.CreateEnetpulseResultParticipant(
|
||||||
|
ctx,
|
||||||
|
ConvertCreateEnetpulseResultParticipant(participant),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return domain.EnetpulseResultParticipant{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return ConvertDBEnetpulseResultParticipant(dbParticipant), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Store) GetEnetpulseResultParticipantsByResultFK(
|
||||||
|
ctx context.Context,
|
||||||
|
resultFK string,
|
||||||
|
) ([]domain.EnetpulseResultParticipant, error) {
|
||||||
|
dbParticipants, err := s.queries.GetEnetpulseResultParticipantsByResultFK(ctx, resultFK)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
participants := make([]domain.EnetpulseResultParticipant, 0, len(dbParticipants))
|
||||||
|
for _, dbp := range dbParticipants {
|
||||||
|
participants = append(participants, ConvertDBEnetpulseResultParticipant(dbp))
|
||||||
|
}
|
||||||
|
|
||||||
|
return participants, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Store) CreateEnetpulseResultReferee(
|
||||||
|
ctx context.Context,
|
||||||
|
referee domain.CreateEnetpulseResultReferee,
|
||||||
|
) (domain.EnetpulseResultReferee, error) {
|
||||||
|
dbReferee, err := s.queries.CreateEnetpulseResultReferee(
|
||||||
|
ctx,
|
||||||
|
ConvertCreateEnetpulseResultReferee(referee),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return domain.EnetpulseResultReferee{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return ConvertDBEnetpulseResultReferee(dbReferee), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Store) GetEnetpulseResultRefereesByResultFK(
|
||||||
|
ctx context.Context,
|
||||||
|
resultFK string,
|
||||||
|
) ([]domain.EnetpulseResultReferee, error) {
|
||||||
|
dbReferees, err := s.queries.GetEnetpulseResultRefereesByResultFK(ctx, resultFK)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
referees := make([]domain.EnetpulseResultReferee, 0, len(dbReferees))
|
||||||
|
for _, dbr := range dbReferees {
|
||||||
|
referees = append(referees, ConvertDBEnetpulseResultReferee(dbr))
|
||||||
|
}
|
||||||
|
|
||||||
|
return referees, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertCreateEnetpulseResultParticipant(p domain.CreateEnetpulseResultParticipant) dbgen.CreateEnetpulseResultParticipantParams {
|
||||||
|
return dbgen.CreateEnetpulseResultParticipantParams{
|
||||||
|
ParticipantMapID: p.ParticipantMapID,
|
||||||
|
ResultFk: p.ResultFk,
|
||||||
|
ParticipantFk: p.ParticipantFk,
|
||||||
|
Number: pgtype.Int4{Int32: p.Number},
|
||||||
|
Name: pgtype.Text{String: p.Name},
|
||||||
|
Gender: pgtype.Text{String: p.Gender},
|
||||||
|
Type: pgtype.Text{String: p.Type},
|
||||||
|
CountryFk: pgtype.Text{String: p.CountryFk},
|
||||||
|
CountryName: pgtype.Text{String: p.CountryName},
|
||||||
|
OrdinaryTime: pgtype.Text{String: p.OrdinaryTime},
|
||||||
|
RunningScore: pgtype.Text{String: p.RunningScore},
|
||||||
|
Halftime: pgtype.Text{String: p.Halftime},
|
||||||
|
FinalResult: pgtype.Text{String: p.FinalResult},
|
||||||
|
LastUpdatedAt: pgtype.Timestamptz{Time: p.LastUpdatedAt, Valid: !p.LastUpdatedAt.IsZero()},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertDBEnetpulseResultParticipant(p dbgen.EnetpulseResultParticipant) domain.EnetpulseResultParticipant {
|
||||||
|
return domain.EnetpulseResultParticipant{
|
||||||
|
ID: p.ID,
|
||||||
|
ParticipantMapID: p.ParticipantMapID,
|
||||||
|
ResultFk: p.ResultFk,
|
||||||
|
ParticipantFk: p.ParticipantFk,
|
||||||
|
Number: p.Number.Int32,
|
||||||
|
Name: p.Name.String,
|
||||||
|
Gender: p.Gender.String,
|
||||||
|
Type: p.Type.String,
|
||||||
|
CountryFk: p.CountryFk.String,
|
||||||
|
CountryName: p.CountryName.String,
|
||||||
|
OrdinaryTime: p.OrdinaryTime.String,
|
||||||
|
RunningScore: p.RunningScore.String,
|
||||||
|
Halftime: p.Halftime.String,
|
||||||
|
FinalResult: p.FinalResult.String,
|
||||||
|
LastUpdatedAt: p.LastUpdatedAt.Time,
|
||||||
|
CreatedAt: p.CreatedAt.Time,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertCreateEnetpulseResultReferee(r domain.CreateEnetpulseResultReferee) dbgen.CreateEnetpulseResultRefereeParams {
|
||||||
|
return dbgen.CreateEnetpulseResultRefereeParams{
|
||||||
|
ResultFk: r.ResultFk,
|
||||||
|
RefereeFk: pgtype.Text{String: r.RefereeFk},
|
||||||
|
Assistant1RefereeFk: pgtype.Text{String: r.Assistant1RefereeFk},
|
||||||
|
Assistant2RefereeFk: pgtype.Text{String: r.Assistant2RefereeFk},
|
||||||
|
FourthRefereeFk: pgtype.Text{String: r.FourthRefereeFk},
|
||||||
|
Var1RefereeFk: pgtype.Text{String: r.Var1RefereeFk},
|
||||||
|
Var2RefereeFk: pgtype.Text{String: r.Var2RefereeFk},
|
||||||
|
LastUpdatedAt: pgtype.Timestamptz{Time: r.LastUpdatedAt},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertDBEnetpulseResultReferee(r dbgen.EnetpulseResultReferee) domain.EnetpulseResultReferee {
|
||||||
|
return domain.EnetpulseResultReferee{
|
||||||
|
ID: r.ID,
|
||||||
|
ResultFk: r.ResultFk,
|
||||||
|
RefereeFk: r.RefereeFk.String,
|
||||||
|
Assistant1RefereeFk: r.Assistant1RefereeFk.String,
|
||||||
|
Assistant2RefereeFk: r.Assistant2RefereeFk.String,
|
||||||
|
FourthRefereeFk: r.FourthRefereeFk.String,
|
||||||
|
Var1RefereeFk: r.Var1RefereeFk.String,
|
||||||
|
Var2RefereeFk: r.Var2RefereeFk.String,
|
||||||
|
LastUpdatedAt: r.LastUpdatedAt.Time,
|
||||||
|
CreatedAt: r.CreatedAt.Time ,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -479,12 +479,12 @@ func (s *Service) FetchAndStoreFixtures(ctx context.Context, date string) error
|
||||||
TournamentTemplateName string `json:"tournament_template_name"`
|
TournamentTemplateName string `json:"tournament_template_name"`
|
||||||
SportName string `json:"sport_name"`
|
SportName string `json:"sport_name"`
|
||||||
Gender string `json:"gender"`
|
Gender string `json:"gender"`
|
||||||
StartDate string `json:"startdate"` // ISO 8601
|
StartDate string `json:"startdate"` // ISO 8601
|
||||||
StatusType string `json:"status_type"`
|
StatusType string `json:"status_type"`
|
||||||
StatusDescFK string `json:"status_descFK"`
|
StatusDescFK string `json:"status_descFK"`
|
||||||
RoundTypeFK string `json:"round_typeFK"`
|
RoundTypeFK string `json:"round_typeFK"`
|
||||||
UpdatesCount string `json:"n"` // convert to int
|
UpdatesCount string `json:"n"` // convert to int
|
||||||
LastUpdatedAt string `json:"ut"` // parse to time.Time
|
LastUpdatedAt string `json:"ut"` // parse to time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2️⃣ Loop through each sport
|
// 2️⃣ Loop through each sport
|
||||||
|
|
@ -585,130 +585,6 @@ func (s *Service) FetchAndStoreFixtures(ctx context.Context, date string) error
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// func (s *Service) FetchFixtures(ctx context.Context, date string) ([]domain.EnetpulseFixture, error) {
|
|
||||||
// var allFixtures []domain.EnetpulseFixture
|
|
||||||
|
|
||||||
// // 1️⃣ Fetch all sports from the database
|
|
||||||
// sports, err := s.store.GetAllEnetpulseSports(ctx)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, fmt.Errorf("failed to fetch sports from DB: %w", err)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Struct for decoding each fixture from API
|
|
||||||
// type Fixture struct {
|
|
||||||
// FixtureID string `json:"id"`
|
|
||||||
// Name string `json:"name"`
|
|
||||||
// SportFK string `json:"sportFK"`
|
|
||||||
// TournamentFK string `json:"tournamentFK"`
|
|
||||||
// TournamentTemplateFK string `json:"tournament_templateFK"`
|
|
||||||
// TournamentStageFK string `json:"tournament_stageFK"`
|
|
||||||
// TournamentStageName string `json:"tournament_stage_name"`
|
|
||||||
// TournamentName string `json:"tournament_name"`
|
|
||||||
// TournamentTemplateName string `json:"tournament_template_name"`
|
|
||||||
// SportName string `json:"sport_name"`
|
|
||||||
// Gender string `json:"gender"`
|
|
||||||
// StartDate string `json:"startdate"`
|
|
||||||
// StatusType string `json:"status_type"`
|
|
||||||
// StatusDescFK string `json:"status_descFK"`
|
|
||||||
// RoundTypeFK string `json:"round_typeFK"`
|
|
||||||
// UpdatesCount string `json:"n"`
|
|
||||||
// LastUpdatedAt string `json:"ut"`
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 2️⃣ Loop through each sport
|
|
||||||
// for _, sport := range sports {
|
|
||||||
// // Only fetch for sport "1" (Football)
|
|
||||||
// if sport.SportID != "1" {
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
|
|
||||||
// url := fmt.Sprintf(
|
|
||||||
// "http://eapi.enetpulse.com/event/fixtures/?username=%s&token=%s&sportFK=%s&language_typeFK=3&date=%s",
|
|
||||||
// s.cfg.EnetPulseConfig.UserName,
|
|
||||||
// s.cfg.EnetPulseConfig.Token,
|
|
||||||
// sport.SportID,
|
|
||||||
// date,
|
|
||||||
// )
|
|
||||||
|
|
||||||
// req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
|
|
||||||
// if err != nil {
|
|
||||||
// fmt.Printf("creating fixtures request for sport %s: %v\n", sport.SportID, err)
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
|
|
||||||
// resp, err := s.httpClient.Do(req)
|
|
||||||
// if err != nil {
|
|
||||||
// fmt.Printf("requesting fixtures for sport %s: %v\n", sport.SportID, err)
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
// defer resp.Body.Close()
|
|
||||||
|
|
||||||
// if resp.StatusCode != http.StatusOK {
|
|
||||||
// body, _ := io.ReadAll(resp.Body)
|
|
||||||
// fmt.Printf("failed to fetch fixtures for sport %s (status %d): %s\n",
|
|
||||||
// sport.SportID, resp.StatusCode, string(body))
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 3️⃣ Decode API response
|
|
||||||
// var fixturesResp struct {
|
|
||||||
// Events map[string]Fixture `json:"events"`
|
|
||||||
// }
|
|
||||||
// if err := json.NewDecoder(resp.Body).Decode(&fixturesResp); err != nil {
|
|
||||||
// fmt.Printf("decoding fixtures response for sport %s: %v\n", sport.SportID, err)
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 4️⃣ Iterate over fixtures and store them
|
|
||||||
// for _, fx := range fixturesResp.Events {
|
|
||||||
// tournamentFK, _ := strconv.Atoi(fx.TournamentFK)
|
|
||||||
// tournamentTemplateFK, _ := strconv.Atoi(fx.TournamentTemplateFK)
|
|
||||||
// tournamentStageFK, _ := strconv.Atoi(fx.TournamentStageFK)
|
|
||||||
// statusDescFK, _ := strconv.Atoi(fx.StatusDescFK)
|
|
||||||
// roundTypeFK, _ := strconv.Atoi(fx.RoundTypeFK)
|
|
||||||
// updatesCount, _ := strconv.Atoi(fx.UpdatesCount)
|
|
||||||
|
|
||||||
// startDate, _ := time.Parse(time.RFC3339, fx.StartDate)
|
|
||||||
// lastUpdatedAt, _ := time.Parse(time.RFC3339, fx.LastUpdatedAt)
|
|
||||||
|
|
||||||
// createFixture := domain.CreateEnetpulseFixture{
|
|
||||||
// FixtureID: fx.FixtureID,
|
|
||||||
// Name: fx.Name,
|
|
||||||
// SportFK: fx.SportFK,
|
|
||||||
// TournamentFK: strconv.Itoa(tournamentFK),
|
|
||||||
// TournamentTemplateFK: strconv.Itoa(tournamentTemplateFK),
|
|
||||||
// TournamentStageFK: strconv.Itoa(tournamentStageFK),
|
|
||||||
// TournamentStageName: fx.TournamentStageName,
|
|
||||||
// TournamentName: fx.TournamentName,
|
|
||||||
// TournamentTemplateName: fx.TournamentTemplateName,
|
|
||||||
// SportName: fx.SportName,
|
|
||||||
// Gender: fx.Gender,
|
|
||||||
// StartDate: startDate,
|
|
||||||
// StatusType: fx.StatusType,
|
|
||||||
// StatusDescFK: strconv.Itoa(statusDescFK),
|
|
||||||
// RoundTypeFK: strconv.Itoa(roundTypeFK),
|
|
||||||
// UpdatesCount: updatesCount,
|
|
||||||
// LastUpdatedAt: lastUpdatedAt,
|
|
||||||
// }
|
|
||||||
|
|
||||||
// dbFixture, err := s.store.CreateEnetpulseFixture(ctx, createFixture)
|
|
||||||
// if err != nil {
|
|
||||||
// fmt.Printf("failed storing fixture %s: %v\n", fx.FixtureID, err)
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
|
|
||||||
// allFixtures = append(allFixtures, dbFixture)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // fmt.Printf("✅ Successfully fetched and stored fixtures for sport %s\n", sport.SportID)
|
|
||||||
// break // stop after first relevant sport
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // fmt.Println("✅ Completed fetching and storing fixtures for all sports")
|
|
||||||
// return allFixtures, nil
|
|
||||||
// }
|
|
||||||
|
|
||||||
func (s *Service) GetAllFixtures(ctx context.Context) ([]domain.EnetpulseFixture, error) {
|
func (s *Service) GetAllFixtures(ctx context.Context) ([]domain.EnetpulseFixture, error) {
|
||||||
// 1️⃣ Fetch all from store
|
// 1️⃣ Fetch all from store
|
||||||
fixtures, err := s.store.GetAllEnetpulseFixtures(ctx)
|
fixtures, err := s.store.GetAllEnetpulseFixtures(ctx)
|
||||||
|
|
@ -719,59 +595,24 @@ func (s *Service) GetAllFixtures(ctx context.Context) ([]domain.EnetpulseFixture
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) FetchAndStoreResults(ctx context.Context) error {
|
func (s *Service) FetchAndStoreResults(ctx context.Context) error {
|
||||||
// 1️⃣ Fetch all sports (if you want to limit to one, adjust the loop as in your template fetcher)
|
|
||||||
sports, err := s.store.GetAllEnetpulseSports(ctx)
|
sports, err := s.store.GetAllEnetpulseSports(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to fetch sports from DB: %w", err)
|
return fmt.Errorf("failed to fetch sports from DB: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Result struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
SportFK string `json:"sportFK"`
|
|
||||||
TournamentFK string `json:"tournamentFK"`
|
|
||||||
TournamentTemplateFK string `json:"tournament_templateFK"`
|
|
||||||
TournamentStageFK string `json:"tournament_stageFK"`
|
|
||||||
TournamentStageName string `json:"tournament_stage_name"`
|
|
||||||
TournamentName string `json:"tournament_name"`
|
|
||||||
TournamentTemplateName string `json:"tournament_template_name"`
|
|
||||||
SportName string `json:"sport_name"`
|
|
||||||
StartDate string `json:"startdate"`
|
|
||||||
StatusType string `json:"status_type"`
|
|
||||||
StatusDescFK string `json:"status_descFK"`
|
|
||||||
RoundTypeFK string `json:"round_typeFK"`
|
|
||||||
N string `json:"n"`
|
|
||||||
UT string `json:"ut"`
|
|
||||||
Round string `json:"round"`
|
|
||||||
Live string `json:"live"`
|
|
||||||
VenueName string `json:"venue_name"`
|
|
||||||
LivestatsPlus string `json:"livestats_plus"`
|
|
||||||
LivestatsType string `json:"livestats_type"`
|
|
||||||
Commentary string `json:"commentary"`
|
|
||||||
LineupConfirmed bool `json:"lineup_confirmed"`
|
|
||||||
Verified bool `json:"verified"`
|
|
||||||
Spectators int32 `json:"spectators"`
|
|
||||||
GameStarted string `json:"game_started"`
|
|
||||||
FirstHalfEnded string `json:"first_half_ended"`
|
|
||||||
SecondHalfStarted string `json:"second_half_started"`
|
|
||||||
SecondHalfEnded string `json:"second_half_ended"`
|
|
||||||
GameEnded string `json:"game_ended"`
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, sport := range sports {
|
for _, sport := range sports {
|
||||||
if sport.SportID != "1" { // ⚽ Example: Only Football
|
if sport.SportID != "1" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
today := time.Now().Format("2006-01-02")
|
||||||
url := fmt.Sprintf(
|
url := fmt.Sprintf(
|
||||||
// "https://eapi.enetpulse.com/event/results/?username=kirubelapiusr&token=b1d35ee5fb8371938c6ca1b4fd6c75cc&sportFK=1&language_typeFK=3&date=2025-10-12"
|
|
||||||
"http://eapi.enetpulse.com/event/results/?sportFK=%s&date=%s&username=%s&token=%s",
|
"http://eapi.enetpulse.com/event/results/?sportFK=%s&date=%s&username=%s&token=%s",
|
||||||
sport.SportID,
|
sport.SportID,
|
||||||
time.DateOnly,
|
today,
|
||||||
s.cfg.EnetPulseConfig.UserName,
|
s.cfg.EnetPulseConfig.UserName,
|
||||||
s.cfg.EnetPulseConfig.Token,
|
s.cfg.EnetPulseConfig.Token,
|
||||||
)
|
)
|
||||||
|
|
||||||
fmt.Println("Fetching results:", url)
|
fmt.Println("Fetching results:", url)
|
||||||
|
|
||||||
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
|
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
|
||||||
|
|
@ -791,87 +632,130 @@ func (s *Service) FetchAndStoreResults(ctx context.Context) error {
|
||||||
sport.SportID, resp.StatusCode, string(body))
|
sport.SportID, resp.StatusCode, string(body))
|
||||||
}
|
}
|
||||||
|
|
||||||
var raw struct {
|
var data struct {
|
||||||
EventResults json.RawMessage `json:"results"`
|
Events []struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
SportFK string `json:"sportFK"`
|
||||||
|
TournamentFK string `json:"tournamentFK"`
|
||||||
|
TournamentTemplateFK string `json:"tournament_templateFK"`
|
||||||
|
TournamentStageFK string `json:"tournament_stageFK"`
|
||||||
|
TournamentStageName string `json:"tournament_stage_name"`
|
||||||
|
TournamentName string `json:"tournament_name"`
|
||||||
|
TournamentTemplateName string `json:"tournament_template_name"`
|
||||||
|
SportName string `json:"sport_name"`
|
||||||
|
StartDate string `json:"startdate"`
|
||||||
|
StatusType string `json:"status_type"`
|
||||||
|
StatusDescFK string `json:"status_descFK"`
|
||||||
|
RoundTypeFK string `json:"round_typeFK"`
|
||||||
|
N string `json:"n"`
|
||||||
|
UT string `json:"ut"`
|
||||||
|
|
||||||
|
Property map[string]struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
N string `json:"n"`
|
||||||
|
UT string `json:"ut"`
|
||||||
|
} `json:"property"`
|
||||||
|
|
||||||
|
EventParticipants map[string]struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Number string `json:"number"`
|
||||||
|
ParticipantFK string `json:"participantFK"`
|
||||||
|
EventFK string `json:"eventFK"`
|
||||||
|
|
||||||
|
Result map[string]struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
EventParticipantsFK string `json:"event_participantsFK"`
|
||||||
|
ResultTypeFK string `json:"result_typeFK"`
|
||||||
|
ResultCode string `json:"result_code"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
N string `json:"n"`
|
||||||
|
UT string `json:"ut"`
|
||||||
|
} `json:"result"`
|
||||||
|
|
||||||
|
Participant struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Gender string `json:"gender"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
CountryFK string `json:"countryFK"`
|
||||||
|
CountryName string `json:"country_name"`
|
||||||
|
} `json:"participant"`
|
||||||
|
} `json:"event_participants"`
|
||||||
|
} `json:"events"`
|
||||||
}
|
}
|
||||||
|
|
||||||
bodyBytes, err := io.ReadAll(resp.Body)
|
bodyBytes, _ := io.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err := json.Unmarshal(bodyBytes, &data); err != nil {
|
||||||
return fmt.Errorf("reading results response for sport %s: %w", sport.SportID, err)
|
return fmt.Errorf("decoding results failed: %w", err)
|
||||||
}
|
|
||||||
if err := json.Unmarshal(bodyBytes, &raw); err != nil {
|
|
||||||
return fmt.Errorf("unmarshalling raw results for sport %s: %w", sport.SportID, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
results := map[string]Result{}
|
for _, event := range data.Events {
|
||||||
if len(raw.EventResults) > 0 && raw.EventResults[0] == '{' {
|
// 1️⃣ Create result record
|
||||||
if err := json.Unmarshal(raw.EventResults, &results); err != nil {
|
lastUpdatedAt, _ := time.Parse(time.RFC3339, event.UT)
|
||||||
return fmt.Errorf("decoding results (object) for sport %s: %w", sport.SportID, err)
|
startDate, _ := time.Parse(time.RFC3339, event.StartDate)
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fmt.Printf("No results found for sport %s\n", sport.SportID)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, r := range results {
|
|
||||||
updatesCount := 0
|
|
||||||
if r.N != "" {
|
|
||||||
if n, err := strconv.Atoi(r.N); err == nil {
|
|
||||||
updatesCount = n
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lastUpdatedAt, _ := time.Parse(time.RFC3339, r.UT)
|
|
||||||
startDate, _ := time.Parse(time.RFC3339, r.StartDate)
|
|
||||||
gameStarted, _ := time.Parse(time.RFC3339, r.GameStarted)
|
|
||||||
firstHalfEnded, _ := time.Parse(time.RFC3339, r.FirstHalfEnded)
|
|
||||||
secondHalfStarted, _ := time.Parse(time.RFC3339, r.SecondHalfStarted)
|
|
||||||
secondHalfEnded, _ := time.Parse(time.RFC3339, r.SecondHalfEnded)
|
|
||||||
gameEnded, _ := time.Parse(time.RFC3339, r.GameEnded)
|
|
||||||
|
|
||||||
createResult := domain.CreateEnetpulseResult{
|
createResult := domain.CreateEnetpulseResult{
|
||||||
ResultID: r.ID,
|
ResultID: event.ID,
|
||||||
Name: r.Name,
|
Name: event.Name,
|
||||||
SportFK: r.SportFK,
|
SportFK: event.SportFK,
|
||||||
TournamentFK: r.TournamentFK,
|
TournamentFK: event.TournamentFK,
|
||||||
TournamentTemplateFK: r.TournamentTemplateFK,
|
TournamentTemplateFK: event.TournamentTemplateFK,
|
||||||
TournamentStageFK: r.TournamentStageFK,
|
TournamentStageName: event.TournamentStageName,
|
||||||
TournamentStageName: r.TournamentStageName,
|
TournamentName: event.TournamentName,
|
||||||
TournamentName: r.TournamentName,
|
TournamentTemplateName: event.TournamentTemplateName,
|
||||||
TournamentTemplateName: r.TournamentTemplateName,
|
SportName: event.SportName,
|
||||||
SportName: r.SportName,
|
|
||||||
StartDate: startDate,
|
StartDate: startDate,
|
||||||
StatusType: r.StatusType,
|
StatusType: event.StatusType,
|
||||||
StatusDescFK: r.StatusDescFK,
|
StatusDescFK: event.StatusDescFK,
|
||||||
RoundTypeFK: r.RoundTypeFK,
|
RoundTypeFK: event.RoundTypeFK,
|
||||||
UpdatesCount: int32(updatesCount),
|
|
||||||
LastUpdatedAt: lastUpdatedAt,
|
LastUpdatedAt: lastUpdatedAt,
|
||||||
Round: r.Round,
|
|
||||||
Live: r.Live,
|
|
||||||
VenueName: r.VenueName,
|
|
||||||
LivestatsPlus: r.LivestatsPlus,
|
|
||||||
LivestatsType: r.LivestatsType,
|
|
||||||
Commentary: r.Commentary,
|
|
||||||
LineupConfirmed: r.LineupConfirmed,
|
|
||||||
Verified: r.Verified,
|
|
||||||
Spectators: r.Spectators,
|
|
||||||
GameStarted: &gameStarted,
|
|
||||||
FirstHalfEnded: &firstHalfEnded,
|
|
||||||
SecondHalfStarted: &secondHalfStarted,
|
|
||||||
SecondHalfEnded: &secondHalfEnded,
|
|
||||||
GameEnded: &gameEnded,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := s.store.CreateEnetpulseResult(ctx, createResult); err != nil {
|
if _, err := s.store.CreateEnetpulseResult(ctx, createResult); err != nil {
|
||||||
fmt.Printf("❌ failed to store result %s: %v\n", r.ID, err)
|
fmt.Printf("❌ failed to store result %s: %v\n", event.ID, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2️⃣ Create referees (type == "ref:participant")
|
||||||
|
for _, prop := range event.Property {
|
||||||
|
if strings.HasPrefix(prop.Type, "ref:participant") {
|
||||||
|
refCreatedAt, _ := time.Parse(time.RFC3339, prop.UT)
|
||||||
|
ref := domain.CreateEnetpulseResultReferee{
|
||||||
|
ResultFk: event.ID,
|
||||||
|
RefereeFk: prop.Value,
|
||||||
|
LastUpdatedAt: refCreatedAt,
|
||||||
|
}
|
||||||
|
if _, err := s.store.CreateEnetpulseResultReferee(ctx, ref); err != nil {
|
||||||
|
fmt.Printf("⚠️ failed to create referee %s: %v\n", prop.Name, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3️⃣ Create participants + their results
|
||||||
|
for _, ep := range event.EventParticipants {
|
||||||
|
p := domain.CreateEnetpulseResultParticipant{
|
||||||
|
ParticipantMapID: ep.ID,
|
||||||
|
ResultFk: ep.EventFK,
|
||||||
|
ParticipantFk: ep.ParticipantFK,
|
||||||
|
Name: ep.Participant.Name,
|
||||||
|
CountryFk: ep.Participant.CountryFK,
|
||||||
|
CountryName: ep.Participant.CountryName,
|
||||||
|
}
|
||||||
|
if _, err := s.store.CreateEnetpulseResultParticipant(ctx, p); err != nil {
|
||||||
|
fmt.Printf("⚠️ failed to create participant %s: %v\n", ep.Participant.Name, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break // limit to one sport if necessary
|
break // stop after the first sport (football)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("✅ Successfully fetched and stored EnetPulse results")
|
fmt.Println("✅ Successfully fetched and stored EnetPulse results + participants + referees")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1077,6 +961,8 @@ func (s *Service) FetchAndStorePreodds(ctx context.Context) error {
|
||||||
LastUpdatedAt: lastUpdatedAt,
|
LastUpdatedAt: lastUpdatedAt,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("\n\nPreodds are:%v\n\n", createPreodds)
|
||||||
|
|
||||||
storedPreodds, err := s.store.CreateEnetpulsePreodds(ctx, createPreodds)
|
storedPreodds, err := s.store.CreateEnetpulsePreodds(ctx, createPreodds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
continue
|
||||||
|
|
@ -1128,6 +1014,7 @@ func (s *Service) GetAllPreodds(ctx context.Context) ([]domain.EnetpulsePreodds,
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to fetch preodds from DB: %w", err)
|
return nil, fmt.Errorf("failed to fetch preodds from DB: %w", err)
|
||||||
}
|
}
|
||||||
|
fmt.Printf("\n\nFetched Preodds are:%v\n\n", preodds)
|
||||||
return preodds, nil
|
return preodds, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1240,18 +1127,6 @@ func (s *Service) GetFixturesWithPreodds(ctx context.Context) ([]domain.Enetpuls
|
||||||
return fixtures, nil
|
return fixtures, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper to safely parse string to int32
|
|
||||||
// func parseStringToInt32(s string) int32 {
|
|
||||||
// if s == "" {
|
|
||||||
// return 0
|
|
||||||
// }
|
|
||||||
// i, err := strconv.Atoi(s)
|
|
||||||
// if err != nil {
|
|
||||||
// return 0
|
|
||||||
// }
|
|
||||||
// return int32(i)
|
|
||||||
// }
|
|
||||||
|
|
||||||
func (s *Service) FetchTournamentTemplates(ctx context.Context) (*domain.TournamentTemplatesResponse, error) {
|
func (s *Service) FetchTournamentTemplates(ctx context.Context) (*domain.TournamentTemplatesResponse, error) {
|
||||||
url := fmt.Sprintf(
|
url := fmt.Sprintf(
|
||||||
"http://eapi.enetpulse.com/tournamenttemplate/list/?username=%s&token=%s",
|
"http://eapi.enetpulse.com/tournamenttemplate/list/?username=%s&token=%s",
|
||||||
|
|
@ -1501,9 +1376,9 @@ func (s *Service) FetchDailyEvents(ctx context.Context, req domain.DailyEventsRe
|
||||||
if req.TournamentTemplateFK != 0 {
|
if req.TournamentTemplateFK != 0 {
|
||||||
query += fmt.Sprintf("&tournament_templateFK=%d", req.TournamentTemplateFK)
|
query += fmt.Sprintf("&tournament_templateFK=%d", req.TournamentTemplateFK)
|
||||||
}
|
}
|
||||||
if req.TournamentStageFK != 0 {
|
// if req.TournamentStageFK != 0 {
|
||||||
query += fmt.Sprintf("&tournament_stageFK=%d", req.TournamentStageFK)
|
// query += fmt.Sprintf("&tournament_stageFK=%d", req.TournamentStageFK)
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Optionals
|
// Optionals
|
||||||
if req.Date != "" {
|
if req.Date != "" {
|
||||||
|
|
@ -1557,73 +1432,6 @@ func (s *Service) FetchDailyEvents(ctx context.Context, req domain.DailyEventsRe
|
||||||
return &dailyResp, nil
|
return &dailyResp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// func (s *Service) FetchFixtures(ctx context.Context, params domain.FixturesRequest) (*domain.FixturesResponse, error) {
|
|
||||||
// // Build base URL
|
|
||||||
// url := fmt.Sprintf("http://eapi.enetpulse.com/event/fixtures/?username=%s&token=%s",
|
|
||||||
// s.cfg.EnetPulseConfig.UserName, s.cfg.EnetPulseConfig.Token)
|
|
||||||
|
|
||||||
// // Required filter: one of sportFK | tournament_templateFK | tournament_stageFK
|
|
||||||
// if params.SportFK != 0 {
|
|
||||||
// url += fmt.Sprintf("&sportFK=%d", params.SportFK)
|
|
||||||
// }
|
|
||||||
// if params.TournamentTemplateFK != 0 {
|
|
||||||
// url += fmt.Sprintf("&tournament_templateFK=%d", params.TournamentTemplateFK)
|
|
||||||
// }
|
|
||||||
// if params.TournamentStageFK != 0 {
|
|
||||||
// url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Optional filters
|
|
||||||
// if params.LanguageTypeFK != 0 {
|
|
||||||
// url += fmt.Sprintf("&language_typeFK=%d", params.LanguageTypeFK)
|
|
||||||
// } else {
|
|
||||||
// url += "&language_typeFK=3" // default to English
|
|
||||||
// }
|
|
||||||
// if params.Date != "" {
|
|
||||||
// url += fmt.Sprintf("&date=%s", params.Date)
|
|
||||||
// }
|
|
||||||
// if params.Live != "" {
|
|
||||||
// url += fmt.Sprintf("&live=%s", params.Live)
|
|
||||||
// }
|
|
||||||
// if params.IncludeVenue {
|
|
||||||
// url += "&includeVenue=yes"
|
|
||||||
// }
|
|
||||||
// if !params.IncludeEventProperties {
|
|
||||||
// url += "&includeEventProperties=no"
|
|
||||||
// }
|
|
||||||
// if params.IncludeCountryCodes {
|
|
||||||
// url += "&includeCountryCodes=yes"
|
|
||||||
// }
|
|
||||||
// if params.IncludeFirstLastName {
|
|
||||||
// url += "&includeFirstLastName=yes"
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Make request
|
|
||||||
// req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, fmt.Errorf("creating fixtures request: %w", err)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// resp, err := s.httpClient.Do(req)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, fmt.Errorf("requesting fixtures: %w", err)
|
|
||||||
// }
|
|
||||||
// defer resp.Body.Close()
|
|
||||||
|
|
||||||
// if resp.StatusCode != http.StatusOK {
|
|
||||||
// body, _ := io.ReadAll(resp.Body)
|
|
||||||
// return nil, fmt.Errorf("unexpected status %d: %s", resp.StatusCode, string(body))
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Decode response
|
|
||||||
// var fixturesResp domain.FixturesResponse
|
|
||||||
// if err := json.NewDecoder(resp.Body).Decode(&fixturesResp); err != nil {
|
|
||||||
// return nil, fmt.Errorf("decoding fixtures response: %w", err)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return &fixturesResp, nil
|
|
||||||
// }
|
|
||||||
|
|
||||||
func (s *Service) FetchResults(ctx context.Context, params domain.ResultsRequest) (*domain.ResultsResponse, error) {
|
func (s *Service) FetchResults(ctx context.Context, params domain.ResultsRequest) (*domain.ResultsResponse, error) {
|
||||||
// Build base URL
|
// Build base URL
|
||||||
url := fmt.Sprintf("http://eapi.enetpulse.com/event/results/?username=%s&token=%s",
|
url := fmt.Sprintf("http://eapi.enetpulse.com/event/results/?username=%s&token=%s",
|
||||||
|
|
@ -1636,9 +1444,9 @@ func (s *Service) FetchResults(ctx context.Context, params domain.ResultsRequest
|
||||||
if params.TournamentTemplateFK != 0 {
|
if params.TournamentTemplateFK != 0 {
|
||||||
url += fmt.Sprintf("&tournament_templateFK=%d", params.TournamentTemplateFK)
|
url += fmt.Sprintf("&tournament_templateFK=%d", params.TournamentTemplateFK)
|
||||||
}
|
}
|
||||||
if params.TournamentStageFK != 0 {
|
// if params.TournamentStageFK != 0 {
|
||||||
url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
// url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Optional filters
|
// Optional filters
|
||||||
if params.LanguageTypeFK != 0 {
|
if params.LanguageTypeFK != 0 {
|
||||||
|
|
@ -1774,7 +1582,7 @@ func (s *Service) FetchEventDetails(ctx context.Context, params domain.EventDeta
|
||||||
|
|
||||||
func (s *Service) FetchEventList(ctx context.Context, params domain.EventListRequest) (*domain.EventListResponse, error) {
|
func (s *Service) FetchEventList(ctx context.Context, params domain.EventListRequest) (*domain.EventListResponse, error) {
|
||||||
// You must provide either TournamentFK or TournamentStageFK
|
// You must provide either TournamentFK or TournamentStageFK
|
||||||
if params.TournamentFK == 0 && params.TournamentStageFK == 0 {
|
if params.TournamentFK == 0 {
|
||||||
return nil, fmt.Errorf("either TournamentFK or TournamentStageFK is required")
|
return nil, fmt.Errorf("either TournamentFK or TournamentStageFK is required")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1786,9 +1594,9 @@ func (s *Service) FetchEventList(ctx context.Context, params domain.EventListReq
|
||||||
if params.TournamentFK != 0 {
|
if params.TournamentFK != 0 {
|
||||||
url += fmt.Sprintf("&tournamentFK=%d", params.TournamentFK)
|
url += fmt.Sprintf("&tournamentFK=%d", params.TournamentFK)
|
||||||
}
|
}
|
||||||
if params.TournamentStageFK != 0 {
|
// if params.TournamentStageFK != 0 {
|
||||||
url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
// url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Optional parameters
|
// Optional parameters
|
||||||
if !params.IncludeEventProperties {
|
if !params.IncludeEventProperties {
|
||||||
|
|
@ -1859,9 +1667,9 @@ func (s *Service) FetchParticipantFixtures(ctx context.Context, params domain.Pa
|
||||||
if params.TournamentTemplateFK != 0 {
|
if params.TournamentTemplateFK != 0 {
|
||||||
url += fmt.Sprintf("&tournament_templateFK=%d", params.TournamentTemplateFK)
|
url += fmt.Sprintf("&tournament_templateFK=%d", params.TournamentTemplateFK)
|
||||||
}
|
}
|
||||||
if params.TournamentStageFK != 0 {
|
// if params.TournamentStageFK != 0 {
|
||||||
url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
// url += fmt.Sprintf("&tournament_stageFK=%d", params.TournamentStageFK)
|
||||||
}
|
// }
|
||||||
if params.Date != "" {
|
if params.Date != "" {
|
||||||
url += "&date=" + params.Date
|
url += "&date=" + params.Date
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -316,12 +316,12 @@ func StartEnetPulseCron(enetPulseSvc *enetpulse.Service, mongoLogger *zap.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4️⃣ Tournament Stages
|
// 4️⃣ Tournament Stages
|
||||||
mongoLogger.Info("Began fetching and storing tournament stages cron task")
|
// mongoLogger.Info("Began fetching and storing tournament stages cron task")
|
||||||
if err := enetPulseSvc.FetchAndStoreTournamentStages(ctx); err != nil {
|
// if err := enetPulseSvc.FetchAndStoreTournamentStages(ctx); err != nil {
|
||||||
mongoLogger.Error("Failed to fetch and store tournament stages", zap.Error(err))
|
// mongoLogger.Error("Failed to fetch and store tournament stages", zap.Error(err))
|
||||||
} else {
|
// } else {
|
||||||
mongoLogger.Info("✅ \n\nCompleted fetching and storing tournament stages\n\n")
|
// mongoLogger.Info("✅ \n\nCompleted fetching and storing tournament stages\n\n")
|
||||||
}
|
// }
|
||||||
|
|
||||||
// // 5️⃣ Fixtures
|
// // 5️⃣ Fixtures
|
||||||
mongoLogger.Info("Began fetching and storing fixtures cron task")
|
mongoLogger.Info("Began fetching and storing fixtures cron task")
|
||||||
|
|
@ -333,12 +333,12 @@ func StartEnetPulseCron(enetPulseSvc *enetpulse.Service, mongoLogger *zap.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
// 6️⃣ Results
|
// 6️⃣ Results
|
||||||
mongoLogger.Info("Began fetching and storing results cron task")
|
// mongoLogger.Info("Began fetching and storing results cron task")
|
||||||
if err := enetPulseSvc.FetchAndStoreResults(ctx); err != nil {
|
// if err := enetPulseSvc.FetchAndStoreResults(ctx); err != nil {
|
||||||
mongoLogger.Error("Failed to fetch and store results", zap.Error(err))
|
// mongoLogger.Error("Failed to fetch and store results", zap.Error(err))
|
||||||
} else {
|
// } else {
|
||||||
mongoLogger.Info("\n\n✅ Completed fetching and storing results\n\n")
|
// mongoLogger.Info("\n\n✅ Completed fetching and storing results\n\n")
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 7 Outcome Types
|
// 7 Outcome Types
|
||||||
mongoLogger.Info("Began fetching and storing outcome_types cron task")
|
mongoLogger.Info("Began fetching and storing outcome_types cron task")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user