/* Options: Date: 2026-11-07 04:16:46 Version: 10.42 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://s4w1.api.bettor.webhop.biz //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetDrawDignostics.* //ExcludeTypes: //DefaultImports: */ package dtos import ( "time" ) type Ref struct { Id string `json:"id"` Val string `json:"val"` } type BettingApp struct { Name *string `json:"name,omitempty"` Version *string `json:"version,omitempty"` } type RefEx struct { Ref Data RecordDictionary[string, string] `json:"data"` } type Origin struct { Application *BettingApp `json:"application,omitempty"` Ip *string `json:"ip,omitempty"` Organization *RefEx `json:"organization,omitempty"` Region *Ref `json:"region,omitempty"` LocationGroup *Ref `json:"locationGroup,omitempty"` Location *RefEx `json:"location,omitempty"` Device *RefEx `json:"device,omitempty"` Clerk *Ref `json:"clerk,omitempty"` } type Bet struct { Id *string `json:"id,omitempty"` OrdinalOfAvailableRoundToAssignTo int `json:"ordinalOfAvailableRoundToAssignTo,omitempty"` Content *string `json:"content,omitempty"` Stake float64 `json:"stake,omitempty"` Payload map[string]string `json:"payload,omitempty"` } type Pool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Treshold float64 `json:"treshold,omitempty"` } type LocationOptimizationLevel int const ( LocationOptimizationLevelNone LocationOptimizationLevel = 0 LocationOptimizationLevelLow LocationOptimizationLevel = 1 LocationOptimizationLevelMedium LocationOptimizationLevel = 2 LocationOptimizationLevelHigh LocationOptimizationLevel = 3 ) type ThresholdInterval struct { Start float64 `json:"start,omitempty"` End float64 `json:"end,omitempty"` } type SortingOrder int const ( SortingOrderNone SortingOrder = 0 SortingOrderAscending SortingOrder = 1 SortingOrderDescending SortingOrder = 2 ) type WinCountOrderProbability struct { Order SortingOrder `json:"order,omitempty"` Probability int `json:"probability,omitempty"` } type PoolCaps struct { PlusCoef float64 `json:"plusCoef,omitempty"` MinusCoef float64 `json:"minusCoef,omitempty"` MaxAmountInPrevalentStakes float64 `json:"maxAmountInPrevalentStakes,omitempty"` } type PoolSettings struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` IsActive bool `json:"isActive,omitempty"` ContributionToRoundPoolPct float64 `json:"contributionToRoundPoolPct,omitempty"` Caps *PoolCaps `json:"caps,omitempty"` } type StakeCategory int const ( StakeCategoryPickerel StakeCategory = 0 StakeCategoryFish StakeCategory = 1 StakeCategorySalmon StakeCategory = 2 StakeCategoryTuna StakeCategory = 3 StakeCategoryShark StakeCategory = 4 StakeCategoryWhale StakeCategory = 5 StakeCategoryNone StakeCategory = -1 ) type CategoryThreshold struct { Category StakeCategory `json:"category,omitempty"` Threshold float64 `json:"threshold,omitempty"` } type HighRollerSettings struct { Pools *RecordList[PoolSettings] `json:"pools,omitempty"` CategoryThresholds *RecordList[CategoryThreshold] `json:"categoryThresholds,omitempty"` } type SyphonBlacklists struct { Locations *RecordList[Ref] `json:"locations,omitempty"` Players *RecordList[Ref] `json:"players,omitempty"` } type AntiSyphonConfig struct { CombinationCountPerRoundThresholdPct float64 `json:"combinationCountPerRoundThresholdPct,omitempty"` ExcludedLocations *RecordList[Ref] `json:"excludedLocations,omitempty"` Blacklists *SyphonBlacklists `json:"blacklists,omitempty"` IncludeRoundPctAsBettorSyphonCriteria bool `json:"includeRoundPctAsBettorSyphonCriteria,omitempty"` IsActive bool `json:"isActive,omitempty"` } type FraudDetectionConfiguration struct { AntiSyphon *AntiSyphonConfig `json:"antiSyphon,omitempty"` } type DebugConfiguration struct { LogLocationStats bool `json:"logLocationStats,omitempty"` LogBettorStats bool `json:"logBettorStats,omitempty"` } type JP5WinnerCooldownPolicyConfig struct { IsActive bool `json:"isActive,omitempty"` CooldownIntervalInDays int `json:"cooldownIntervalInDays,omitempty"` } type AccumulatorConfiguration struct { Pools *RecordList[Pool] `json:"pools,omitempty"` PrevalentStake float64 `json:"prevalentStake,omitempty"` PurgeThresholdModifier float64 `json:"purgeThresholdModifier,omitempty"` LocationOptimizationLevel LocationOptimizationLevel `json:"locationOptimizationLevel,omitempty"` JackPot5ThresholdInterval *ThresholdInterval `json:"jackPot5ThresholdInterval,omitempty"` DeviationCategorySpanInPct int `json:"deviationCategorySpanInPct,omitempty"` DeviationCategoryThresholdAmount float64 `json:"deviationCategoryThresholdAmount,omitempty"` RoundPoolCircuitBreakerThreshold float64 `json:"roundPoolCircuitBreakerThreshold,omitempty"` LowWinCountAffinityInPct int `json:"lowWinCountAffinityInPct,omitempty"` WinCountOrderAffinity *RecordList[WinCountOrderProbability] `json:"winCountOrderAffinity,omitempty"` HighRollerSettings *HighRollerSettings `json:"highRollerSettings,omitempty"` OverflowCoefficientPoolsToRound bool `json:"overflowCoefficientPoolsToRound,omitempty"` AntiSyphonProtectionOverride bool `json:"antiSyphonProtectionOverride,omitempty"` FraudDetectionConfig *FraudDetectionConfiguration `json:"fraudDetectionConfig,omitempty"` DebugConfig *DebugConfiguration `json:"debugConfig,omitempty"` JP5WinnerCooldownPolicy *JP5WinnerCooldownPolicyConfig `json:"jP5WinnerCooldownPolicy,omitempty"` } type RecordDictionary[TKey any, TVal any] map[TKey]TVal type Pool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Coefficient float64 `json:"coefficient,omitempty"` Rtp float64 `json:"rtp,omitempty"` Threshold float64 `json:"threshold,omitempty"` Balance float64 `json:"balance,omitempty"` Rrtp float64 `json:"rrtp,omitempty"` RBalance float64 `json:"rBalance,omitempty"` } type Bet struct { Id *string `json:"id,omitempty"` SlipId *string `json:"slipId,omitempty"` Bettor *Ref `json:"bettor,omitempty"` Origin *Origin `json:"origin,omitempty"` PlacedAt time.Time `json:"placedAt,omitempty"` RoundId *string `json:"roundId,omitempty"` Content *string `json:"content,omitempty"` Stake float64 `json:"stake,omitempty"` Outcome BetOutcome `json:"outcome,omitempty"` Win float64 `json:"win,omitempty"` ProcessingStatus BetProcessingStatus `json:"processingStatus,omitempty"` Validity BetValidity `json:"validity,omitempty"` Results map[string]string `json:"results,omitempty"` Payload map[string]string `json:"payload,omitempty"` } type RecordList[T any] []T type Pool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Rtp float64 `json:"rtp,omitempty"` ReserveRTP float64 `json:"reserveRTP,omitempty"` TotalRTP float64 `json:"totalRTP,omitempty"` } type SuperWinInfo struct { IsActive bool `json:"isActive,omitempty"` Winner *SuperWinWinner `json:"winner,omitempty"` AvailableAmount float64 `json:"availableAmount,omitempty"` AllPrizesAwarded bool `json:"allPrizesAwarded,omitempty"` } type CurrentRoundInfo struct { RoundId *string `json:"roundId,omitempty"` Amount float64 `json:"amount,omitempty"` InertCode *string `json:"inertCode,omitempty"` } type WinnerByCode struct { RoundId *string `json:"roundId,omitempty"` DrawnAtUtc time.Time `json:"drawnAtUtc,omitempty"` SlipId *string `json:"slipId,omitempty"` BetId *string `json:"betId,omitempty"` Code *string `json:"code,omitempty"` Amount float64 `json:"amount,omitempty"` Origin *Origin `json:"origin,omitempty"` Bettor *Ref `json:"bettor,omitempty"` LocationAddressOrBettorInfo *string `json:"locationAddressOrBettorInfo,omitempty"` } type LocalCodePotInfo struct { IsActive bool `json:"isActive,omitempty"` Current *CurrentRoundInfo `json:"current,omitempty"` Winners []WinnerByCode `json:"winners,omitempty"` } type Initialization struct { DataLoadDuration int64 `json:"dataLoadDuration,omitempty"` BetsCollectionsCreationDuration int64 `json:"betsCollectionsCreationDuration,omitempty"` CombinationsOccuranceLookupInitializationDuration int64 `json:"combinationsOccuranceLookupInitializationDuration,omitempty"` } type SequenceGeneration struct { NrOfThreads int `json:"nrOfThreads,omitempty"` NrOfResultsProbed int `json:"nrOfResultsProbed,omitempty"` Duration int64 `json:"duration,omitempty"` AvgSinglePassDuration int64 `json:"avgSinglePassDuration,omitempty"` } type BestFitFinder struct { TargetAmount float64 `json:"targetAmount,omitempty"` AwardedAmount float64 `json:"awardedAmount,omitempty"` Deviation float64 `json:"deviation,omitempty"` DeviationPct float64 `json:"deviationPct,omitempty"` SequenceResultType *string `json:"sequenceResultType,omitempty"` IsJackPot5Drawn bool `json:"isJackPot5Drawn,omitempty"` FilteringPeriod int64 `json:"filteringPeriod,omitempty"` WinCountOrder SortingOrder `json:"winCountOrder,omitempty"` MinAmount float64 `json:"minAmount,omitempty"` MaxAmount float64 `json:"maxAmount,omitempty"` } type QualifiedPool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Coefficient float64 `json:"coefficient,omitempty"` AvailableAmount float64 `json:"availableAmount,omitempty"` AwardedAmount float64 `json:"awardedAmount,omitempty"` TargetBet *Bet `json:"targetBet,omitempty"` } type Purger struct { PrevalentStake float64 `json:"prevalentStake,omitempty"` PoolPurger *string `json:"poolPurger,omitempty"` QualifiedPools []QualifiedPool `json:"qualifiedPools,omitempty"` } type ResponseStatus int const ( ResponseStatusFailure ResponseStatus = 0 ResponseStatusSuccess ResponseStatus = 1 ) type StimulationResponse struct { StimulationId *string `json:"stimulationId,omitempty"` Status ResponseStatus `json:"status,omitempty"` FailureReason *string `json:"failureReason,omitempty"` SlipId *string `json:"slipId,omitempty"` BetId *string `json:"betId,omitempty"` AmountAwarded float64 `json:"amountAwarded,omitempty"` } type SuperWinInfo struct { DurationInMs int64 `json:"durationInMs,omitempty"` Reasoning *string `json:"reasoning,omitempty"` } type HappyHourInfo struct { IsHappyHour bool `json:"isHappyHour,omitempty"` OddsModifier float64 `json:"oddsModifier,omitempty"` RoundPoolBonusPct float64 `json:"roundPoolBonusPct,omitempty"` } type SyphonType int const ( SyphonTypeLocation SyphonType = 0 SyphonTypeBettor SyphonType = 1 ) type Syphon struct { Id *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Type SyphonType `json:"type,omitempty"` NrOfCombinations int `json:"nrOfCombinations,omitempty"` } type SyphonInfo struct { Bettors map[string]Syphon `json:"bettors,omitempty"` Locations map[string]Syphon `json:"locations,omitempty"` HasSyphons bool `json:"hasSyphons,omitempty"` TotalSyphonsInRound int `json:"totalSyphonsInRound,omitempty"` } type Bet struct { IsFound bool `json:"isFound,omitempty"` BetId *string `json:"betId,omitempty"` SlipId *string `json:"slipId,omitempty"` CombStake *interface{} `json:"combStake,omitempty"` } type DrawDiagnostics struct { Id *string `json:"id,omitempty"` InitializationInfo *Initialization `json:"initializationInfo,omitempty"` SequenceGenerationInfo *SequenceGeneration `json:"sequenceGenerationInfo,omitempty"` BestFitFinderInfo *BestFitFinder `json:"bestFitFinderInfo,omitempty"` PurgerInfo *Purger `json:"purgerInfo,omitempty"` Duration int64 `json:"duration,omitempty"` StimulationResponses []StimulationResponse `json:"stimulationResponses,omitempty"` LocalCodePot *LocalCodePotInfo `json:"localCodePot,omitempty"` SuperWin *SuperWinInfo `json:"superWin,omitempty"` HappyHour *HappyHourInfo `json:"happyHour,omitempty"` Reasoning *string `json:"reasoning,omitempty"` Configuration *AccumulatorConfiguration `json:"configuration,omitempty"` SyphonInfo *SyphonInfo `json:"syphonInfo,omitempty"` } // @Route("/qry/rounds/draw/diagnostics") type GetDrawDignostics struct { Id *string `json:"id,omitempty"` } func (GetDrawDignostics) CreateResponse() (r DrawDiagnostics) { return } func (GetDrawDignostics) HttpMethod() string { return "POST" }