/* Options: Date: 2024-12-22 21:24:58 SwiftVersion: 6.0 Version: 8.51 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: QueryProfile.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack public class QueryProfile : QueryDb, IReturn { public typealias Return = QueryResponse 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 Profile : AuditBase { public var id:Int? public var role:PlayerRole? public var region:PlayerRegion? public var username:String? public var highScore:Int? public var gamesPlayed:Int? public var energy:Int? public var profileUrl:String? public var coverUrl:String? public var meta:[String:String]? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id case role case region case username case highScore case gamesPlayed case energy case profileUrl case coverUrl case meta } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(Int.self, forKey: .id) role = try container.decodeIfPresent(PlayerRole.self, forKey: .role) region = try container.decodeIfPresent(PlayerRegion.self, forKey: .region) username = try container.decodeIfPresent(String.self, forKey: .username) highScore = try container.decodeIfPresent(Int.self, forKey: .highScore) gamesPlayed = try container.decodeIfPresent(Int.self, forKey: .gamesPlayed) energy = try container.decodeIfPresent(Int.self, forKey: .energy) profileUrl = try container.decodeIfPresent(String.self, forKey: .profileUrl) coverUrl = try container.decodeIfPresent(String.self, forKey: .coverUrl) meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } if role != nil { try container.encode(role, forKey: .role) } if region != nil { try container.encode(region, forKey: .region) } if username != nil { try container.encode(username, forKey: .username) } if highScore != nil { try container.encode(highScore, forKey: .highScore) } if gamesPlayed != nil { try container.encode(gamesPlayed, forKey: .gamesPlayed) } if energy != nil { try container.encode(energy, forKey: .energy) } if profileUrl != nil { try container.encode(profileUrl, forKey: .profileUrl) } if coverUrl != nil { try container.encode(coverUrl, forKey: .coverUrl) } if meta != nil { try container.encode(meta, forKey: .meta) } } } public enum PlayerRole : String, Codable { case Leader case Player case NonPlayer } public enum PlayerRegion : Int, Codable { case Africa = 1 case Americas = 2 case Asia = 3 case Australasia = 4 case Europe = 5 }