/// Options: /// Date: 2026-11-07 04:02:41 /// 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: ConfigureGame.* /// ExcludeTypes: /// DefaultImports: const std = @import("std"); /// const std = @import("std"); const ss = @import("servicestack"); pub const CountdownConfiguration = struct { lockdownStepFromEnd: i32 = 0, assertLockdownStepFromEnd: i32 = 0, }; pub const DrawConfiguration = struct { introIntervalInMs: i32 = 0, animationIntervalInMs: i32 = 0, outroIntervalInMs: i32 = 0, }; pub const RTPStrategies = enum(i32) { RNG = 0, Accumulator = 1, }; pub const HappyHourConfiguration = struct { isHappyHour: bool = false, oddsModifier: f64 = 0, roundPoolBonusPct: f64 = 0, useOnlyRoundPoolWithNoOptimizations: bool = false, overrideSyphonCombinationCountPerRoundThreshold: bool = false, syphonCombinationCountPerRoundThresholdPctOverride: f64 = 0, }; pub const RoundConfiguration = struct { coefficients: ?RecordList = null, isDoubleTripleActive: bool = false, isJackpot5Active: bool = false, countdownDurationInSeconds: i32 = 0, countdownConfiguration: ?CountdownConfiguration = null, drawConfiguration: ?DrawConfiguration = null, resultsDurationInSeconds: i32 = 0, rtpStrategy: ?RTPStrategies = null, happyHourConfiguration: ?HappyHourConfiguration = null, }; pub const TimePoint = struct { hour: i32 = 0, minute: i32 = 0, }; pub const TimeInterval = struct { start: ?TimePoint = null, end: ?TimePoint = null, }; pub const HappyHourItem = struct { id: i64 = 0, interval: ?TimeInterval = null, oddsModifier: f64 = 0, roundPoolBonusPct: f64 = 0, }; pub const HappyHourConfig = struct { isActive: bool = false, items: ?[]HappyHourItem = null, useOnlyRoundPoolWithNoOptimizations: bool = false, overrideSyphonCombinationCountPerRoundThreshold: bool = false, syphonCombinationCountPerRoundThresholdPctOverride: f64 = 0, }; pub const GameConfiguration = struct { queueSize: i32 = 0, roundConfiguration: ?RoundConfiguration = null, happyHourConfig: ?HappyHourConfig = null, }; pub fn RecordList(comptime T: type) type { _ = T; return struct { pub const ss_collection = "items"; items: []T = &.{}, }; pub const ResponseStatus = enum(i32) { Failure = 0, Success = 1, }; // @DataContract pub const ResponseStatus = struct { // @DataMember(Order=1) errorCode: ?[]const u8 = null, // @DataMember(Order=2) message: ?[]const u8 = null, // @DataMember(Order=3) stackTrace: ?[]const u8 = null, // @DataMember(Order=4) errors: ?[]ss.ResponseError = null, // @DataMember(Order=5) meta: ?std.json.Value = null, }; // @Route("/cmd/configure/game", "POST") pub const ConfigureGame = struct { pub const ss_name = "ConfigureGame"; pub const ss_verb = "POST"; pub const Response = ResponseStatus; id: ?[]const u8 = null, configuration: ?GameConfiguration = null, };