/// Options: /// Date: 2026-11-07 04:21:57 /// Version: 10.42 /// Tip: To override a DTO option, remove "/" prefix before updating /// BaseUrl: https://s4w1.api.bettor.webhop.biz /// GlobalNamespace: /// MakePropertiesOptional: False /// AddServiceStackTypes: True /// AddResponseStatus: False /// AddImplicitVersion: /// AddDescriptionAsComments: True //IncludeTypes: GetAccumulatorConfig.* /// ExcludeTypes: /// DefaultImports: const std = @import("std"); /// const std = @import("std"); pub const Ref = struct { id: ?[]const u8 = null, val: ?[]const u8 = null, }; pub const Pool = struct { id: i32 = 0, name: ?[]const u8 = null, treshold: f64 = 0, }; pub const LocationOptimizationLevel = enum(i32) { None = 0, Low = 1, Medium = 2, High = 3, }; pub const ThresholdInterval = struct { start: f64 = 0, end: f64 = 0, }; pub const SortingOrder = enum(i32) { None = 0, Ascending = 1, Descending = 2, }; pub const WinCountOrderProbability = struct { order: ?SortingOrder = null, probability: i32 = 0, }; pub const PoolCaps = struct { plusCoef: f64 = 0, minusCoef: f64 = 0, maxAmountInPrevalentStakes: f64 = 0, }; pub const PoolSettings = struct { id: i32 = 0, name: ?[]const u8 = null, isActive: bool = false, contributionToRoundPoolPct: f64 = 0, caps: ?PoolCaps = null, }; pub const StakeCategory = enum(i32) { Pickerel = 0, Fish = 1, Salmon = 2, Tuna = 3, Shark = 4, Whale = 5, None = -1, }; pub const CategoryThreshold = struct { category: ?StakeCategory = null, threshold: f64 = 0, }; pub const HighRollerSettings = struct { pools: ?RecordList = null, categoryThresholds: ?RecordList = null, }; pub const SyphonBlacklists = struct { locations: ?RecordList = null, players: ?RecordList = null, }; pub const AntiSyphonConfig = struct { combinationCountPerRoundThresholdPct: f64 = 0, excludedLocations: ?RecordList = null, blacklists: ?SyphonBlacklists = null, includeRoundPctAsBettorSyphonCriteria: bool = false, isActive: bool = false, }; pub const FraudDetectionConfiguration = struct { antiSyphon: ?AntiSyphonConfig = null, }; pub const DebugConfiguration = struct { logLocationStats: bool = false, logBettorStats: bool = false, }; pub const JP5WinnerCooldownPolicyConfig = struct { isActive: bool = false, cooldownIntervalInDays: i32 = 0, }; pub const AccumulatorConfiguration = struct { pools: ?RecordList = null, prevalentStake: f64 = 0, purgeThresholdModifier: f64 = 0, locationOptimizationLevel: ?LocationOptimizationLevel = null, jackPot5ThresholdInterval: ?ThresholdInterval = null, deviationCategorySpanInPct: i32 = 0, deviationCategoryThresholdAmount: f64 = 0, roundPoolCircuitBreakerThreshold: f64 = 0, lowWinCountAffinityInPct: i32 = 0, winCountOrderAffinity: ?RecordList = null, highRollerSettings: ?HighRollerSettings = null, overflowCoefficientPoolsToRound: bool = false, antiSyphonProtectionOverride: bool = false, fraudDetectionConfig: ?FraudDetectionConfiguration = null, debugConfig: ?DebugConfiguration = null, jP5WinnerCooldownPolicy: ?JP5WinnerCooldownPolicyConfig = null, id: ?[]const u8 = null, updatedAt: ?[]const u8 = null, }; pub const AccumulatorConfiguration = struct { pools: ?RecordList = null, prevalentStake: f64 = 0, purgeThresholdModifier: f64 = 0, locationOptimizationLevel: ?LocationOptimizationLevel = null, jackPot5ThresholdInterval: ?ThresholdInterval = null, deviationCategorySpanInPct: i32 = 0, deviationCategoryThresholdAmount: f64 = 0, roundPoolCircuitBreakerThreshold: f64 = 0, lowWinCountAffinityInPct: i32 = 0, winCountOrderAffinity: ?RecordList = null, highRollerSettings: ?HighRollerSettings = null, overflowCoefficientPoolsToRound: bool = false, antiSyphonProtectionOverride: bool = false, fraudDetectionConfig: ?FraudDetectionConfiguration = null, debugConfig: ?DebugConfiguration = null, jP5WinnerCooldownPolicy: ?JP5WinnerCooldownPolicyConfig = null, }; pub const Pool = struct { id: i32 = 0, name: ?[]const u8 = null, coefficient: f64 = 0, rtp: f64 = 0, threshold: f64 = 0, balance: f64 = 0, rrtp: f64 = 0, rBalance: f64 = 0, }; pub fn RecordList(comptime T: type) type { _ = T; return struct { pub const ss_collection = "items"; items: []T = &.{}, }; pub const Pool = struct { id: i32 = 0, name: ?[]const u8 = null, rtp: f64 = 0, reserveRTP: f64 = 0, totalRTP: f64 = 0, }; // @Route("/qry/config/accumulator") pub const GetAccumulatorConfig = struct { pub const ss_name = "GetAccumulatorConfig"; pub const ss_verb = "POST"; pub const Response = AccumulatorConfiguration; };