/* Options: Date: 2025-12-15 18:11:43 SwiftVersion: 5.0 Version: 6.50 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://www.clubready.com/api/current //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: UserFindByLoginRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/users/find/login-details", "GET") // @ApiResponse(Description="

AuthenticationResponse Values

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\\\r\n\r\n\r\n
TextNumerical
An error occurred (-100)-100
Account is disabled.-11
Account is locked.-10
Your password must be of sufficient length and should contain letters, numbers and special characters.-3
Invalid confirmation.-2
Invalid confirmation.-1
An error occurred.0
Your password has expired and must be changed.1
Your must change your password.2
Login Successful. Please consider changing your password because it does not meet current complexity requirements3
Login successful.10
", ResponseType=typeof(UserFindByLoginResponse), StatusCode=200) public class UserFindByLoginRequest : UserFindByLoginRequestDto, IReturn, IRestrictedApiRequest { public typealias Return = UserFindByLoginResponse /** * IP address of the end user */ // @ApiMember(Description="IP address of the end user", Name="X-Forwarded-For", ParameterType="header") public var xForwardedFor:String /** * Api Key - grants access to resources */ // @ApiMember(DataType="string", Description="Api Key - grants access to resources", IsRequired=true, Name="ApiKey", ParameterType="query") public var apiKey:String /** * ClubReady Club ID (StoreID internally) */ // @ApiMember(DataType="integer", Description="ClubReady Club ID (StoreID internally)", Name="StoreId", ParameterType="query") public var storeId:Int? /** * StoreId OR ChainId is required */ // @ApiMember(DataType="integer", Description="StoreId OR ChainId is required", Name="ChainId", ParameterType="query") public var chainId:Int? /** * ClubReady username */ // @ApiMember(DataType="string", Description="ClubReady username", IsRequired=true, Name="UserName", ParameterType="query") public var userName:String /** * ClubReady password */ // @ApiMember(DataType="string", Description="ClubReady password", IsRequired=true, Name="Password", ParameterType="query") public var password:String public var restrictedId:Int? public var restrictedResourceType:RestrictedResourceType required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case xForwardedFor case apiKey case storeId case chainId case userName case password case restrictedId case restrictedResourceType } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) xForwardedFor = try container.decodeIfPresent(String.self, forKey: .xForwardedFor) apiKey = try container.decodeIfPresent(String.self, forKey: .apiKey) storeId = try container.decodeIfPresent(Int.self, forKey: .storeId) chainId = try container.decodeIfPresent(Int.self, forKey: .chainId) userName = try container.decodeIfPresent(String.self, forKey: .userName) password = try container.decodeIfPresent(String.self, forKey: .password) restrictedId = try container.decodeIfPresent(Int.self, forKey: .restrictedId) restrictedResourceType = try container.decodeIfPresent(RestrictedResourceType.self, forKey: .restrictedResourceType) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if xForwardedFor != nil { try container.encode(xForwardedFor, forKey: .xForwardedFor) } if apiKey != nil { try container.encode(apiKey, forKey: .apiKey) } if storeId != nil { try container.encode(storeId, forKey: .storeId) } if chainId != nil { try container.encode(chainId, forKey: .chainId) } if userName != nil { try container.encode(userName, forKey: .userName) } if password != nil { try container.encode(password, forKey: .password) } if restrictedId != nil { try container.encode(restrictedId, forKey: .restrictedId) } if restrictedResourceType != nil { try container.encode(restrictedResourceType, forKey: .restrictedResourceType) } } } public class UserFindByLoginResponse : UserFindByLoginResponseDto { public var authenticationResult:AuthenticationResult public var homeStoreId:Int? public var userId:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case authenticationResult case homeStoreId case userId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) authenticationResult = try container.decodeIfPresent(AuthenticationResult.self, forKey: .authenticationResult) homeStoreId = try container.decodeIfPresent(Int.self, forKey: .homeStoreId) userId = try container.decodeIfPresent(Int.self, forKey: .userId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if authenticationResult != nil { try container.encode(authenticationResult, forKey: .authenticationResult) } if homeStoreId != nil { try container.encode(homeStoreId, forKey: .homeStoreId) } if userId != nil { try container.encode(userId, forKey: .userId) } } } public enum RestrictedResourceType : String, Codable { case Store case Chain case User case Undefined } public protocol IApiDtoBase { var apiKey:String { get set } var storeId:Int? { get set } var chainId:Int? { get set } } public protocol IRestrictedApiRequest : IApiKeyEndpoint { var restrictedId:Int? { get set } var restrictedResourceType:RestrictedResourceType { get set } } public protocol IApiKeyEndpoint { var apiKey:String { get set } } public class ApiDtoBase : IApiDtoBase, Codable { public var apiKey:String public var storeId:Int? public var chainId:Int? required public init(){} } public class UserFindByLoginRequestDto : ApiDtoBase { public var userId:Int public var userName:String public var password:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case userId case userName case password } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) userId = try container.decodeIfPresent(Int.self, forKey: .userId) userName = try container.decodeIfPresent(String.self, forKey: .userName) password = try container.decodeIfPresent(String.self, forKey: .password) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if userId != nil { try container.encode(userId, forKey: .userId) } if userName != nil { try container.encode(userName, forKey: .userName) } if password != nil { try container.encode(password, forKey: .password) } } } public enum AuthenticationResult : Int, Codable { case InvalidPassword = 0 case SuccessExpired = 11 case SuccessChangePassword = 12 case SuccessWeakPassword = 21 case Success = 31 case CryptographicError = -100 case Disabled = -22 case Locked = -21 case FailedPasswordHistory = -15 case FailedWeakPassword = -12 case InvalidConfirmation = -11 case Error = -1 } public class UserFindByLoginResponseDto : ApiResponseBase { public var homeStoreId:Int? public var userId:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case homeStoreId case userId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) homeStoreId = try container.decodeIfPresent(Int.self, forKey: .homeStoreId) userId = try container.decodeIfPresent(Int.self, forKey: .userId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if homeStoreId != nil { try container.encode(homeStoreId, forKey: .homeStoreId) } if userId != nil { try container.encode(userId, forKey: .userId) } } } public class ApiResponseBase : Codable { public var success:Bool public var message:String required public init(){} }