/* Options: Date: 2025-11-09 10:56:05 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://s4w2.api.bettor.cc //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetDrawDignostics.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class Ref { public id: string; public val: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BettingApp { public name: string; public version: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RefEx extends Ref { public data: RecordDictionary; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Origin { public application: BettingApp; public ip: string; public organization: RefEx; public region: Ref; public locationGroup: Ref; public location: RefEx; public device: RefEx; public clerk: Ref; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Bet { public id: string; public ordinalOfAvailableRoundToAssignTo: number; public content: string; public stake: number; public payload: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Pool { public id: number; public name: string; public treshold: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum LocationOptimizationLevel { None = 0, Low = 1, Medium = 2, High = 3, } export class ThresholdInterval { public start: number; public end: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum SortingOrder { None = 0, Ascending = 1, Descending = 2, } export class WinCountOrderProbability { public order: SortingOrder; public probability: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PoolCaps { public plusCoef: number; public minusCoef: number; public maxAmountInPrevalentStakes: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PoolSettings { public id: number; public name: string; public isActive: boolean; public contributionToRoundPoolPct: number; public caps: PoolCaps; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum StakeCategory { Pickerel = 0, Fish = 1, Salmon = 2, Tuna = 3, Shark = 4, Whale = 5, None = -1, } export class CategoryThreshold { public category: StakeCategory; public threshold: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class HighRollerSettings { public pools: RecordList; public categoryThresholds: RecordList; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AntiSyphonConfig { public combinationCountPerRoundThresholdPct: number; public excludedLocations: RecordList; public includeRoundPctAsBettorSyphonCriteria: boolean; public isActive: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FraudDetectionConfiguration { public antiSyphon: AntiSyphonConfig; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DebugConfiguration { public logLocationStats: boolean; public logBettorSats: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AccumulatorConfiguration { public pools: RecordList; public prevalentStake: number; public purgeThresholdModifier: number; public locationOptimizationLevel: LocationOptimizationLevel; public jackPot5ThresholdInterval: ThresholdInterval; public deviationCategorySpanInPct: number; public deviationCategoryThresholdAmount: number; public roundPoolCircuitBreakerThreshold: number; public lowWinCountAffinityInPct: number; public winCountOrderAffinity: RecordList; public highRollerSettings: HighRollerSettings; public overflowCoefficientPoolsToRound: boolean; public antiSyphonProtectionOverride: boolean; public fraudDetectionConfig: FraudDetectionConfiguration; public debugConfig: DebugConfiguration; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Pool { public id: number; public name: string; public coefficient: number; public rtp: number; public threshold: number; public balance: number; public rrtp: number; public rBalance: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Bet { public id: string; public slipId: string; public bettor: Ref; public origin: Origin; public placedAt: string; public roundId: string; public content: string; public stake: number; public outcome: BetOutcome; public win: number; public processingStatus: BetProcessingStatus; public validity: BetValidity; public results: { [index:string]: string; }; public payload: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RecordList extends Array { public constructor(init?: Partial>) { super(); (Object as any).assign(this, init); } } export class Pool { public id: number; public name: string; public rtp: number; public reserveRTP: number; public totalRTP: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SuperWinInfo { public isActive: boolean; public winner: SuperWinWinner; public availableAmount: number; public allPrizesAwarded: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CurrentRoundInfo { public roundId: string; public amount: number; public inertCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class WinnerByCode { public roundId: string; public drawnAtUtc: string; public slipId: string; public betId: string; public code: string; public amount: number; public origin: Origin; public bettor: Ref; public locationAddressOrBettorInfo: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class LocalCodePotInfo { public isActive: boolean; public current: CurrentRoundInfo; public winners: WinnerByCode[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Initialization { public dataLoadDuration: number; public betsCollectionsCreationDuration: number; public combinationsOccuranceLookupInitializationDuration: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SequenceGeneration { public nrOfThreads: number; public nrOfResultsProbed: number; public duration: number; public avgSinglePassDuration: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BestFitFinder { public targetAmount: number; public awardedAmount: number; public deviation: number; public deviationPct: number; public sequenceResultType: string; public isJackPot5Drawn: boolean; public filteringPeriod: number; public winCountOrder: SortingOrder; public minAmount: number; public maxAmount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class QualifiedPool { public id: number; public name: string; public coefficient: number; public availableAmount: number; public awardedAmount: number; public targetBet: Bet; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Purger { public prevalentStake: number; public poolPurger: string; public qualifiedPools: QualifiedPool[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ResponseStatus { Failure = 0, Success = 1, } export class StimulationResponse { public stimulationId: string; public status: ResponseStatus; public failureReason: string; public slipId: string; public betId: string; public amountAwarded: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SuperWinInfo { public durationInMs: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class HappyHourInfo { public isHappyHour: boolean; public oddsModifier: number; public roundPoolBonusPct: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum SyphonType { Location = 0, Bettor = 1, } export class Syphon { public id: string; public name: string; public type: SyphonType; public nrOfCombinations: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SyphonInfo { public bettors: { [index:string]: Syphon; }; public locations: { [index:string]: Syphon; }; public hasSyphons: boolean; public totalSyphonsInRound: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Dictionary { [Key: string]: T; } export class RecordDictionary extends Dictionary { public constructor(init?: Partial>) { super(); (Object as any).assign(this, init); } } export class Bet { public isFound: boolean; public betId: string; public slipId: string; public combStake: Object; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DrawDiagnostics { public id: string; public initializationInfo: Initialization; public sequenceGenerationInfo: SequenceGeneration; public bestFitFinderInfo: BestFitFinder; public purgerInfo: Purger; public duration: number; public stimulationResponses: StimulationResponse[]; public localCodePot: LocalCodePotInfo; public superWin: SuperWinInfo; public happyHour: HappyHourInfo; public reasoning: string; public configuration: AccumulatorConfiguration; public syphonInfo: SyphonInfo; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/qry/rounds/draw/diagnostics") export class GetDrawDignostics implements IReturn { public id: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'GetDrawDignostics'; } public getMethod() { return 'POST'; } public createResponse() { return new DrawDiagnostics(); } }