/* Options: Date: 2025-07-18 00:04:32 SwiftVersion: 5.0 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: UpdateConfigReq.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/config/update", "POST") public class UpdateConfigReq : IReturn, Codable { public typealias Return = Configuration public var category:String? public var countries:[String:Country] = [:] public var listItems:[ListItem] = [] public var listRelationships:[String:String] = [:] public var sectionElements:[String:[String]] = [:] public var siteStructure:[String:SiteSection] = [:] required public init(){} } // @Route("/faq", "POST,PUT,DELETE") public class ListItem : Entity, IReturn { public typealias Return = ListItem public var listId:String? public var country:String? public var relatedId:String? public var code:String? public var custom:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case listId case country case relatedId case code case custom } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) listId = try container.decodeIfPresent(String.self, forKey: .listId) country = try container.decodeIfPresent(String.self, forKey: .country) relatedId = try container.decodeIfPresent(String.self, forKey: .relatedId) code = try container.decodeIfPresent(String.self, forKey: .code) custom = try container.decodeIfPresent(String.self, forKey: .custom) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if listId != nil { try container.encode(listId, forKey: .listId) } if country != nil { try container.encode(country, forKey: .country) } if relatedId != nil { try container.encode(relatedId, forKey: .relatedId) } if code != nil { try container.encode(code, forKey: .code) } if custom != nil { try container.encode(custom, forKey: .custom) } } } public class Configuration : Entity { public var category:String? public var countries:[String:Country] = [:] public var listItems:[ListItem] = [] public var listRelationships:[String:String] = [:] public var sectionElements:[String:[String]] = [:] public var siteStructure:[String:SiteSection] = [:] public var version:Int? public var createdBy:String? public var dateCreated:Date? public var updatedBy:String? public var dateUpdated:Date? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case category case countries case listItems case listRelationships case sectionElements case siteStructure case version case createdBy case dateCreated case updatedBy case dateUpdated } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) category = try container.decodeIfPresent(String.self, forKey: .category) countries = try container.decodeIfPresent([String:Country].self, forKey: .countries) ?? [:] listItems = try container.decodeIfPresent([ListItem].self, forKey: .listItems) ?? [] listRelationships = try container.decodeIfPresent([String:String].self, forKey: .listRelationships) ?? [:] sectionElements = try container.decodeIfPresent([String:[String]].self, forKey: .sectionElements) ?? [:] siteStructure = try container.decodeIfPresent([String:SiteSection].self, forKey: .siteStructure) ?? [:] version = try container.decodeIfPresent(Int.self, forKey: .version) createdBy = try container.decodeIfPresent(String.self, forKey: .createdBy) dateCreated = try container.decodeIfPresent(Date.self, forKey: .dateCreated) updatedBy = try container.decodeIfPresent(String.self, forKey: .updatedBy) dateUpdated = try container.decodeIfPresent(Date.self, forKey: .dateUpdated) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if category != nil { try container.encode(category, forKey: .category) } if countries.count > 0 { try container.encode(countries, forKey: .countries) } if listItems.count > 0 { try container.encode(listItems, forKey: .listItems) } if listRelationships.count > 0 { try container.encode(listRelationships, forKey: .listRelationships) } if sectionElements.count > 0 { try container.encode(sectionElements, forKey: .sectionElements) } if siteStructure.count > 0 { try container.encode(siteStructure, forKey: .siteStructure) } if version != nil { try container.encode(version, forKey: .version) } if createdBy != nil { try container.encode(createdBy, forKey: .createdBy) } if dateCreated != nil { try container.encode(dateCreated, forKey: .dateCreated) } if updatedBy != nil { try container.encode(updatedBy, forKey: .updatedBy) } if dateUpdated != nil { try container.encode(dateUpdated, forKey: .dateUpdated) } } } public class Country : Codable { public var name:String? public var languages:[String:String] = [:] required public init(){} } public class SiteSection : Codable { public var route:String? public var `public`:Bool? public var parent:String? public var roles:Int? public var hideFrom:[String] = [] public var order:Int? required public init(){} } public class Entity : IEntity, Codable { public var id:String? required public init(){} } public class Entity : Codable { public var logoUri:String? public var name:String? public var contactDetails:ContactDetails? required public init(){} } public class Country : IId, ITimestamp, Codable { public var id:Int? public var name:String? public var isoCode:String? public var configurationId:Int? public var cultureInfos:String? public var excelTemplateId:String? public var saClientId:String? public var inactive:Bool? public var timestamp:[UInt8] = [] public var configuration:Configuration? public var clients:[Client] = [] public var plans:[Plan] = [] public var documents:[Document] = [] public var importJobs:[ImportJob] = [] required public init(){} } public class Configuration : IId, ITimestamp, Codable { public var id:Int? public var guid:String? public var system:Bool? public var timestamp:[UInt8] = [] public var country:Country? public var client:Client? public var configurationVersions:[ConfigurationVersion] = [] required public init(){} }