/* Options: Date: 2025-06-07 16:27:25 SwiftVersion: 5.0 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://soluser-recaudo.sgsas.co //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CustomUserSession.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @DataContract public class CustomUserSession : AuthUserSession, IReturn { public typealias Return = CustomUserSession // @DataMember public var idUsuario:String // @DataMember public var idSistema:Double // @DataMember public var idEmpresaProd:String // @DataMember public var idEmpresa:Double // @DataMember public var idModulo:String // @DataMember public var motorProd:MotorBD // @DataMember public var motorAppAdm:MotorBD // @DataMember public var prodConnectionString:String // @DataMember public var appAdmConnectionString:String // @DataMember public var cacheKeyAdm:String // @DataMember public var password:String // @DataMember public var sessionDB:Bool // @DataMember public var mensajeError:String // @DataMember public var documentoUsuario:String // @DataMember public var app_adm:String // @DataMember public var imei:String // @DataMember public var baseURL:String // @DataMember public var usaServAux:String // @DataMember public var tipoValidaAuth:String // @DataMember public var tokenExt:String // @DataMember public var subsistema:String // @DataMember public var twoFactor:String // @DataMember(Order=1) public var referrerUrl:String // @DataMember(Order=2) public var id:String // @DataMember(Order=3) public var userAuthId:String // @DataMember(Order=4) public var userAuthName:String // @DataMember(Order=5) public var userName:String // @DataMember(Order=6) public var twitterUserId:String // @DataMember(Order=7) public var twitterScreenName:String // @DataMember(Order=8) public var facebookUserId:String // @DataMember(Order=9) public var facebookUserName:String // @DataMember(Order=10) public var firstName:String // @DataMember(Order=11) public var lastName:String // @DataMember(Order=12) public var displayName:String // @DataMember(Order=13) public var company:String // @DataMember(Order=14) public var email:String // @DataMember(Order=15) public var primaryEmail:String // @DataMember(Order=16) public var phoneNumber:String // @DataMember(Order=17) public var birthDate:Date? // @DataMember(Order=18) public var birthDateRaw:String // @DataMember(Order=19) public var address:String // @DataMember(Order=20) public var address2:String // @DataMember(Order=21) public var city:String // @DataMember(Order=22) public var state:String // @DataMember(Order=23) public var country:String // @DataMember(Order=24) public var culture:String // @DataMember(Order=25) public var fullName:String // @DataMember(Order=26) public var gender:String // @DataMember(Order=27) public var language:String // @DataMember(Order=28) public var mailAddress:String // @DataMember(Order=29) public var nickname:String // @DataMember(Order=30) public var postalCode:String // @DataMember(Order=31) public var timeZone:String // @DataMember(Order=32) public var requestTokenSecret:String // @DataMember(Order=33) public var createdAt:Date // @DataMember(Order=34) public var lastModified:Date // @DataMember(Order=35) public var roles:[String] = [] // @DataMember(Order=36) public var permissions:[String] = [] // @DataMember(Order=37) public var isAuthenticated:Bool // @DataMember(Order=38) public var fromToken:Bool // @DataMember(Order=39) public var profileUrl:String // @DataMember(Order=40) public var sequence:String // @DataMember(Order=41) public var tag:Int // @DataMember(Order=42) public var authProvider:String //providerOAuthAccess:[IAuthTokens] ignored. Swift doesn't support interface properties // @DataMember(Order=44) public var meta:[String:String] = [:] // @DataMember(Order=45) public var audiences:[String] = [] // @DataMember(Order=46) public var scopes:[String] = [] // @DataMember(Order=47) public var dns:String // @DataMember(Order=48) public var rsa:String // @DataMember(Order=49) public var sid:String // @DataMember(Order=50) public var hash:String // @DataMember(Order=51) public var homePhone:String // @DataMember(Order=52) public var mobilePhone:String // @DataMember(Order=53) public var webpage:String // @DataMember(Order=54) public var emailConfirmed:Bool? // @DataMember(Order=55) public var phoneNumberConfirmed:Bool? // @DataMember(Order=56) public var twoFactorEnabled:Bool? // @DataMember(Order=57) public var securityStamp:String // @DataMember(Order=58) public var type:String // @DataMember(Order=59) public var recoveryToken:String // @DataMember(Order=60) public var refId:Int? // @DataMember(Order=61) public var refIdStr:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case idUsuario case idSistema case idEmpresaProd case idEmpresa case idModulo case motorProd case motorAppAdm case prodConnectionString case appAdmConnectionString case cacheKeyAdm case password case sessionDB case mensajeError case documentoUsuario case app_adm case imei case baseURL case usaServAux case tipoValidaAuth case tokenExt case subsistema case twoFactor case referrerUrl case id case userAuthId case userAuthName case userName case twitterUserId case twitterScreenName case facebookUserId case facebookUserName case firstName case lastName case displayName case company case email case primaryEmail case phoneNumber case birthDate case birthDateRaw case address case address2 case city case state case country case culture case fullName case gender case language case mailAddress case nickname case postalCode case timeZone case requestTokenSecret case createdAt case lastModified case roles case permissions case isAuthenticated case fromToken case profileUrl case sequence case tag case authProvider case providerOAuthAccess case meta case audiences case scopes case dns case rsa case sid case hash case homePhone case mobilePhone case webpage case emailConfirmed case phoneNumberConfirmed case twoFactorEnabled case securityStamp case type case recoveryToken case refId case refIdStr } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) idUsuario = try container.decodeIfPresent(String.self, forKey: .idUsuario) idSistema = try container.decodeIfPresent(Double.self, forKey: .idSistema) idEmpresaProd = try container.decodeIfPresent(String.self, forKey: .idEmpresaProd) idEmpresa = try container.decodeIfPresent(Double.self, forKey: .idEmpresa) idModulo = try container.decodeIfPresent(String.self, forKey: .idModulo) motorProd = try container.decodeIfPresent(MotorBD.self, forKey: .motorProd) motorAppAdm = try container.decodeIfPresent(MotorBD.self, forKey: .motorAppAdm) prodConnectionString = try container.decodeIfPresent(String.self, forKey: .prodConnectionString) appAdmConnectionString = try container.decodeIfPresent(String.self, forKey: .appAdmConnectionString) cacheKeyAdm = try container.decodeIfPresent(String.self, forKey: .cacheKeyAdm) password = try container.decodeIfPresent(String.self, forKey: .password) sessionDB = try container.decodeIfPresent(Bool.self, forKey: .sessionDB) mensajeError = try container.decodeIfPresent(String.self, forKey: .mensajeError) documentoUsuario = try container.decodeIfPresent(String.self, forKey: .documentoUsuario) app_adm = try container.decodeIfPresent(String.self, forKey: .app_adm) imei = try container.decodeIfPresent(String.self, forKey: .imei) baseURL = try container.decodeIfPresent(String.self, forKey: .baseURL) usaServAux = try container.decodeIfPresent(String.self, forKey: .usaServAux) tipoValidaAuth = try container.decodeIfPresent(String.self, forKey: .tipoValidaAuth) tokenExt = try container.decodeIfPresent(String.self, forKey: .tokenExt) subsistema = try container.decodeIfPresent(String.self, forKey: .subsistema) twoFactor = try container.decodeIfPresent(String.self, forKey: .twoFactor) referrerUrl = try container.decodeIfPresent(String.self, forKey: .referrerUrl) id = try container.decodeIfPresent(String.self, forKey: .id) userAuthId = try container.decodeIfPresent(String.self, forKey: .userAuthId) userAuthName = try container.decodeIfPresent(String.self, forKey: .userAuthName) userName = try container.decodeIfPresent(String.self, forKey: .userName) twitterUserId = try container.decodeIfPresent(String.self, forKey: .twitterUserId) twitterScreenName = try container.decodeIfPresent(String.self, forKey: .twitterScreenName) facebookUserId = try container.decodeIfPresent(String.self, forKey: .facebookUserId) facebookUserName = try container.decodeIfPresent(String.self, forKey: .facebookUserName) firstName = try container.decodeIfPresent(String.self, forKey: .firstName) lastName = try container.decodeIfPresent(String.self, forKey: .lastName) displayName = try container.decodeIfPresent(String.self, forKey: .displayName) company = try container.decodeIfPresent(String.self, forKey: .company) email = try container.decodeIfPresent(String.self, forKey: .email) primaryEmail = try container.decodeIfPresent(String.self, forKey: .primaryEmail) phoneNumber = try container.decodeIfPresent(String.self, forKey: .phoneNumber) birthDate = try container.decodeIfPresent(Date.self, forKey: .birthDate) birthDateRaw = try container.decodeIfPresent(String.self, forKey: .birthDateRaw) address = try container.decodeIfPresent(String.self, forKey: .address) address2 = try container.decodeIfPresent(String.self, forKey: .address2) city = try container.decodeIfPresent(String.self, forKey: .city) state = try container.decodeIfPresent(String.self, forKey: .state) country = try container.decodeIfPresent(String.self, forKey: .country) culture = try container.decodeIfPresent(String.self, forKey: .culture) fullName = try container.decodeIfPresent(String.self, forKey: .fullName) gender = try container.decodeIfPresent(String.self, forKey: .gender) language = try container.decodeIfPresent(String.self, forKey: .language) mailAddress = try container.decodeIfPresent(String.self, forKey: .mailAddress) nickname = try container.decodeIfPresent(String.self, forKey: .nickname) postalCode = try container.decodeIfPresent(String.self, forKey: .postalCode) timeZone = try container.decodeIfPresent(String.self, forKey: .timeZone) requestTokenSecret = try container.decodeIfPresent(String.self, forKey: .requestTokenSecret) createdAt = try container.decodeIfPresent(Date.self, forKey: .createdAt) lastModified = try container.decodeIfPresent(Date.self, forKey: .lastModified) roles = try container.decodeIfPresent([String].self, forKey: .roles) ?? [] permissions = try container.decodeIfPresent([String].self, forKey: .permissions) ?? [] isAuthenticated = try container.decodeIfPresent(Bool.self, forKey: .isAuthenticated) fromToken = try container.decodeIfPresent(Bool.self, forKey: .fromToken) profileUrl = try container.decodeIfPresent(String.self, forKey: .profileUrl) sequence = try container.decodeIfPresent(String.self, forKey: .sequence) tag = try container.decodeIfPresent(Int.self, forKey: .tag) authProvider = try container.decodeIfPresent(String.self, forKey: .authProvider) providerOAuthAccess = try container.decodeIfPresent([IAuthTokens].self, forKey: .providerOAuthAccess) ?? [] meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:] audiences = try container.decodeIfPresent([String].self, forKey: .audiences) ?? [] scopes = try container.decodeIfPresent([String].self, forKey: .scopes) ?? [] dns = try container.decodeIfPresent(String.self, forKey: .dns) rsa = try container.decodeIfPresent(String.self, forKey: .rsa) sid = try container.decodeIfPresent(String.self, forKey: .sid) hash = try container.decodeIfPresent(String.self, forKey: .hash) homePhone = try container.decodeIfPresent(String.self, forKey: .homePhone) mobilePhone = try container.decodeIfPresent(String.self, forKey: .mobilePhone) webpage = try container.decodeIfPresent(String.self, forKey: .webpage) emailConfirmed = try container.decodeIfPresent(Bool.self, forKey: .emailConfirmed) phoneNumberConfirmed = try container.decodeIfPresent(Bool.self, forKey: .phoneNumberConfirmed) twoFactorEnabled = try container.decodeIfPresent(Bool.self, forKey: .twoFactorEnabled) securityStamp = try container.decodeIfPresent(String.self, forKey: .securityStamp) type = try container.decodeIfPresent(String.self, forKey: .type) recoveryToken = try container.decodeIfPresent(String.self, forKey: .recoveryToken) refId = try container.decodeIfPresent(Int.self, forKey: .refId) refIdStr = try container.decodeIfPresent(String.self, forKey: .refIdStr) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if idUsuario != nil { try container.encode(idUsuario, forKey: .idUsuario) } if idSistema != nil { try container.encode(idSistema, forKey: .idSistema) } if idEmpresaProd != nil { try container.encode(idEmpresaProd, forKey: .idEmpresaProd) } if idEmpresa != nil { try container.encode(idEmpresa, forKey: .idEmpresa) } if idModulo != nil { try container.encode(idModulo, forKey: .idModulo) } if motorProd != nil { try container.encode(motorProd, forKey: .motorProd) } if motorAppAdm != nil { try container.encode(motorAppAdm, forKey: .motorAppAdm) } if prodConnectionString != nil { try container.encode(prodConnectionString, forKey: .prodConnectionString) } if appAdmConnectionString != nil { try container.encode(appAdmConnectionString, forKey: .appAdmConnectionString) } if cacheKeyAdm != nil { try container.encode(cacheKeyAdm, forKey: .cacheKeyAdm) } if password != nil { try container.encode(password, forKey: .password) } if sessionDB != nil { try container.encode(sessionDB, forKey: .sessionDB) } if mensajeError != nil { try container.encode(mensajeError, forKey: .mensajeError) } if documentoUsuario != nil { try container.encode(documentoUsuario, forKey: .documentoUsuario) } if app_adm != nil { try container.encode(app_adm, forKey: .app_adm) } if imei != nil { try container.encode(imei, forKey: .imei) } if baseURL != nil { try container.encode(baseURL, forKey: .baseURL) } if usaServAux != nil { try container.encode(usaServAux, forKey: .usaServAux) } if tipoValidaAuth != nil { try container.encode(tipoValidaAuth, forKey: .tipoValidaAuth) } if tokenExt != nil { try container.encode(tokenExt, forKey: .tokenExt) } if subsistema != nil { try container.encode(subsistema, forKey: .subsistema) } if twoFactor != nil { try container.encode(twoFactor, forKey: .twoFactor) } if referrerUrl != nil { try container.encode(referrerUrl, forKey: .referrerUrl) } if id != nil { try container.encode(id, forKey: .id) } if userAuthId != nil { try container.encode(userAuthId, forKey: .userAuthId) } if userAuthName != nil { try container.encode(userAuthName, forKey: .userAuthName) } if userName != nil { try container.encode(userName, forKey: .userName) } if twitterUserId != nil { try container.encode(twitterUserId, forKey: .twitterUserId) } if twitterScreenName != nil { try container.encode(twitterScreenName, forKey: .twitterScreenName) } if facebookUserId != nil { try container.encode(facebookUserId, forKey: .facebookUserId) } if facebookUserName != nil { try container.encode(facebookUserName, forKey: .facebookUserName) } if firstName != nil { try container.encode(firstName, forKey: .firstName) } if lastName != nil { try container.encode(lastName, forKey: .lastName) } if displayName != nil { try container.encode(displayName, forKey: .displayName) } if company != nil { try container.encode(company, forKey: .company) } if email != nil { try container.encode(email, forKey: .email) } if primaryEmail != nil { try container.encode(primaryEmail, forKey: .primaryEmail) } if phoneNumber != nil { try container.encode(phoneNumber, forKey: .phoneNumber) } if birthDate != nil { try container.encode(birthDate, forKey: .birthDate) } if birthDateRaw != nil { try container.encode(birthDateRaw, forKey: .birthDateRaw) } if address != nil { try container.encode(address, forKey: .address) } if address2 != nil { try container.encode(address2, forKey: .address2) } if city != nil { try container.encode(city, forKey: .city) } if state != nil { try container.encode(state, forKey: .state) } if country != nil { try container.encode(country, forKey: .country) } if culture != nil { try container.encode(culture, forKey: .culture) } if fullName != nil { try container.encode(fullName, forKey: .fullName) } if gender != nil { try container.encode(gender, forKey: .gender) } if language != nil { try container.encode(language, forKey: .language) } if mailAddress != nil { try container.encode(mailAddress, forKey: .mailAddress) } if nickname != nil { try container.encode(nickname, forKey: .nickname) } if postalCode != nil { try container.encode(postalCode, forKey: .postalCode) } if timeZone != nil { try container.encode(timeZone, forKey: .timeZone) } if requestTokenSecret != nil { try container.encode(requestTokenSecret, forKey: .requestTokenSecret) } if createdAt != nil { try container.encode(createdAt, forKey: .createdAt) } if lastModified != nil { try container.encode(lastModified, forKey: .lastModified) } if roles.count > 0 { try container.encode(roles, forKey: .roles) } if permissions.count > 0 { try container.encode(permissions, forKey: .permissions) } if isAuthenticated != nil { try container.encode(isAuthenticated, forKey: .isAuthenticated) } if fromToken != nil { try container.encode(fromToken, forKey: .fromToken) } if profileUrl != nil { try container.encode(profileUrl, forKey: .profileUrl) } if sequence != nil { try container.encode(sequence, forKey: .sequence) } if tag != nil { try container.encode(tag, forKey: .tag) } if authProvider != nil { try container.encode(authProvider, forKey: .authProvider) } if providerOAuthAccess.count > 0 { try container.encode(providerOAuthAccess, forKey: .providerOAuthAccess) } if meta.count > 0 { try container.encode(meta, forKey: .meta) } if audiences.count > 0 { try container.encode(audiences, forKey: .audiences) } if scopes.count > 0 { try container.encode(scopes, forKey: .scopes) } if dns != nil { try container.encode(dns, forKey: .dns) } if rsa != nil { try container.encode(rsa, forKey: .rsa) } if sid != nil { try container.encode(sid, forKey: .sid) } if hash != nil { try container.encode(hash, forKey: .hash) } if homePhone != nil { try container.encode(homePhone, forKey: .homePhone) } if mobilePhone != nil { try container.encode(mobilePhone, forKey: .mobilePhone) } if webpage != nil { try container.encode(webpage, forKey: .webpage) } if emailConfirmed != nil { try container.encode(emailConfirmed, forKey: .emailConfirmed) } if phoneNumberConfirmed != nil { try container.encode(phoneNumberConfirmed, forKey: .phoneNumberConfirmed) } if twoFactorEnabled != nil { try container.encode(twoFactorEnabled, forKey: .twoFactorEnabled) } if securityStamp != nil { try container.encode(securityStamp, forKey: .securityStamp) } if type != nil { try container.encode(type, forKey: .type) } if recoveryToken != nil { try container.encode(recoveryToken, forKey: .recoveryToken) } if refId != nil { try container.encode(refId, forKey: .refId) } if refIdStr != nil { try container.encode(refIdStr, forKey: .refIdStr) } } } public enum MotorBD : String, Codable { case POSTGRESQL case ORACLE case SQLSERVER } public protocol IAuthTokens { var provider:String { get set } var userId:String { get set } var accessToken:String { get set } var accessTokenSecret:String { get set } var refreshToken:String { get set } var refreshTokenExpiry:Date? { get set } var requestToken:String { get set } var requestTokenSecret:String { get set } var items:[String:String] { get set } } // @DataContract public class AuthUserSession : Codable { // @DataMember(Order=1) public var referrerUrl:String // @DataMember(Order=2) public var id:String // @DataMember(Order=3) public var userAuthId:String // @DataMember(Order=4) public var userAuthName:String // @DataMember(Order=5) public var userName:String // @DataMember(Order=6) public var twitterUserId:String // @DataMember(Order=7) public var twitterScreenName:String // @DataMember(Order=8) public var facebookUserId:String // @DataMember(Order=9) public var facebookUserName:String // @DataMember(Order=10) public var firstName:String // @DataMember(Order=11) public var lastName:String // @DataMember(Order=12) public var displayName:String // @DataMember(Order=13) public var company:String // @DataMember(Order=14) public var email:String // @DataMember(Order=15) public var primaryEmail:String // @DataMember(Order=16) public var phoneNumber:String // @DataMember(Order=17) public var birthDate:Date? // @DataMember(Order=18) public var birthDateRaw:String // @DataMember(Order=19) public var address:String // @DataMember(Order=20) public var address2:String // @DataMember(Order=21) public var city:String // @DataMember(Order=22) public var state:String // @DataMember(Order=23) public var country:String // @DataMember(Order=24) public var culture:String // @DataMember(Order=25) public var fullName:String // @DataMember(Order=26) public var gender:String // @DataMember(Order=27) public var language:String // @DataMember(Order=28) public var mailAddress:String // @DataMember(Order=29) public var nickname:String // @DataMember(Order=30) public var postalCode:String // @DataMember(Order=31) public var timeZone:String // @DataMember(Order=32) public var requestTokenSecret:String // @DataMember(Order=33) public var createdAt:Date // @DataMember(Order=34) public var lastModified:Date // @DataMember(Order=35) public var roles:[String] = [] // @DataMember(Order=36) public var permissions:[String] = [] // @DataMember(Order=37) public var isAuthenticated:Bool // @DataMember(Order=38) public var fromToken:Bool // @DataMember(Order=39) public var profileUrl:String // @DataMember(Order=40) public var sequence:String // @DataMember(Order=41) public var tag:Int // @DataMember(Order=42) public var authProvider:String //providerOAuthAccess:[IAuthTokens] ignored. Swift doesn't support interface properties // @DataMember(Order=44) public var meta:[String:String] = [:] // @DataMember(Order=45) public var audiences:[String] = [] // @DataMember(Order=46) public var scopes:[String] = [] // @DataMember(Order=47) public var dns:String // @DataMember(Order=48) public var rsa:String // @DataMember(Order=49) public var sid:String // @DataMember(Order=50) public var hash:String // @DataMember(Order=51) public var homePhone:String // @DataMember(Order=52) public var mobilePhone:String // @DataMember(Order=53) public var webpage:String // @DataMember(Order=54) public var emailConfirmed:Bool? // @DataMember(Order=55) public var phoneNumberConfirmed:Bool? // @DataMember(Order=56) public var twoFactorEnabled:Bool? // @DataMember(Order=57) public var securityStamp:String // @DataMember(Order=58) public var type:String // @DataMember(Order=59) public var recoveryToken:String // @DataMember(Order=60) public var refId:Int? // @DataMember(Order=61) public var refIdStr:String required public init(){} }