/* Options: Date: 2026-11-07 04:23:31 Version: 10.42 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://s4w2.api.bettor.webhop.biz //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ConfigureAccumulator.* //ExcludeTypes: //DefaultImports: */ package dtos import ( ss "github.com/ServiceStack/servicestack-go" ) type Ref struct { Id string `json:"id"` Val string `json:"val"` } type Pool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Treshold float64 `json:"treshold,omitempty"` } type LocationOptimizationLevel int const ( LocationOptimizationLevelNone LocationOptimizationLevel = 0 LocationOptimizationLevelLow LocationOptimizationLevel = 1 LocationOptimizationLevelMedium LocationOptimizationLevel = 2 LocationOptimizationLevelHigh LocationOptimizationLevel = 3 ) type ThresholdInterval struct { Start float64 `json:"start,omitempty"` End float64 `json:"end,omitempty"` } type SortingOrder int const ( SortingOrderNone SortingOrder = 0 SortingOrderAscending SortingOrder = 1 SortingOrderDescending SortingOrder = 2 ) type WinCountOrderProbability struct { Order SortingOrder `json:"order,omitempty"` Probability int `json:"probability,omitempty"` } type PoolCaps struct { PlusCoef float64 `json:"plusCoef,omitempty"` MinusCoef float64 `json:"minusCoef,omitempty"` MaxAmountInPrevalentStakes float64 `json:"maxAmountInPrevalentStakes,omitempty"` } type PoolSettings struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` IsActive bool `json:"isActive,omitempty"` ContributionToRoundPoolPct float64 `json:"contributionToRoundPoolPct,omitempty"` Caps *PoolCaps `json:"caps,omitempty"` } type StakeCategory int const ( StakeCategoryPickerel StakeCategory = 0 StakeCategoryFish StakeCategory = 1 StakeCategorySalmon StakeCategory = 2 StakeCategoryTuna StakeCategory = 3 StakeCategoryShark StakeCategory = 4 StakeCategoryWhale StakeCategory = 5 StakeCategoryNone StakeCategory = -1 ) type CategoryThreshold struct { Category StakeCategory `json:"category,omitempty"` Threshold float64 `json:"threshold,omitempty"` } type HighRollerSettings struct { Pools *RecordList[PoolSettings] `json:"pools,omitempty"` CategoryThresholds *RecordList[CategoryThreshold] `json:"categoryThresholds,omitempty"` } type SyphonBlacklists struct { Locations *RecordList[Ref] `json:"locations,omitempty"` Players *RecordList[Ref] `json:"players,omitempty"` } type AntiSyphonConfig struct { CombinationCountPerRoundThresholdPct float64 `json:"combinationCountPerRoundThresholdPct,omitempty"` ExcludedLocations *RecordList[Ref] `json:"excludedLocations,omitempty"` Blacklists *SyphonBlacklists `json:"blacklists,omitempty"` IncludeRoundPctAsBettorSyphonCriteria bool `json:"includeRoundPctAsBettorSyphonCriteria,omitempty"` IsActive bool `json:"isActive,omitempty"` } type FraudDetectionConfiguration struct { AntiSyphon *AntiSyphonConfig `json:"antiSyphon,omitempty"` } type DebugConfiguration struct { LogLocationStats bool `json:"logLocationStats,omitempty"` LogBettorStats bool `json:"logBettorStats,omitempty"` } type JP5WinnerCooldownPolicyConfig struct { IsActive bool `json:"isActive,omitempty"` CooldownIntervalInDays int `json:"cooldownIntervalInDays,omitempty"` } type AccumulatorConfiguration struct { Pools *RecordList[Pool] `json:"pools,omitempty"` PrevalentStake float64 `json:"prevalentStake,omitempty"` PurgeThresholdModifier float64 `json:"purgeThresholdModifier,omitempty"` LocationOptimizationLevel LocationOptimizationLevel `json:"locationOptimizationLevel,omitempty"` JackPot5ThresholdInterval *ThresholdInterval `json:"jackPot5ThresholdInterval,omitempty"` DeviationCategorySpanInPct int `json:"deviationCategorySpanInPct,omitempty"` DeviationCategoryThresholdAmount float64 `json:"deviationCategoryThresholdAmount,omitempty"` RoundPoolCircuitBreakerThreshold float64 `json:"roundPoolCircuitBreakerThreshold,omitempty"` LowWinCountAffinityInPct int `json:"lowWinCountAffinityInPct,omitempty"` WinCountOrderAffinity *RecordList[WinCountOrderProbability] `json:"winCountOrderAffinity,omitempty"` HighRollerSettings *HighRollerSettings `json:"highRollerSettings,omitempty"` OverflowCoefficientPoolsToRound bool `json:"overflowCoefficientPoolsToRound,omitempty"` AntiSyphonProtectionOverride bool `json:"antiSyphonProtectionOverride,omitempty"` FraudDetectionConfig *FraudDetectionConfiguration `json:"fraudDetectionConfig,omitempty"` DebugConfig *DebugConfiguration `json:"debugConfig,omitempty"` JP5WinnerCooldownPolicy *JP5WinnerCooldownPolicyConfig `json:"jP5WinnerCooldownPolicy,omitempty"` } type Pool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Coefficient float64 `json:"coefficient,omitempty"` Rtp float64 `json:"rtp,omitempty"` Threshold float64 `json:"threshold,omitempty"` Balance float64 `json:"balance,omitempty"` Rrtp float64 `json:"rrtp,omitempty"` RBalance float64 `json:"rBalance,omitempty"` } type RecordList[T any] []T type Pool struct { Id int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Rtp float64 `json:"rtp,omitempty"` ReserveRTP float64 `json:"reserveRTP,omitempty"` TotalRTP float64 `json:"totalRTP,omitempty"` } type ResponseStatus int const ( ResponseStatusFailure ResponseStatus = 0 ResponseStatusSuccess ResponseStatus = 1 ) // @DataContract type ResponseStatus struct { // @DataMember(Order=1) ErrorCode string `json:"errorCode"` // @DataMember(Order=2) Message *string `json:"message,omitempty"` // @DataMember(Order=3) StackTrace *string `json:"stackTrace,omitempty"` // @DataMember(Order=4) Errors []ss.ResponseError `json:"errors,omitempty"` // @DataMember(Order=5) Meta map[string]string `json:"meta,omitempty"` } // @Route("/cmd/configure/accumulator", "POST") type ConfigureAccumulator struct { Id *string `json:"id,omitempty"` Configuration *AccumulatorConfiguration `json:"configuration,omitempty"` } func (ConfigureAccumulator) CreateResponse() (r ResponseStatus) { return } func (ConfigureAccumulator) HttpMethod() string { return "POST" }