/* Options: Date: 2025-08-04 04:14:36 SwiftVersion: 5.0 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://szallitoiportal-be.veolia.hu //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: BrowseUser.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/user/{userid}", "GET") public class BrowseUser : IReturn, IGet, Codable { public typealias Return = BrowseUserResponse public var userId:Int required public init(){} } public class BrowseUserResponse : ResponseBase { public var user:UserDetails required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case user } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) user = try container.decodeIfPresent(UserDetails.self, forKey: .user) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if user != nil { try container.encode(user, forKey: .user) } } } public protocol IConcurrencyStamp { var concurrencyStamp:String { get set } } public enum ApplicationUserStatus : Int, Codable { case Registered = 0 case ConfirmedByUser = 1 case SupplierUserRegistered = 2 case AwaitingSupplierConfirmation = 3 case AwaitingVeoliaConfirmation = 4 case Active = 5 case Rejected = 6 case Deleted = 7 } public class ResponseBase : Codable { public var responseStatus:ResponseStatus required public init(){} } public class UserDetails : ModifyRequestBase { public var id:Int public var email:String public var userName:String public var phoneNumber:String public var displayName:String public var phoneNumberExtension:String public var phoneNumberCountryCodeId:Int? public var phoneNumberCountryCode:String public var mobilePhoneNumber:String public var mobilePhoneNumberCountryCodeId:Int? public var mobilePhoneNumberCountryCode:String public var organizationUnit:String public var position:String public var status:ApplicationUserStatus public var supplierId:Int? public var supplierOwnerId:Int? public var meta:[String:String] = [:] public var roles:[String] = [] public var isSupplierAdmin:Bool required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id case email case userName case phoneNumber case displayName case phoneNumberExtension case phoneNumberCountryCodeId case phoneNumberCountryCode case mobilePhoneNumber case mobilePhoneNumberCountryCodeId case mobilePhoneNumberCountryCode case organizationUnit case position case status case supplierId case supplierOwnerId case meta case roles case isSupplierAdmin } 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) email = try container.decodeIfPresent(String.self, forKey: .email) userName = try container.decodeIfPresent(String.self, forKey: .userName) phoneNumber = try container.decodeIfPresent(String.self, forKey: .phoneNumber) displayName = try container.decodeIfPresent(String.self, forKey: .displayName) phoneNumberExtension = try container.decodeIfPresent(String.self, forKey: .phoneNumberExtension) phoneNumberCountryCodeId = try container.decodeIfPresent(Int.self, forKey: .phoneNumberCountryCodeId) phoneNumberCountryCode = try container.decodeIfPresent(String.self, forKey: .phoneNumberCountryCode) mobilePhoneNumber = try container.decodeIfPresent(String.self, forKey: .mobilePhoneNumber) mobilePhoneNumberCountryCodeId = try container.decodeIfPresent(Int.self, forKey: .mobilePhoneNumberCountryCodeId) mobilePhoneNumberCountryCode = try container.decodeIfPresent(String.self, forKey: .mobilePhoneNumberCountryCode) organizationUnit = try container.decodeIfPresent(String.self, forKey: .organizationUnit) position = try container.decodeIfPresent(String.self, forKey: .position) status = try container.decodeIfPresent(ApplicationUserStatus.self, forKey: .status) supplierId = try container.decodeIfPresent(Int.self, forKey: .supplierId) supplierOwnerId = try container.decodeIfPresent(Int.self, forKey: .supplierOwnerId) meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:] roles = try container.decodeIfPresent([String].self, forKey: .roles) ?? [] isSupplierAdmin = try container.decodeIfPresent(Bool.self, forKey: .isSupplierAdmin) } 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 email != nil { try container.encode(email, forKey: .email) } if userName != nil { try container.encode(userName, forKey: .userName) } if phoneNumber != nil { try container.encode(phoneNumber, forKey: .phoneNumber) } if displayName != nil { try container.encode(displayName, forKey: .displayName) } if phoneNumberExtension != nil { try container.encode(phoneNumberExtension, forKey: .phoneNumberExtension) } if phoneNumberCountryCodeId != nil { try container.encode(phoneNumberCountryCodeId, forKey: .phoneNumberCountryCodeId) } if phoneNumberCountryCode != nil { try container.encode(phoneNumberCountryCode, forKey: .phoneNumberCountryCode) } if mobilePhoneNumber != nil { try container.encode(mobilePhoneNumber, forKey: .mobilePhoneNumber) } if mobilePhoneNumberCountryCodeId != nil { try container.encode(mobilePhoneNumberCountryCodeId, forKey: .mobilePhoneNumberCountryCodeId) } if mobilePhoneNumberCountryCode != nil { try container.encode(mobilePhoneNumberCountryCode, forKey: .mobilePhoneNumberCountryCode) } if organizationUnit != nil { try container.encode(organizationUnit, forKey: .organizationUnit) } if position != nil { try container.encode(position, forKey: .position) } if status != nil { try container.encode(status, forKey: .status) } if supplierId != nil { try container.encode(supplierId, forKey: .supplierId) } if supplierOwnerId != nil { try container.encode(supplierOwnerId, forKey: .supplierOwnerId) } if meta.count > 0 { try container.encode(meta, forKey: .meta) } if roles.count > 0 { try container.encode(roles, forKey: .roles) } if isSupplierAdmin != nil { try container.encode(isSupplierAdmin, forKey: .isSupplierAdmin) } } } public class ModifyRequestBase : IConcurrencyStamp, Codable { public var concurrencyStamp:String required public init(){} }