| All Verbs | /qry/rounds/draw/diagnostics |
|---|
<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class Initialization implements JsonSerializable
{
public function __construct(
/** @var int */
public int $dataLoadDuration=0,
/** @var int */
public int $betsCollectionsCreationDuration=0,
/** @var int */
public int $combinationsOccuranceLookupInitializationDuration=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['dataLoadDuration'])) $this->dataLoadDuration = $o['dataLoadDuration'];
if (isset($o['betsCollectionsCreationDuration'])) $this->betsCollectionsCreationDuration = $o['betsCollectionsCreationDuration'];
if (isset($o['combinationsOccuranceLookupInitializationDuration'])) $this->combinationsOccuranceLookupInitializationDuration = $o['combinationsOccuranceLookupInitializationDuration'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->dataLoadDuration)) $o['dataLoadDuration'] = $this->dataLoadDuration;
if (isset($this->betsCollectionsCreationDuration)) $o['betsCollectionsCreationDuration'] = $this->betsCollectionsCreationDuration;
if (isset($this->combinationsOccuranceLookupInitializationDuration)) $o['combinationsOccuranceLookupInitializationDuration'] = $this->combinationsOccuranceLookupInitializationDuration;
return empty($o) ? new class(){} : $o;
}
}
class SequenceGeneration implements JsonSerializable
{
public function __construct(
/** @var int */
public int $nrOfThreads=0,
/** @var int */
public int $nrOfResultsProbed=0,
/** @var int */
public int $duration=0,
/** @var int */
public int $avgSinglePassDuration=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['nrOfThreads'])) $this->nrOfThreads = $o['nrOfThreads'];
if (isset($o['nrOfResultsProbed'])) $this->nrOfResultsProbed = $o['nrOfResultsProbed'];
if (isset($o['duration'])) $this->duration = $o['duration'];
if (isset($o['avgSinglePassDuration'])) $this->avgSinglePassDuration = $o['avgSinglePassDuration'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->nrOfThreads)) $o['nrOfThreads'] = $this->nrOfThreads;
if (isset($this->nrOfResultsProbed)) $o['nrOfResultsProbed'] = $this->nrOfResultsProbed;
if (isset($this->duration)) $o['duration'] = $this->duration;
if (isset($this->avgSinglePassDuration)) $o['avgSinglePassDuration'] = $this->avgSinglePassDuration;
return empty($o) ? new class(){} : $o;
}
}
enum SortingOrder : int
{
case None = 0;
case Ascending = 1;
case Descending = 2;
}
class BestFitFinder implements JsonSerializable
{
public function __construct(
/** @var float */
public float $targetAmount=0.0,
/** @var float */
public float $awardedAmount=0.0,
/** @var float */
public float $deviation=0.0,
/** @var float */
public float $deviationPct=0.0,
/** @var string|null */
public ?string $sequenceResultType=null,
/** @var bool|null */
public ?bool $isJackPot5Drawn=null,
/** @var int */
public int $filteringPeriod=0,
/** @var SortingOrder|null */
public ?SortingOrder $winCountOrder=null,
/** @var float */
public float $minAmount=0.0,
/** @var float */
public float $maxAmount=0.0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['targetAmount'])) $this->targetAmount = $o['targetAmount'];
if (isset($o['awardedAmount'])) $this->awardedAmount = $o['awardedAmount'];
if (isset($o['deviation'])) $this->deviation = $o['deviation'];
if (isset($o['deviationPct'])) $this->deviationPct = $o['deviationPct'];
if (isset($o['sequenceResultType'])) $this->sequenceResultType = $o['sequenceResultType'];
if (isset($o['isJackPot5Drawn'])) $this->isJackPot5Drawn = $o['isJackPot5Drawn'];
if (isset($o['filteringPeriod'])) $this->filteringPeriod = $o['filteringPeriod'];
if (isset($o['winCountOrder'])) $this->winCountOrder = JsonConverters::from('SortingOrder', $o['winCountOrder']);
if (isset($o['minAmount'])) $this->minAmount = $o['minAmount'];
if (isset($o['maxAmount'])) $this->maxAmount = $o['maxAmount'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->targetAmount)) $o['targetAmount'] = $this->targetAmount;
if (isset($this->awardedAmount)) $o['awardedAmount'] = $this->awardedAmount;
if (isset($this->deviation)) $o['deviation'] = $this->deviation;
if (isset($this->deviationPct)) $o['deviationPct'] = $this->deviationPct;
if (isset($this->sequenceResultType)) $o['sequenceResultType'] = $this->sequenceResultType;
if (isset($this->isJackPot5Drawn)) $o['isJackPot5Drawn'] = $this->isJackPot5Drawn;
if (isset($this->filteringPeriod)) $o['filteringPeriod'] = $this->filteringPeriod;
if (isset($this->winCountOrder)) $o['winCountOrder'] = JsonConverters::to('SortingOrder', $this->winCountOrder);
if (isset($this->minAmount)) $o['minAmount'] = $this->minAmount;
if (isset($this->maxAmount)) $o['maxAmount'] = $this->maxAmount;
return empty($o) ? new class(){} : $o;
}
}
class Bet implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $isFound=null,
/** @var string|null */
public ?string $betId=null,
/** @var string|null */
public ?string $slipId=null,
/** @var Object|null */
public ?Object $combStake=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['isFound'])) $this->isFound = $o['isFound'];
if (isset($o['betId'])) $this->betId = $o['betId'];
if (isset($o['slipId'])) $this->slipId = $o['slipId'];
if (isset($o['combStake'])) $this->combStake = JsonConverters::from('Object', $o['combStake']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->isFound)) $o['isFound'] = $this->isFound;
if (isset($this->betId)) $o['betId'] = $this->betId;
if (isset($this->slipId)) $o['slipId'] = $this->slipId;
if (isset($this->combStake)) $o['combStake'] = JsonConverters::to('Object', $this->combStake);
return empty($o) ? new class(){} : $o;
}
}
class QualifiedPool implements JsonSerializable
{
public function __construct(
/** @var int */
public int $id=0,
/** @var string|null */
public ?string $name=null,
/** @var float */
public float $coefficient=0.0,
/** @var float */
public float $availableAmount=0.0,
/** @var float */
public float $awardedAmount=0.0,
/** @var Bet|null */
public ?Bet $targetBet=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['name'])) $this->name = $o['name'];
if (isset($o['coefficient'])) $this->coefficient = $o['coefficient'];
if (isset($o['availableAmount'])) $this->availableAmount = $o['availableAmount'];
if (isset($o['awardedAmount'])) $this->awardedAmount = $o['awardedAmount'];
if (isset($o['targetBet'])) $this->targetBet = JsonConverters::from('Bet', $o['targetBet']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->name)) $o['name'] = $this->name;
if (isset($this->coefficient)) $o['coefficient'] = $this->coefficient;
if (isset($this->availableAmount)) $o['availableAmount'] = $this->availableAmount;
if (isset($this->awardedAmount)) $o['awardedAmount'] = $this->awardedAmount;
if (isset($this->targetBet)) $o['targetBet'] = JsonConverters::to('Bet', $this->targetBet);
return empty($o) ? new class(){} : $o;
}
}
class Purger implements JsonSerializable
{
public function __construct(
/** @var float */
public float $prevalentStake=0.0,
/** @var string|null */
public ?string $poolPurger=null,
/** @var array<QualifiedPool>|null */
public ?array $qualifiedPools=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['prevalentStake'])) $this->prevalentStake = $o['prevalentStake'];
if (isset($o['poolPurger'])) $this->poolPurger = $o['poolPurger'];
if (isset($o['qualifiedPools'])) $this->qualifiedPools = JsonConverters::fromArray('QualifiedPool', $o['qualifiedPools']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->prevalentStake)) $o['prevalentStake'] = $this->prevalentStake;
if (isset($this->poolPurger)) $o['poolPurger'] = $this->poolPurger;
if (isset($this->qualifiedPools)) $o['qualifiedPools'] = JsonConverters::toArray('QualifiedPool', $this->qualifiedPools);
return empty($o) ? new class(){} : $o;
}
}
enum ResponseStatus : int
{
case Failure = 0;
case Success = 1;
}
class StimulationResponse implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $stimulationId=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $status=null,
/** @var string|null */
public ?string $failureReason=null,
/** @var string|null */
public ?string $slipId=null,
/** @var string|null */
public ?string $betId=null,
/** @var float */
public float $amountAwarded=0.0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['stimulationId'])) $this->stimulationId = $o['stimulationId'];
if (isset($o['status'])) $this->status = JsonConverters::from('ResponseStatus', $o['status']);
if (isset($o['failureReason'])) $this->failureReason = $o['failureReason'];
if (isset($o['slipId'])) $this->slipId = $o['slipId'];
if (isset($o['betId'])) $this->betId = $o['betId'];
if (isset($o['amountAwarded'])) $this->amountAwarded = $o['amountAwarded'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->stimulationId)) $o['stimulationId'] = $this->stimulationId;
if (isset($this->status)) $o['status'] = JsonConverters::to('ResponseStatus', $this->status);
if (isset($this->failureReason)) $o['failureReason'] = $this->failureReason;
if (isset($this->slipId)) $o['slipId'] = $this->slipId;
if (isset($this->betId)) $o['betId'] = $this->betId;
if (isset($this->amountAwarded)) $o['amountAwarded'] = $this->amountAwarded;
return empty($o) ? new class(){} : $o;
}
}
class CurrentRoundInfo implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $roundId=null,
/** @var float */
public float $amount=0.0,
/** @var string|null */
public ?string $inertCode=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['roundId'])) $this->roundId = $o['roundId'];
if (isset($o['amount'])) $this->amount = $o['amount'];
if (isset($o['inertCode'])) $this->inertCode = $o['inertCode'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->roundId)) $o['roundId'] = $this->roundId;
if (isset($this->amount)) $o['amount'] = $this->amount;
if (isset($this->inertCode)) $o['inertCode'] = $this->inertCode;
return empty($o) ? new class(){} : $o;
}
}
class BettingApp implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $name=null,
/** @var string|null */
public ?string $version=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['name'])) $this->name = $o['name'];
if (isset($o['version'])) $this->version = $o['version'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->name)) $o['name'] = $this->name;
if (isset($this->version)) $o['version'] = $this->version;
return empty($o) ? new class(){} : $o;
}
}
class Ref implements JsonSerializable
{
public function __construct(
/** @var string */
public string $id='',
/** @var string */
public string $val=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['val'])) $this->val = $o['val'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->val)) $o['val'] = $this->val;
return empty($o) ? new class(){} : $o;
}
}
class RefEx extends Ref implements JsonSerializable
{
/**
* @param string $id
* @param string $val
*/
public function __construct(
string $id='',
string $val='',
/** @var RecordDictionary2<string, string>|null */
public ?RecordDictionary2 $data=null
) {
parent::__construct($id,$val);
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['data'])) $this->data = JsonConverters::from(JsonConverters::context('RecordDictionary2',genericArgs:['string','string']), $o['data']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->data)) $o['data'] = JsonConverters::to(JsonConverters::context('RecordDictionary2',genericArgs:['string','string']), $this->data);
return empty($o) ? new class(){} : $o;
}
}
class Origin implements JsonSerializable
{
public function __construct(
/** @var BettingApp|null */
public ?BettingApp $application=null,
/** @var string|null */
public ?string $ip=null,
/** @var RefEx|null */
public ?RefEx $organization=null,
/** @var Ref|null */
public ?Ref $region=null,
/** @var Ref|null */
public ?Ref $locationGroup=null,
/** @var RefEx|null */
public ?RefEx $location=null,
/** @var RefEx|null */
public ?RefEx $device=null,
/** @var Ref|null */
public ?Ref $clerk=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['application'])) $this->application = JsonConverters::from('BettingApp', $o['application']);
if (isset($o['ip'])) $this->ip = $o['ip'];
if (isset($o['organization'])) $this->organization = JsonConverters::from('RefEx', $o['organization']);
if (isset($o['region'])) $this->region = JsonConverters::from('Ref', $o['region']);
if (isset($o['locationGroup'])) $this->locationGroup = JsonConverters::from('Ref', $o['locationGroup']);
if (isset($o['location'])) $this->location = JsonConverters::from('RefEx', $o['location']);
if (isset($o['device'])) $this->device = JsonConverters::from('RefEx', $o['device']);
if (isset($o['clerk'])) $this->clerk = JsonConverters::from('Ref', $o['clerk']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->application)) $o['application'] = JsonConverters::to('BettingApp', $this->application);
if (isset($this->ip)) $o['ip'] = $this->ip;
if (isset($this->organization)) $o['organization'] = JsonConverters::to('RefEx', $this->organization);
if (isset($this->region)) $o['region'] = JsonConverters::to('Ref', $this->region);
if (isset($this->locationGroup)) $o['locationGroup'] = JsonConverters::to('Ref', $this->locationGroup);
if (isset($this->location)) $o['location'] = JsonConverters::to('RefEx', $this->location);
if (isset($this->device)) $o['device'] = JsonConverters::to('RefEx', $this->device);
if (isset($this->clerk)) $o['clerk'] = JsonConverters::to('Ref', $this->clerk);
return empty($o) ? new class(){} : $o;
}
}
class WinnerByCode implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $roundId=null,
/** @var DateTime */
public DateTime $drawnAtUtc=new DateTime(),
/** @var string|null */
public ?string $slipId=null,
/** @var string|null */
public ?string $betId=null,
/** @var string|null */
public ?string $code=null,
/** @var float */
public float $amount=0.0,
/** @var Origin|null */
public ?Origin $origin=null,
/** @var Ref|null */
public ?Ref $bettor=null,
/** @var string|null */
public ?string $locationAddressOrBettorInfo=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['roundId'])) $this->roundId = $o['roundId'];
if (isset($o['drawnAtUtc'])) $this->drawnAtUtc = JsonConverters::from('DateTime', $o['drawnAtUtc']);
if (isset($o['slipId'])) $this->slipId = $o['slipId'];
if (isset($o['betId'])) $this->betId = $o['betId'];
if (isset($o['code'])) $this->code = $o['code'];
if (isset($o['amount'])) $this->amount = $o['amount'];
if (isset($o['origin'])) $this->origin = JsonConverters::from('Origin', $o['origin']);
if (isset($o['bettor'])) $this->bettor = JsonConverters::from('Ref', $o['bettor']);
if (isset($o['locationAddressOrBettorInfo'])) $this->locationAddressOrBettorInfo = $o['locationAddressOrBettorInfo'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->roundId)) $o['roundId'] = $this->roundId;
if (isset($this->drawnAtUtc)) $o['drawnAtUtc'] = JsonConverters::to('DateTime', $this->drawnAtUtc);
if (isset($this->slipId)) $o['slipId'] = $this->slipId;
if (isset($this->betId)) $o['betId'] = $this->betId;
if (isset($this->code)) $o['code'] = $this->code;
if (isset($this->amount)) $o['amount'] = $this->amount;
if (isset($this->origin)) $o['origin'] = JsonConverters::to('Origin', $this->origin);
if (isset($this->bettor)) $o['bettor'] = JsonConverters::to('Ref', $this->bettor);
if (isset($this->locationAddressOrBettorInfo)) $o['locationAddressOrBettorInfo'] = $this->locationAddressOrBettorInfo;
return empty($o) ? new class(){} : $o;
}
}
class LocalCodePotInfo implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $isActive=null,
/** @var CurrentRoundInfo|null */
public ?CurrentRoundInfo $current=null,
/** @var array<WinnerByCode>|null */
public ?array $winners=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['isActive'])) $this->isActive = $o['isActive'];
if (isset($o['current'])) $this->current = JsonConverters::from('CurrentRoundInfo', $o['current']);
if (isset($o['winners'])) $this->winners = JsonConverters::fromArray('WinnerByCode', $o['winners']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->isActive)) $o['isActive'] = $this->isActive;
if (isset($this->current)) $o['current'] = JsonConverters::to('CurrentRoundInfo', $this->current);
if (isset($this->winners)) $o['winners'] = JsonConverters::toArray('WinnerByCode', $this->winners);
return empty($o) ? new class(){} : $o;
}
}
class SuperWinInfo implements JsonSerializable
{
public function __construct(
/** @var int */
public int $durationInMs=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['durationInMs'])) $this->durationInMs = $o['durationInMs'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->durationInMs)) $o['durationInMs'] = $this->durationInMs;
return empty($o) ? new class(){} : $o;
}
}
class HappyHourInfo implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $isHappyHour=null,
/** @var float */
public float $oddsModifier=0.0,
/** @var float */
public float $roundPoolBonusPct=0.0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['isHappyHour'])) $this->isHappyHour = $o['isHappyHour'];
if (isset($o['oddsModifier'])) $this->oddsModifier = $o['oddsModifier'];
if (isset($o['roundPoolBonusPct'])) $this->roundPoolBonusPct = $o['roundPoolBonusPct'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->isHappyHour)) $o['isHappyHour'] = $this->isHappyHour;
if (isset($this->oddsModifier)) $o['oddsModifier'] = $this->oddsModifier;
if (isset($this->roundPoolBonusPct)) $o['roundPoolBonusPct'] = $this->roundPoolBonusPct;
return empty($o) ? new class(){} : $o;
}
}
class AccumulatorConfiguration extends AccumulatorConfiguration implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $id=null,
/** @var DateTime */
public DateTime $updatedAt=new DateTime()
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['updatedAt'])) $this->updatedAt = JsonConverters::from('DateTime', $o['updatedAt']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->updatedAt)) $o['updatedAt'] = JsonConverters::to('DateTime', $this->updatedAt);
return empty($o) ? new class(){} : $o;
}
}
enum SyphonType : int
{
case Location = 0;
case Bettor = 1;
}
class Syphon implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $id=null,
/** @var string|null */
public ?string $name=null,
/** @var SyphonType|null */
public ?SyphonType $type=null,
/** @var int */
public int $nrOfCombinations=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['name'])) $this->name = $o['name'];
if (isset($o['type'])) $this->type = JsonConverters::from('SyphonType', $o['type']);
if (isset($o['nrOfCombinations'])) $this->nrOfCombinations = $o['nrOfCombinations'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->name)) $o['name'] = $this->name;
if (isset($this->type)) $o['type'] = JsonConverters::to('SyphonType', $this->type);
if (isset($this->nrOfCombinations)) $o['nrOfCombinations'] = $this->nrOfCombinations;
return empty($o) ? new class(){} : $o;
}
}
class SyphonInfo implements JsonSerializable
{
public function __construct(
/** @var array<string,Syphon>|null */
public ?array $bettors=null,
/** @var array<string,Syphon>|null */
public ?array $locations=null,
/** @var bool|null */
public ?bool $hasSyphons=null,
/** @var int */
public int $totalSyphonsInRound=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['bettors'])) $this->bettors = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','Syphon']), $o['bettors']);
if (isset($o['locations'])) $this->locations = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','Syphon']), $o['locations']);
if (isset($o['hasSyphons'])) $this->hasSyphons = $o['hasSyphons'];
if (isset($o['totalSyphonsInRound'])) $this->totalSyphonsInRound = $o['totalSyphonsInRound'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->bettors)) $o['bettors'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','Syphon']), $this->bettors);
if (isset($this->locations)) $o['locations'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','Syphon']), $this->locations);
if (isset($this->hasSyphons)) $o['hasSyphons'] = $this->hasSyphons;
if (isset($this->totalSyphonsInRound)) $o['totalSyphonsInRound'] = $this->totalSyphonsInRound;
return empty($o) ? new class(){} : $o;
}
}
class DrawDiagnostics implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $id=null,
/** @var Initialization|null */
public ?Initialization $initializationInfo=null,
/** @var SequenceGeneration|null */
public ?SequenceGeneration $sequenceGenerationInfo=null,
/** @var BestFitFinder|null */
public ?BestFitFinder $bestFitFinderInfo=null,
/** @var Purger|null */
public ?Purger $purgerInfo=null,
/** @var int */
public int $duration=0,
/** @var array<StimulationResponse>|null */
public ?array $stimulationResponses=null,
/** @var LocalCodePotInfo|null */
public ?LocalCodePotInfo $localCodePot=null,
/** @var SuperWinInfo|null */
public ?SuperWinInfo $superWin=null,
/** @var HappyHourInfo|null */
public ?HappyHourInfo $happyHour=null,
/** @var string|null */
public ?string $reasoning=null,
/** @var AccumulatorConfiguration|null */
public ?AccumulatorConfiguration $configuration=null,
/** @var SyphonInfo|null */
public ?SyphonInfo $syphonInfo=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['initializationInfo'])) $this->initializationInfo = JsonConverters::from('Initialization', $o['initializationInfo']);
if (isset($o['sequenceGenerationInfo'])) $this->sequenceGenerationInfo = JsonConverters::from('SequenceGeneration', $o['sequenceGenerationInfo']);
if (isset($o['bestFitFinderInfo'])) $this->bestFitFinderInfo = JsonConverters::from('BestFitFinder', $o['bestFitFinderInfo']);
if (isset($o['purgerInfo'])) $this->purgerInfo = JsonConverters::from('Purger', $o['purgerInfo']);
if (isset($o['duration'])) $this->duration = $o['duration'];
if (isset($o['stimulationResponses'])) $this->stimulationResponses = JsonConverters::fromArray('StimulationResponse', $o['stimulationResponses']);
if (isset($o['localCodePot'])) $this->localCodePot = JsonConverters::from('LocalCodePotInfo', $o['localCodePot']);
if (isset($o['superWin'])) $this->superWin = JsonConverters::from('SuperWinInfo', $o['superWin']);
if (isset($o['happyHour'])) $this->happyHour = JsonConverters::from('HappyHourInfo', $o['happyHour']);
if (isset($o['reasoning'])) $this->reasoning = $o['reasoning'];
if (isset($o['configuration'])) $this->configuration = JsonConverters::from('AccumulatorConfiguration', $o['configuration']);
if (isset($o['syphonInfo'])) $this->syphonInfo = JsonConverters::from('SyphonInfo', $o['syphonInfo']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->initializationInfo)) $o['initializationInfo'] = JsonConverters::to('Initialization', $this->initializationInfo);
if (isset($this->sequenceGenerationInfo)) $o['sequenceGenerationInfo'] = JsonConverters::to('SequenceGeneration', $this->sequenceGenerationInfo);
if (isset($this->bestFitFinderInfo)) $o['bestFitFinderInfo'] = JsonConverters::to('BestFitFinder', $this->bestFitFinderInfo);
if (isset($this->purgerInfo)) $o['purgerInfo'] = JsonConverters::to('Purger', $this->purgerInfo);
if (isset($this->duration)) $o['duration'] = $this->duration;
if (isset($this->stimulationResponses)) $o['stimulationResponses'] = JsonConverters::toArray('StimulationResponse', $this->stimulationResponses);
if (isset($this->localCodePot)) $o['localCodePot'] = JsonConverters::to('LocalCodePotInfo', $this->localCodePot);
if (isset($this->superWin)) $o['superWin'] = JsonConverters::to('SuperWinInfo', $this->superWin);
if (isset($this->happyHour)) $o['happyHour'] = JsonConverters::to('HappyHourInfo', $this->happyHour);
if (isset($this->reasoning)) $o['reasoning'] = $this->reasoning;
if (isset($this->configuration)) $o['configuration'] = JsonConverters::to('AccumulatorConfiguration', $this->configuration);
if (isset($this->syphonInfo)) $o['syphonInfo'] = JsonConverters::to('SyphonInfo', $this->syphonInfo);
return empty($o) ? new class(){} : $o;
}
}
class GetDrawDignostics implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $id=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template TKey
* @template TVal
* @template array of TKey
* @template array1 of TVal
*/
class RecordDictionary2 extends array implements JsonSerializable
{
public array $genericArgs = [];
public static function create(array $genericArgs=[]): RecordDictionary2 {
$to = new RecordDictionary2();
$to->genericArgs = $genericArgs;
return $to;
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
return empty($o) ? new class(){} : $o;
}
}
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: s4w2.api.bettor.cc
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
},
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
}
],
includeRoundPctAsBettorSyphonCriteria: False,
isActive: False
}
},
debugConfig:
{
logLocationStats: False,
logBettorSats: False
}
},
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
}
}