671 lines
24 KiB
Go
671 lines
24 KiB
Go
package domain
|
||
|
||
import "time"
|
||
|
||
type EnetPulseSport struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
N string `json:"n"`
|
||
UT string `json:"ut"`
|
||
}
|
||
|
||
type SportsResponse struct {
|
||
Sports map[string]EnetPulseSport `json:"sports"`
|
||
}
|
||
|
||
type TournamentTemplatesResponse struct {
|
||
TournamentTemplates map[string]TournamentTemplate `json:"tournament_templates"`
|
||
}
|
||
|
||
type TournamentTemplate struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
SportFK string `json:"sportFK"`
|
||
Gender string `json:"gender"`
|
||
N string `json:"n"`
|
||
UT string `json:"ut"`
|
||
}
|
||
|
||
type TournamentTemplateParticipantsResponse struct {
|
||
// Map of participant entries or whatever eAPI returns
|
||
Participants map[string]TournamentParticipant `json:"participants"`
|
||
}
|
||
|
||
type TournamentTemplateParticipant struct {
|
||
ID string `json:"id"`
|
||
DateFrom string `json:"date_from"`
|
||
DateTo string `json:"date_to"`
|
||
Active string `json:"active"`
|
||
N string `json:"n"`
|
||
UT string `json:"ut"`
|
||
// plus nested participant info
|
||
Participant interface{} `json:"participant"`
|
||
}
|
||
|
||
// For optional parameters
|
||
type ParticipantsOptions struct {
|
||
IncludeProperties bool
|
||
IncludeParticipantProperties bool
|
||
IncludeParticipantSports bool
|
||
IncludeCountries bool
|
||
IncludeCountryCodes bool
|
||
ParticipantType string
|
||
}
|
||
|
||
type Tournament struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
TournamentTemplateFK string `json:"tournament_templateFK"`
|
||
N string `json:"n"`
|
||
UT string `json:"ut"`
|
||
}
|
||
|
||
type TournamentsResponse struct {
|
||
Tournaments map[string]Tournament `json:"tournaments"`
|
||
}
|
||
|
||
type TournamentParticipant struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
Type string `json:"type"`
|
||
Gender string `json:"gender"`
|
||
CountryFK string `json:"countryFK"`
|
||
Country string `json:"country_name"`
|
||
}
|
||
|
||
type TournamentWithParticipants struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
Participants map[string]map[string]interface{} `json:"participants"` // or a typed struct
|
||
}
|
||
|
||
type TournamentParticipantsResponse struct {
|
||
Tournaments map[string]TournamentWithParticipants `json:"tournaments"`
|
||
}
|
||
|
||
type TournamentStage struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
TournamentFK string `json:"tournamentFK"`
|
||
Gender string `json:"gender"`
|
||
CountryFK string `json:"countryFK"`
|
||
StartDate string `json:"startdate"`
|
||
EndDate string `json:"enddate"`
|
||
N string `json:"n"`
|
||
UT string `json:"ut"`
|
||
CountryName string `json:"country_name"`
|
||
}
|
||
|
||
type TournamentStagesResponse struct {
|
||
TournamentStages map[string]TournamentStage `json:"tournament_stages"`
|
||
}
|
||
|
||
type TournamentStageParticipant struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
Gender string `json:"gender"`
|
||
Type string `json:"type"`
|
||
CountryFK string `json:"countryFK"`
|
||
Country string `json:"country_name"`
|
||
}
|
||
|
||
type TournamentStageWithParticipants struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
TournamentFK string `json:"tournamentFK"`
|
||
Participants map[string]map[string]interface{} `json:"participants"` // can refine later
|
||
}
|
||
|
||
type TournamentStageParticipantsResponse struct {
|
||
TournamentStages map[string]TournamentStageWithParticipants `json:"tournament_stages"`
|
||
}
|
||
|
||
type DailyEventsRequest struct {
|
||
SportFK int // one of these three required
|
||
TournamentTemplateFK int
|
||
TournamentStageFK int
|
||
Date string // YYYY-MM-DD optional
|
||
Live string // yes/no optional
|
||
IncludeVenue string // yes/no optional
|
||
StatusType string // e.g. inprogress, finished...
|
||
IncludeEventProperties string // yes/no optional
|
||
IncludeCountryCodes string // yes/no optional
|
||
IncludeFirstLastName string // yes/no optional
|
||
IncludeDeleted string // yes/no optional
|
||
}
|
||
|
||
type DailyEventsResponse struct {
|
||
Events map[string]struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
StartDate string `json:"startdate"`
|
||
Status string `json:"status"`
|
||
// add other fields you care about from API
|
||
} `json:"events"`
|
||
}
|
||
|
||
type FixturesRequest struct {
|
||
SportFK int
|
||
TournamentTemplateFK int
|
||
TournamentStageFK int
|
||
LanguageTypeFK int
|
||
Date string // YYYY-MM-DD
|
||
Live string // "yes" | "no"
|
||
IncludeVenue bool
|
||
IncludeEventProperties bool
|
||
IncludeCountryCodes bool
|
||
IncludeFirstLastName bool
|
||
}
|
||
|
||
// Adjust according to the real API response JSON
|
||
type FixturesResponse struct {
|
||
Events []FixtureEvent `json:"events"`
|
||
}
|
||
|
||
type FixtureEvent struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
StartDate string `json:"startdate"`
|
||
// ... add more fields as per API
|
||
}
|
||
|
||
type ResultsRequest struct {
|
||
SportFK int
|
||
TournamentTemplateFK int
|
||
TournamentStageFK int
|
||
LanguageTypeFK int
|
||
Date string // YYYY-MM-DD
|
||
Live string // "yes" | "no"
|
||
IncludeVenue bool
|
||
IncludeEventProperties bool
|
||
IncludeCountryCodes bool
|
||
IncludeFirstLastName bool
|
||
Limit int
|
||
Offset int
|
||
}
|
||
|
||
// Adjust fields to match API JSON exactly
|
||
type ResultsResponse struct {
|
||
Events []ResultEvent `json:"events"`
|
||
}
|
||
|
||
type ResultEvent struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
StartDate string `json:"startdate"`
|
||
Status string `json:"status"`
|
||
// ... add more fields based on actual API
|
||
}
|
||
|
||
type EventDetailsRequest struct {
|
||
ID int
|
||
IncludeLineups bool
|
||
IncludeIncidents bool
|
||
IncludeExtendedResults bool
|
||
IncludeProperties bool
|
||
IncludeLivestats bool
|
||
IncludeVenue bool
|
||
IncludeCountryCodes bool
|
||
IncludeFirstLastName bool
|
||
IncludeDeleted bool
|
||
IncludeReference bool
|
||
IncludeObjectParticipants bool
|
||
IncludeEventIncidentRelation bool
|
||
IncludeTeamProperties bool
|
||
IncludeObjectRound bool
|
||
}
|
||
|
||
// Adjust fields to match the actual JSON from Enetpulse
|
||
type EventDetailsResponse struct {
|
||
EventID string `json:"id"`
|
||
EventName string `json:"name"`
|
||
StartDate string `json:"startdate"`
|
||
// Add additional nested structs/fields as needed based on API response
|
||
}
|
||
|
||
type EventListRequest struct {
|
||
TournamentFK int // optional
|
||
TournamentStageFK int // optional
|
||
IncludeEventProperties bool // default true
|
||
StatusType string // e.g. "finished", "inprogress"
|
||
IncludeVenue bool
|
||
IncludeDeleted bool
|
||
Limit int
|
||
Offset int
|
||
}
|
||
|
||
// Adjust fields to match the actual JSON structure you get from Enetpulse
|
||
type EventListResponse struct {
|
||
Events map[string]struct {
|
||
ID string `json:"id"`
|
||
Name string `json:"name"`
|
||
StartDate string `json:"startdate"`
|
||
// add more fields as per response
|
||
} `json:"events"`
|
||
}
|
||
|
||
type ParticipantFixturesRequest struct {
|
||
ParticipantFK int // required
|
||
|
||
SportFK int
|
||
TournamentFK int
|
||
TournamentTemplateFK int
|
||
TournamentStageFK int
|
||
Date string
|
||
Live string
|
||
Limit int
|
||
Offset int
|
||
|
||
IncludeVenue bool
|
||
IncludeCountryCodes bool
|
||
IncludeFirstLastName bool
|
||
IncludeEventProperties bool
|
||
LanguageTypeFK int
|
||
}
|
||
|
||
// Adjust this to match the actual API response structure
|
||
type ParticipantFixturesResponse struct {
|
||
Events []struct {
|
||
ID int `json:"id"`
|
||
Name string `json:"name"`
|
||
// ... other fields from the API
|
||
} `json:"events"`
|
||
}
|
||
|
||
type ParticipantResultsRequest struct {
|
||
ParticipantFK int64 `json:"participantFK"`
|
||
Limit int `json:"limit,omitempty"`
|
||
Offset int `json:"offset,omitempty"`
|
||
IncludeVenue bool `json:"includeVenue,omitempty"`
|
||
IncludeDeleted bool `json:"includeDeleted,omitempty"`
|
||
}
|
||
|
||
type ParticipantResultsResponse struct {
|
||
// Adjust to match Enetpulse’s JSON structure
|
||
Results []struct {
|
||
EventFK int64 `json:"eventFK"`
|
||
ParticipantFK int64 `json:"participantFK"`
|
||
Score string `json:"score"`
|
||
Status string `json:"status"`
|
||
// add more fields as needed
|
||
} `json:"results"`
|
||
}
|
||
|
||
type TeamLogoResponse struct {
|
||
ContentType string `json:"contentType"` // e.g. "image/png"
|
||
Data []byte `json:"-"` // raw image bytes
|
||
URL string `json:"url,omitempty"` // optional original URL
|
||
}
|
||
|
||
type TeamShirtsResponse struct {
|
||
ContentType string `json:"contentType"` // could be "application/json" or "image/png"
|
||
RawData []byte `json:"-"` // raw response
|
||
URL string `json:"url,omitempty"`
|
||
}
|
||
|
||
type ImageResponse struct {
|
||
ContentType string `json:"contentType"` // e.g., "image/png"
|
||
RawData []byte `json:"-"` // raw image bytes
|
||
URL string `json:"url,omitempty"`
|
||
}
|
||
|
||
type PreMatchOddsRequest struct {
|
||
ObjectFK int64 `json:"objectFK"`
|
||
OddsProviderFK []int64 `json:"oddsProviderFK,omitempty"`
|
||
OutcomeTypeFK int64 `json:"outcomeTypeFK,omitempty"`
|
||
OutcomeScopeFK int64 `json:"outcomeScopeFK,omitempty"`
|
||
OutcomeSubtypeFK int64 `json:"outcomeSubtypeFK,omitempty"`
|
||
Limit int `json:"limit,omitempty"`
|
||
Offset int `json:"offset,omitempty"`
|
||
LanguageTypeFK int64 `json:"languageTypeFK,omitempty"`
|
||
}
|
||
|
||
type PreMatchOddsResponse struct {
|
||
// Define fields according to the Enetpulse preodds response structure
|
||
// Example:
|
||
EventID int64 `json:"eventFK"`
|
||
Odds []PreMatchOutcome `json:"odds"`
|
||
}
|
||
|
||
type PreMatchOutcome struct {
|
||
OutcomeFK int64 `json:"outcomeFK"`
|
||
OutcomeValue string `json:"outcomeValue"`
|
||
OddsValue float64 `json:"oddsValue"`
|
||
ProviderFK int64 `json:"oddsProviderFK"`
|
||
OutcomeTypeFK int64 `json:"outcomeTypeFK"`
|
||
}
|
||
|
||
type TournamentStageOddsRequest struct {
|
||
ObjectFK int64 `json:"objectFK"` // Tournament stage ID
|
||
OddsProviderFK int64 `json:"oddsProviderFK,omitempty"`
|
||
OutcomeTypeFK int64 `json:"outcomeTypeFK"` // Mandatory
|
||
OutcomeScopeFK int64 `json:"outcomeScopeFK,omitempty"`
|
||
OutcomeSubtypeFK int64 `json:"outcomeSubtypeFK,omitempty"`
|
||
Limit int `json:"limit,omitempty"`
|
||
Offset int `json:"offset,omitempty"`
|
||
LanguageTypeFK int64 `json:"languageTypeFK,omitempty"`
|
||
}
|
||
|
||
type TournamentStageOddsResponse struct {
|
||
// Define fields according to Enetpulse response
|
||
StageID int64 `json:"objectFK"`
|
||
Odds []PreMatchOutcome `json:"odds"` // reuse PreMatchOutcome from pre-match odds
|
||
}
|
||
|
||
type TournamentOddsRequest struct {
|
||
ObjectFK int64 `json:"objectFK"` // Tournament ID
|
||
OddsProviderFK int64 `json:"oddsProviderFK,omitempty"`
|
||
OutcomeTypeFK int64 `json:"outcomeTypeFK"` // Mandatory
|
||
OutcomeScopeFK int64 `json:"outcomeScopeFK,omitempty"`
|
||
OutcomeSubtypeFK int64 `json:"outcomeSubtypeFK,omitempty"`
|
||
Limit int `json:"limit,omitempty"`
|
||
Offset int `json:"offset,omitempty"`
|
||
LanguageTypeFK int64 `json:"languageTypeFK,omitempty"`
|
||
}
|
||
|
||
type TournamentOddsResponse struct {
|
||
TournamentID int64 `json:"objectFK"`
|
||
Odds []PreMatchOutcome `json:"odds"` // reuse PreMatchOutcome struct from pre-match odds
|
||
}
|
||
|
||
type CreateEnetpulseSport struct {
|
||
SportID string `json:"sport_id"` // from API "id"
|
||
Name string `json:"name"` // from API "name"
|
||
UpdatesCount int `json:"updates_count,omitempty"` // from API "n"
|
||
LastUpdatedAt time.Time `json:"last_updated_at"` // from API "ut"
|
||
Status int `json:"status,omitempty"` // optional, default 1
|
||
}
|
||
|
||
type EnetpulseSport struct {
|
||
ID int64 `json:"id"` // DB primary key
|
||
SportID string `json:"sport_id"` // from API "id"
|
||
Name string `json:"name"` // from API "name"
|
||
UpdatesCount int `json:"updates_count"` // from API "n"
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
Status int `json:"status"` // active/inactive
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
type EnetpulseTournamentTemplate struct {
|
||
ID int64 `json:"id"`
|
||
TemplateID string `json:"template_id"` // from API "id"
|
||
Name string `json:"name"` // from API "name"
|
||
SportFK string `json:"sport_fk"` // related sport id
|
||
Gender string `json:"gender"` // male, female, mixed, unknown
|
||
UpdatesCount int `json:"updates_count"` // from API "n"
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
Status int `json:"status"` // optional
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
type CreateEnetpulseTournamentTemplate struct {
|
||
TemplateID string `json:"templateId"` // from API "id"
|
||
Name string `json:"name"` // from API "name"
|
||
SportFK int64 `json:"sportFK"` // foreign key to sport
|
||
Gender string `json:"gender"` // male, female, mixed, unknown
|
||
UpdatesCount int `json:"updatesCount"` // from API "n"
|
||
LastUpdatedAt time.Time `json:"lastUpdatedAt"` // from API "ut"
|
||
Status int `json:"status"` // optional, e.g., active/inactive
|
||
}
|
||
|
||
type CreateEnetpulseTournament struct {
|
||
TournamentID string // API "id"
|
||
Name string // API "name"
|
||
TournamentTemplateFK string // API "tournament_templateFK" (links to template_id)
|
||
UpdatesCount int // API "n"
|
||
LastUpdatedAt time.Time // API "ut"
|
||
Status int // optional, default 1
|
||
}
|
||
|
||
type EnetpulseTournament struct {
|
||
ID int64 // internal DB PK
|
||
TournamentID string
|
||
Name string
|
||
TournamentTemplateFK string
|
||
UpdatesCount int
|
||
LastUpdatedAt time.Time
|
||
Status int
|
||
CreatedAt time.Time
|
||
UpdatedAt *time.Time
|
||
}
|
||
|
||
type EnetpulseTournamentStage struct {
|
||
ID int64 `json:"id"`
|
||
StageID string `json:"stage_id"` // API id
|
||
Name string `json:"name"` // API name
|
||
TournamentFK string `json:"tournament_fk"` // Foreign key to tournament
|
||
Gender string `json:"gender"` // male/female/mixed/unknown
|
||
CountryFK string `json:"country_fk"` // country FK from API
|
||
StartDate time.Time `json:"start_date"` // start date/time
|
||
EndDate time.Time `json:"end_date"` // end date/time
|
||
UpdatesCount int `json:"updates_count"` // n from API
|
||
LastUpdatedAt time.Time `json:"last_updated_at"` // ut from API
|
||
CountryName string `json:"country_name"` // country name from API
|
||
Status int `json:"status"` // active/inactive
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
// ✅ Struct for creating new tournament stage rows
|
||
type CreateEnetpulseTournamentStage struct {
|
||
StageID string `json:"stage_id"` // API id
|
||
Name string `json:"name"` // API name
|
||
TournamentFK string `json:"tournament_fk"` // DB foreign key to tournaments
|
||
Gender string `json:"gender"` // male/female/mixed/unknown
|
||
CountryFK string `json:"country_fk"` // country FK from API
|
||
StartDate time.Time `json:"start_date"` // start date/time
|
||
EndDate time.Time `json:"end_date"` // end date/time
|
||
UpdatesCount int `json:"updates_count"` // n from API
|
||
LastUpdatedAt time.Time `json:"last_updated_at"` // ut from API
|
||
CountryName string `json:"country_name"` // country name from API
|
||
Status int `json:"status"` // active/inactive
|
||
}
|
||
|
||
// For insertion
|
||
type CreateEnetpulseFixture struct {
|
||
FixtureID string
|
||
Name string
|
||
SportFK string
|
||
TournamentFK string
|
||
TournamentTemplateFK string
|
||
TournamentStageFK string
|
||
TournamentStageName string
|
||
TournamentName string
|
||
TournamentTemplateName string
|
||
SportName string
|
||
Gender string
|
||
StartDate time.Time
|
||
StatusType string
|
||
StatusDescFK string
|
||
RoundTypeFK string
|
||
UpdatesCount int
|
||
LastUpdatedAt time.Time
|
||
}
|
||
|
||
// Full domain model
|
||
type EnetpulseFixture struct {
|
||
FixtureID string
|
||
Name string
|
||
SportFK string
|
||
TournamentFK string
|
||
TournamentTemplateFK string
|
||
TournamentStageFK string
|
||
TournamentStageName string
|
||
TournamentName string
|
||
TournamentTemplateName string
|
||
SportName string
|
||
Gender string
|
||
StartDate time.Time
|
||
StatusType string
|
||
StatusDescFK string
|
||
RoundTypeFK string
|
||
UpdatesCount int
|
||
LastUpdatedAt time.Time
|
||
CreatedAt time.Time
|
||
UpdatedAt time.Time
|
||
}
|
||
|
||
type CreateEnetpulseResult struct {
|
||
ResultID string `json:"result_id"`
|
||
Name string `json:"name"`
|
||
SportFK string `json:"sport_fk"`
|
||
TournamentFK string `json:"tournament_fk"`
|
||
TournamentTemplateFK string `json:"tournament_template_fk"`
|
||
TournamentStageFK string `json:"tournament_stage_fk"`
|
||
TournamentStageName string `json:"tournament_stage_name"`
|
||
TournamentName string `json:"tournament_name"`
|
||
TournamentTemplateName string `json:"tournament_template_name"`
|
||
SportName string `json:"sport_name"`
|
||
StartDate time.Time `json:"start_date"`
|
||
StatusType string `json:"status_type"`
|
||
StatusDescFK string `json:"status_desc_fk"`
|
||
RoundTypeFK string `json:"round_type_fk"`
|
||
UpdatesCount int32 `json:"updates_count"`
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
|
||
// Optional metadata
|
||
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"`
|
||
|
||
// Time-related metadata
|
||
GameStarted *time.Time `json:"game_started"`
|
||
FirstHalfEnded *time.Time `json:"first_half_ended"`
|
||
SecondHalfStarted *time.Time `json:"second_half_started"`
|
||
SecondHalfEnded *time.Time `json:"second_half_ended"`
|
||
GameEnded *time.Time `json:"game_ended"`
|
||
}
|
||
|
||
// ✅ Used for reading result records
|
||
type EnetpulseResult struct {
|
||
ID int64 `json:"id"`
|
||
ResultID string `json:"result_id"`
|
||
Name string `json:"name"`
|
||
SportFK string `json:"sport_fk"`
|
||
TournamentFK string `json:"tournament_fk"`
|
||
TournamentTemplateFK string `json:"tournament_template_fk"`
|
||
TournamentStageFK string `json:"tournament_stage_fk"`
|
||
TournamentStageName string `json:"tournament_stage_name"`
|
||
TournamentName string `json:"tournament_name"`
|
||
TournamentTemplateName string `json:"tournament_template_name"`
|
||
SportName string `json:"sport_name"`
|
||
StartDate time.Time `json:"start_date"`
|
||
StatusType string `json:"status_type"`
|
||
StatusDescFK string `json:"status_desc_fk"`
|
||
RoundTypeFK string `json:"round_type_fk"`
|
||
UpdatesCount int32 `json:"updates_count"`
|
||
LastUpdatedAt *time.Time `json:"last_updated_at"`
|
||
|
||
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 *time.Time `json:"game_started"`
|
||
FirstHalfEnded *time.Time `json:"first_half_ended"`
|
||
SecondHalfStarted *time.Time `json:"second_half_started"`
|
||
SecondHalfEnded *time.Time `json:"second_half_ended"`
|
||
GameEnded *time.Time `json:"game_ended"`
|
||
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt *time.Time `json:"updated_at"`
|
||
}
|
||
|
||
type EnetpulseOutcomeType struct {
|
||
ID int64 `json:"id"`
|
||
OutcomeTypeID string `json:"outcome_type_id"` // changed from int64 → string
|
||
Name string `json:"name"`
|
||
Description string `json:"description"`
|
||
UpdatesCount int32 `json:"updates_count"`
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
// CreateEnetpulseOutcomeType represents the payload to create or update an outcome type.
|
||
type CreateEnetpulseOutcomeType struct {
|
||
OutcomeTypeID string `json:"outcome_type_id"` // changed from int64 → string
|
||
Name string `json:"name"`
|
||
Description string `json:"description"`
|
||
UpdatesCount int32 `json:"updates_count"`
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
}
|
||
|
||
type EnetpulsePreodds struct {
|
||
PreoddsID string `json:"preodds_id"`
|
||
EventFK string `json:"event_fk"`
|
||
OutcomeTypeFK string `json:"outcome_type_fk"`
|
||
OutcomeScopeFK string `json:"outcome_scope_fk"`
|
||
OutcomeSubtypeFK string `json:"outcome_subtype_fk"`
|
||
EventParticipantNumber int `json:"event_participant_number"`
|
||
IParam string `json:"iparam"`
|
||
IParam2 string `json:"iparam2"`
|
||
DParam string `json:"dparam"`
|
||
DParam2 string `json:"dparam2"`
|
||
SParam string `json:"sparam"`
|
||
UpdatesCount int `json:"updates_count"`
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
// CreateEnetpulsePreodds is used when inserting a new preodds record
|
||
type CreateEnetpulsePreodds struct {
|
||
PreoddsID string `json:"preodds_id"`
|
||
EventFK string `json:"event_fk"`
|
||
OutcomeTypeFK string `json:"outcome_type_fk"`
|
||
OutcomeScopeFK string `json:"outcome_scope_fk"`
|
||
OutcomeSubtypeFK string `json:"outcome_subtype_fk"`
|
||
EventParticipantNumber int `json:"event_participant_number"`
|
||
IParam string `json:"iparam"`
|
||
IParam2 string `json:"iparam2"`
|
||
DParam string `json:"dparam"`
|
||
DParam2 string `json:"dparam2"`
|
||
SParam string `json:"sparam"`
|
||
UpdatesCount int `json:"updates_count"`
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
}
|
||
|
||
type CreateEnetpulsePreoddsBettingOffer struct {
|
||
BettingOfferID string
|
||
PreoddsFK string
|
||
BettingOfferStatusFK int32
|
||
OddsProviderFK int32
|
||
Odds float64
|
||
OddsOld float64
|
||
Active string
|
||
CouponKey string
|
||
UpdatesCount int
|
||
LastUpdatedAt time.Time
|
||
}
|
||
|
||
// EnetpulsePreoddsBettingOffer represents the DB record of a betting offer
|
||
type EnetpulsePreoddsBettingOffer struct {
|
||
ID int64 `json:"id"`
|
||
BettingOfferID string `json:"betting_offer_id"`
|
||
PreoddsFK string `json:"preodds_fk"`
|
||
BettingOfferStatusFK int32 `json:"betting_offer_status_fk"`
|
||
OddsProviderFK int32 `json:"odds_provider_fk"`
|
||
Odds float64 `json:"odds"`
|
||
OddsOld float64 `json:"odds_old"`
|
||
Active string `json:"active"`
|
||
CouponKey string `json:"coupon_key"`
|
||
UpdatesCount int `json:"updates_count"`
|
||
LastUpdatedAt time.Time `json:"last_updated_at"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|