Six4Win.WebApi

<back to all web services

GetDrawDignostics

The following routes are available for this service:
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

Go GetDrawDignostics DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + 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
	}
}