| All Verbs | /qry/rounds/draw/diagnostics |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Initialization:
data_load_duration: int = 0
bets_collections_creation_duration: int = 0
combinations_occurance_lookup_initialization_duration: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SequenceGeneration:
nr_of_threads: int = 0
nr_of_results_probed: int = 0
duration: int = 0
avg_single_pass_duration: int = 0
class SortingOrder(IntEnum):
NONE = 0
ASCENDING = 1
DESCENDING = 2
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BestFitFinder:
target_amount: Decimal = decimal.Decimal(0)
awarded_amount: Decimal = decimal.Decimal(0)
deviation: Decimal = decimal.Decimal(0)
deviation_pct: Decimal = decimal.Decimal(0)
sequence_result_type: Optional[str] = None
is_jack_pot5_drawn: bool = False
filtering_period: int = 0
win_count_order: Optional[SortingOrder] = None
min_amount: Decimal = decimal.Decimal(0)
max_amount: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Bet:
is_found: bool = False
bet_id: Optional[str] = None
slip_id: Optional[str] = None
comb_stake: Optional[Object] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QualifiedPool:
id: int = 0
name: Optional[str] = None
coefficient: Decimal = decimal.Decimal(0)
available_amount: Decimal = decimal.Decimal(0)
awarded_amount: Decimal = decimal.Decimal(0)
target_bet: Optional[Bet] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Purger:
prevalent_stake: Decimal = decimal.Decimal(0)
pool_purger: Optional[str] = None
qualified_pools: Optional[List[QualifiedPool]] = None
class ResponseStatus(IntEnum):
FAILURE = 0
SUCCESS = 1
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StimulationResponse:
stimulation_id: Optional[str] = None
status: Optional[ResponseStatus] = None
failure_reason: Optional[str] = None
slip_id: Optional[str] = None
bet_id: Optional[str] = None
amount_awarded: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CurrentRoundInfo:
round_id: Optional[str] = None
amount: Decimal = decimal.Decimal(0)
inert_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BettingApp:
name: Optional[str] = None
version: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Ref:
id: Optional[str] = None
val: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RefEx(Ref):
data: Optional[RecordDictionary[str, str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Origin:
application: Optional[BettingApp] = None
ip: Optional[str] = None
organization: Optional[RefEx] = None
region: Optional[Ref] = None
location_group: Optional[Ref] = None
location: Optional[RefEx] = None
device: Optional[RefEx] = None
clerk: Optional[Ref] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WinnerByCode:
round_id: Optional[str] = None
drawn_at_utc: datetime.datetime = datetime.datetime(1, 1, 1)
slip_id: Optional[str] = None
bet_id: Optional[str] = None
code: Optional[str] = None
amount: Decimal = decimal.Decimal(0)
origin: Optional[Origin] = None
bettor: Optional[Ref] = None
location_address_or_bettor_info: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LocalCodePotInfo:
is_active: bool = False
current: Optional[CurrentRoundInfo] = None
winners: Optional[List[WinnerByCode]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SuperWinInfo:
duration_in_ms: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HappyHourInfo:
is_happy_hour: bool = False
odds_modifier: Decimal = decimal.Decimal(0)
round_pool_bonus_pct: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AccumulatorConfiguration(AccumulatorConfiguration):
id: Optional[str] = None
updated_at: datetime.datetime = datetime.datetime(1, 1, 1)
class SyphonType(IntEnum):
LOCATION = 0
BETTOR = 1
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Syphon:
id: Optional[str] = None
name: Optional[str] = None
type: Optional[SyphonType] = None
nr_of_combinations: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SyphonInfo:
bettors: Optional[Dict[str, Syphon]] = None
locations: Optional[Dict[str, Syphon]] = None
has_syphons: bool = False
total_syphons_in_round: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DrawDiagnostics:
id: Optional[str] = None
initialization_info: Optional[Initialization] = None
sequence_generation_info: Optional[SequenceGeneration] = None
best_fit_finder_info: Optional[BestFitFinder] = None
purger_info: Optional[Purger] = None
duration: int = 0
stimulation_responses: Optional[List[StimulationResponse]] = None
local_code_pot: Optional[LocalCodePotInfo] = None
super_win: Optional[SuperWinInfo] = None
happy_hour: Optional[HappyHourInfo] = None
reasoning: Optional[str] = None
configuration: Optional[AccumulatorConfiguration] = None
syphon_info: Optional[SyphonInfo] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetDrawDignostics:
id: Optional[str] = None
TKey = TypeVar('TKey')
TVal = TypeVar('TVal')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecordDictionary(Generic[TKey, TVal], Dict[TKey,TVal]):
pass
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
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: application/xml
Content-Type: application/xml
Content-Length: length
<GetDrawDignostics xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Six4Win.WebApi.ServiceModel">
<Id>String</Id>
</GetDrawDignostics>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<DrawDiagnostics xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Six4Win.ReadModel">
<BestFitFinderInfo>
<AwardedAmount>0</AwardedAmount>
<Deviation>0</Deviation>
<DeviationPct>0</DeviationPct>
<FilteringPeriod>0</FilteringPeriod>
<IsJackPot5Drawn>false</IsJackPot5Drawn>
<MaxAmount>0</MaxAmount>
<MinAmount>0</MinAmount>
<SequenceResultType>String</SequenceResultType>
<TargetAmount>0</TargetAmount>
<WinCountOrder>None</WinCountOrder>
</BestFitFinderInfo>
<Configuration xmlns:d2p1="http://schemas.datacontract.org/2004/07/Six4Win">
<d2p1:AntiSyphonProtectionOverride>false</d2p1:AntiSyphonProtectionOverride>
<d2p1:DebugConfig>
<d2p1:LogBettorSats>false</d2p1:LogBettorSats>
<d2p1:LogLocationStats>false</d2p1:LogLocationStats>
</d2p1:DebugConfig>
<d2p1:DeviationCategorySpanInPct>0</d2p1:DeviationCategorySpanInPct>
<d2p1:DeviationCategoryThresholdAmount>0</d2p1:DeviationCategoryThresholdAmount>
<d2p1:FraudDetectionConfig>
<d2p1:AntiSyphon>
<d2p1:CombinationCountPerRoundThresholdPct>0</d2p1:CombinationCountPerRoundThresholdPct>
<d2p1:ExcludedLocations xmlns:d5p1="http://schemas.datacontract.org/2004/07/Starnet.Common">
<d5p1:Ref>
<d5p1:Id>String</d5p1:Id>
<d5p1:Val>String</d5p1:Val>
</d5p1:Ref>
</d2p1:ExcludedLocations>
<d2p1:IncludeRoundPctAsBettorSyphonCriteria>false</d2p1:IncludeRoundPctAsBettorSyphonCriteria>
<d2p1:IsActive>false</d2p1:IsActive>
</d2p1:AntiSyphon>
</d2p1:FraudDetectionConfig>
<d2p1:HighRollerSettings>
<d2p1:CategoryThresholds>
<d2p1:HighRollerSettings.CategoryThreshold>
<d2p1:Category>Pickerel</d2p1:Category>
<d2p1:Threshold>0</d2p1:Threshold>
</d2p1:HighRollerSettings.CategoryThreshold>
</d2p1:CategoryThresholds>
<d2p1:Pools>
<d2p1:HighRollerSettings.PoolSettings>
<d2p1:Caps>
<d2p1:MaxAmountInPrevalentStakes>0</d2p1:MaxAmountInPrevalentStakes>
<d2p1:MinusCoef>0</d2p1:MinusCoef>
<d2p1:PlusCoef>0</d2p1:PlusCoef>
</d2p1:Caps>
<d2p1:ContributionToRoundPoolPct>0</d2p1:ContributionToRoundPoolPct>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsActive>false</d2p1:IsActive>
<d2p1:Name>String</d2p1:Name>
</d2p1:HighRollerSettings.PoolSettings>
</d2p1:Pools>
</d2p1:HighRollerSettings>
<d2p1:JackPot5ThresholdInterval>
<d2p1:End>0</d2p1:End>
<d2p1:Start>0</d2p1:Start>
</d2p1:JackPot5ThresholdInterval>
<d2p1:LocationOptimizationLevel>None</d2p1:LocationOptimizationLevel>
<d2p1:LowWinCountAffinityInPct>0</d2p1:LowWinCountAffinityInPct>
<d2p1:OverflowCoefficientPoolsToRound>false</d2p1:OverflowCoefficientPoolsToRound>
<d2p1:Pools>
<d2p1:AccumulatorConfiguration.Pool>
<d2p1:Id>0</d2p1:Id>
<d2p1:Name>String</d2p1:Name>
<d2p1:RTP>0</d2p1:RTP>
<d2p1:ReserveRTP>0</d2p1:ReserveRTP>
</d2p1:AccumulatorConfiguration.Pool>
</d2p1:Pools>
<d2p1:PrevalentStake>0</d2p1:PrevalentStake>
<d2p1:PurgeThresholdModifier>0</d2p1:PurgeThresholdModifier>
<d2p1:RoundPoolCircuitBreakerThreshold>0</d2p1:RoundPoolCircuitBreakerThreshold>
<d2p1:WinCountOrderAffinity>
<d2p1:WinCountOrderProbability>
<d2p1:Order>None</d2p1:Order>
<d2p1:Probability>0</d2p1:Probability>
</d2p1:WinCountOrderProbability>
</d2p1:WinCountOrderAffinity>
</Configuration>
<Duration>0</Duration>
<HappyHour>
<IsHappyHour>false</IsHappyHour>
<OddsModifier>0</OddsModifier>
<RoundPoolBonusPct>0</RoundPoolBonusPct>
</HappyHour>
<Id>String</Id>
<InitializationInfo>
<BetsCollectionsCreationDuration>0</BetsCollectionsCreationDuration>
<CombinationsOccuranceLookupInitializationDuration>0</CombinationsOccuranceLookupInitializationDuration>
<DataLoadDuration>0</DataLoadDuration>
</InitializationInfo>
<LocalCodePot>
<DurationInMs>0</DurationInMs>
</LocalCodePot>
<PurgerInfo>
<PoolPurger>String</PoolPurger>
<PrevalentStake>0</PrevalentStake>
<QualifiedPools>
<DrawDiagnostics.QualifiedPool>
<AvailableAmount>0</AvailableAmount>
<AwardedAmount>0</AwardedAmount>
<Coefficient>0</Coefficient>
<Id>0</Id>
<Name>String</Name>
<TargetBet>
<BetId>String</BetId>
<CombStake />
<IsFound>false</IsFound>
<SlipId>String</SlipId>
</TargetBet>
</DrawDiagnostics.QualifiedPool>
</QualifiedPools>
</PurgerInfo>
<Reasoning>String</Reasoning>
<SequenceGenerationInfo>
<AvgSinglePassDuration>0</AvgSinglePassDuration>
<Duration>0</Duration>
<NrOfResultsProbed>0</NrOfResultsProbed>
<NrOfThreads>0</NrOfThreads>
</SequenceGenerationInfo>
<StimulationResponses>
<DrawDiagnostics.StimulationResponse>
<AmountAwarded>0</AmountAwarded>
<BetId>String</BetId>
<FailureReason>String</FailureReason>
<SlipId>String</SlipId>
<Status>Failure</Status>
<StimulationId>String</StimulationId>
</DrawDiagnostics.StimulationResponse>
</StimulationResponses>
<SuperWin>
<DurationInMs>0</DurationInMs>
</SuperWin>
<SyphonInfo xmlns:d2p1="http://schemas.datacontract.org/2004/07/Six4Win.Common">
<d2p1:Bettors xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringSyphonFQuwRXs4>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>
<d2p1:Id>String</d2p1:Id>
<d2p1:Name>String</d2p1:Name>
<d2p1:NrOfCombinations>0</d2p1:NrOfCombinations>
<d2p1:Type>Location</d2p1:Type>
</d3p1:Value>
</d3p1:KeyValueOfstringSyphonFQuwRXs4>
</d2p1:Bettors>
<d2p1:Locations xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringSyphonFQuwRXs4>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>
<d2p1:Id>String</d2p1:Id>
<d2p1:Name>String</d2p1:Name>
<d2p1:NrOfCombinations>0</d2p1:NrOfCombinations>
<d2p1:Type>Location</d2p1:Type>
</d3p1:Value>
</d3p1:KeyValueOfstringSyphonFQuwRXs4>
</d2p1:Locations>
</SyphonInfo>
</DrawDiagnostics>