/* Options: Date: 2025-11-08 11:21:48 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://s4w2.api.bettor.cc //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetFeed.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/qry/feed") public class GetFeed : IReturn, Codable { public typealias Return = Feed required public init(){} } public class Feed : Codable { public var id:String? public var round:Round? public var lastJackpot5Info:Jackpot5Info? public var superWinInfo:SuperWinInfo? public var globalCodePotInfo:GlobalCodePotInfo? required public init(){} } public class Ref : Codable { public var id:String? public var val:String? required public init(){} } public class Origin : Codable { public var application:BettingApp? public var ip:String? public var organization:RefEx? public var region:Ref? public var locationGroup:Ref? public var location:RefEx? public var device:RefEx? public var clerk:Ref? required public init(){} } public class RoundConfiguration : Codable { public var coefficients:RecordList? public var isDoubleTripleActive:Bool? public var isJackpot5Active:Bool? public var countdownDurationInSeconds:Int? public var countdownConfiguration:CountdownConfiguration? public var drawConfiguration:DrawConfiguration? public var resultsDurationInSeconds:Int? public var rtpStrategy:RTPStrategies? public var happyHourConfiguration:HappyHourConfiguration? required public init(){} } public class RecordList : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class Round : Codable { public var id:String? public var createdAt:Date? public var updatedAt:Date? public var shouldStartAtUtc:Date? public var startedAtUtc:Date? public var status:RoundStatus? public var configuration:RoundConfiguration? public var sequence:String? public var jackpot5Info:Jackpot5Info? public var superWinInfo:SuperWinInfo? public var globalCodePotInfo:GlobalCodePotInfo? public var progress:RoundProgress? public var isLocked:Bool? public var isCalculated:Bool? required public init(){} } public class Jackpot5Info : Codable { public var isHit:Bool? public var amountAccumulated:Double? public var amountAwarded:Double? public var nrOfWinners:Int? public var jackPot5Winners:[JackPot5Winner]? required public init(){} } public class SuperWinInfo : Codable { public var isActive:Bool? public var winner:SuperWinWinner? public var availableAmount:Double? public var allPrizesAwarded:Bool? required public init(){} } public class GlobalCodePotInfo : Codable { public var isActive:Bool? public var isDrawn:Bool? public var winner:WinnerByCode? public var inertCode:String? public var accumulation:Double? required public init(){} } public enum Stages : Int, Codable { case None = 0 case Countdown = 1 case Processing = 2 case Draw = 3 case Results = 4 } public class WinnerByCode : Codable { public var roundId:String? public var drawnAtUtc:Date? public var slipId:String? public var betId:String? public var code:String? public var amount:Double? public var origin:Origin? public var bettor:Ref? public var locationAddressOrBettorInfo:String? required public init(){} } public class SuperWinInfo : Codable { public var durationInMs:Int? required public init(){} } public class BettingApp : Codable { public var name:String? public var version:String? required public init(){} } public class RefEx : Ref { public var data:RecordDictionary? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case data } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) data = try container.decodeIfPresent(RecordDictionary.self, forKey: .data) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if data != nil { try container.encode(data, forKey: .data) } } } public class CountdownConfiguration : Codable { public var lockdownStepFromEnd:Int? public var assertLockdownStepFromEnd:Int? required public init(){} } public class DrawConfiguration : Codable { public var introIntervalInMs:Int? public var animationIntervalInMs:Int? public var outroIntervalInMs:Int? required public init(){} } public enum RTPStrategies : Int, Codable { case RNG = 0 case Accumulator = 1 } public class HappyHourConfiguration : Codable { public var isHappyHour:Bool? public var oddsModifier:Double? public var roundPoolBonusPct:Double? required public init(){} } public class RecordDictionary : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public enum RoundStatus : Int, Codable { case Pending = 0 case InProgress = 1 case Ended = 2 } public class RoundProgress : Codable { public var stage:Stages? public var step:Int? public var steps:Int? public var utcTimestamp:Date? required public init(){} } public class JackPot5Winner : Codable { public var betId:String? public var nrOfCombinations:Int? public var winningsAmount:Double? public var origin:Origin? public var bettor:Ref? public var payload:[String:String]? required public init(){} }