| All Verbs | /qry/rounds/draw/diagnostics |
|---|
package dtos
import (
"time"
)
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 SortingOrder int
const (
SortingOrderNone SortingOrder = 0
SortingOrderAscending SortingOrder = 1
SortingOrderDescending SortingOrder = 2
)
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 Bet struct {
IsFound bool `json:"isFound,omitempty"`
BetId *string `json:"betId,omitempty"`
SlipId *string `json:"slipId,omitempty"`
CombStake *interface{} `json:"combStake,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 CurrentRoundInfo struct {
RoundId *string `json:"roundId,omitempty"`
Amount float64 `json:"amount,omitempty"`
InertCode *string `json:"inertCode,omitempty"`
}
type BettingApp struct {
Name *string `json:"name,omitempty"`
Version *string `json:"version,omitempty"`
}
type Ref struct {
Id string `json:"id"`
Val string `json:"val"`
}
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 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 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 AccumulatorConfiguration struct {
AccumulatorConfiguration
Id *string `json:"id,omitempty"`
UpdatedAt time.Time `json:"updatedAt,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 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"`
}
type GetDrawDignostics struct {
Id *string `json:"id,omitempty"`
}
type RecordDictionary[TKey any, TVal any] map[TKey]TVal
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /qry/rounds/draw/diagnostics HTTP/1.1
Host: s4w1.api.bettor.webhop.biz
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
id: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
id: String,
initializationInfo:
{
dataLoadDuration: 0,
betsCollectionsCreationDuration: 0,
combinationsOccuranceLookupInitializationDuration: 0
},
sequenceGenerationInfo:
{
nrOfThreads: 0,
nrOfResultsProbed: 0,
duration: 0,
avgSinglePassDuration: 0
},
bestFitFinderInfo:
{
targetAmount: 0,
awardedAmount: 0,
deviation: 0,
deviationPct: 0,
sequenceResultType: String,
isJackPot5Drawn: False,
filteringPeriod: 0,
winCountOrder: 0,
minAmount: 0,
maxAmount: 0
},
purgerInfo:
{
prevalentStake: 0,
poolPurger: String,
qualifiedPools:
[
{
id: 0,
name: String,
coefficient: 0,
availableAmount: 0,
awardedAmount: 0,
targetBet:
{
isFound: False,
betId: String,
slipId: String,
combStake: {}
}
}
]
},
duration: 0,
stimulationResponses:
[
{
stimulationId: String,
status: 0,
failureReason: String,
slipId: String,
betId: String,
amountAwarded: 0
}
],
localCodePot:
{
durationInMs: 0
},
superWin:
{
durationInMs: 0,
reasoning: String
},
happyHour:
{
isHappyHour: False,
oddsModifier: 0,
roundPoolBonusPct: 0
},
reasoning: String,
configuration:
{
pools:
[
{
id: 0,
name: String,
rtp: 0,
reserveRTP: 0,
totalRTP: 0
}
],
prevalentStake: 0,
purgeThresholdModifier: 0,
locationOptimizationLevel: 0,
jackPot5ThresholdInterval:
{
start: 0,
end: 0
},
deviationCategorySpanInPct: 0,
deviationCategoryThresholdAmount: 0,
roundPoolCircuitBreakerThreshold: 0,
lowWinCountAffinityInPct: 0,
winCountOrderAffinity:
[
{
order: 0,
probability: 0
}
],
highRollerSettings:
{
pools:
[
{
id: 0,
name: String,
isActive: False,
contributionToRoundPoolPct: 0,
caps:
{
plusCoef: 0,
minusCoef: 0,
maxAmountInPrevalentStakes: 0
}
}
],
categoryThresholds:
[
{
category: 0,
threshold: 0
}
]
},
overflowCoefficientPoolsToRound: False,
antiSyphonProtectionOverride: False,
fraudDetectionConfig:
{
antiSyphon:
{
combinationCountPerRoundThresholdPct: 0,
excludedLocations:
[
{
id: String,
val: String
}
],
blacklists:
{
locations:
[
{
id: String,
val: String
}
],
players:
[
{
id: String,
val: String
}
]
},
includeRoundPctAsBettorSyphonCriteria: False,
isActive: False
}
},
debugConfig:
{
logLocationStats: False,
logBettorStats: False
},
jP5WinnerCooldownPolicy:
{
isActive: False,
cooldownIntervalInDays: 0
}
},
syphonInfo:
{
bettors:
{
String:
{
id: String,
name: String,
type: 0,
nrOfCombinations: 0
}
},
locations:
{
String:
{
id: String,
name: String,
type: 0,
nrOfCombinations: 0
}
},
hasSyphons: True,
totalSyphonsInRound: 2
}
}