/* Options: Date: 2024-05-16 09:01:23 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: GetBillingStatusRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/sales/members/{MemberId}/status", "GET") public class GetBillingStatusRequest : GetBillingStatusRequestDto, IReturn, IRestrictedApiRequest { public typealias Return = MemberBillingStatus /** * 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 /** * Store ID # member belongs to */ // @ApiMember(DataType="integer", Description="Store ID # member belongs to", IsRequired=true, Name="StoreId", ParameterType="query") public var storeId:Int? /** * ID of the member to lookup */ // @ApiMember(DataType="integer", Description="ID of the member to lookup", IsRequired=true, Name="MemberId", ParameterType="path") public var memberId:Int public var restrictedId:Int? public var restrictedResourceType:RestrictedResourceType required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case apiKey case storeId case memberId case restrictedId case restrictedResourceType } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) apiKey = try container.decodeIfPresent(String.self, forKey: .apiKey) storeId = try container.decodeIfPresent(Int.self, forKey: .storeId) memberId = try container.decodeIfPresent(Int.self, forKey: .memberId) 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 apiKey != nil { try container.encode(apiKey, forKey: .apiKey) } if storeId != nil { try container.encode(storeId, forKey: .storeId) } if memberId != nil { try container.encode(memberId, forKey: .memberId) } if restrictedId != nil { try container.encode(restrictedId, forKey: .restrictedId) } if restrictedResourceType != nil { try container.encode(restrictedResourceType, forKey: .restrictedResourceType) } } } public class MemberBillingStatus : GetMemberBillingStatus_Result { public var invoices:[MemberBillingStatusInvoice] = [] public var userTypeId:Int public var userTypeName:String public var newUserId:Int? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case invoices case userTypeId case userTypeName case newUserId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) invoices = try container.decodeIfPresent([MemberBillingStatusInvoice].self, forKey: .invoices) ?? [] userTypeId = try container.decodeIfPresent(Int.self, forKey: .userTypeId) userTypeName = try container.decodeIfPresent(String.self, forKey: .userTypeName) newUserId = try container.decodeIfPresent(Int.self, forKey: .newUserId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if invoices.count > 0 { try container.encode(invoices, forKey: .invoices) } if userTypeId != nil { try container.encode(userTypeId, forKey: .userTypeId) } if userTypeName != nil { try container.encode(userTypeName, forKey: .userTypeName) } if newUserId != nil { try container.encode(newUserId, forKey: .newUserId) } } } public enum RestrictedResourceType : String, Codable { case Store case Chain case User case Undefined } 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 : Codable { public var apiKey:String public var storeId:Int? public var chainId:Int? required public init(){} } public class GetBillingStatusRequestDto : ApiDtoBase { public var memberId:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case memberId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) memberId = try container.decodeIfPresent(Int.self, forKey: .memberId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if memberId != nil { try container.encode(memberId, forKey: .memberId) } } } public class MemberBillingStatusInvoice : Codable { public var invoiceId:Int public var status:String public var statusId:Int16 public var amountDue:Double public var salesTaxDue:Double public var paymentDue:Date public var paymentMade:Date? public var packageName:String required public init(){} } // @DataContract public class GetMemberBillingStatus_Result : Codable { // @DataMember public var fullName:String // @DataMember public var memberStatus:String // @DataMember public var homeClub:String // @DataMember public var balanceDue:Double? // @DataMember public var storeID:Int? required public init(){} }