/* Options: Date: 2024-09-29 01:41:24 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CompanyBillingInformation.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/billing/company", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") public class CompanyBillingInformation : QueryDb2, IReturn { public typealias Return = QueryResponse /** * The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") public var companyId:String? /** * If you want to include the billing methods to select from */ // @ApiMember(DataType="boolean", Description="If you want to include the billing methods to select from", ParameterType="query") public var includeBillingMethodOptions:Bool required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case companyId case includeBillingMethodOptions } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) companyId = try container.decodeIfPresent(String.self, forKey: .companyId) includeBillingMethodOptions = try container.decodeIfPresent(Bool.self, forKey: .includeBillingMethodOptions) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if companyId != nil { try container.encode(companyId, forKey: .companyId) } if includeBillingMethodOptions != nil { try container.encode(includeBillingMethodOptions, forKey: .includeBillingMethodOptions) } } } public class BillingMethod : BaseModel { public var billingMethodCountriesRelation:[BillingMethodCountriesRelation] = [] // @Required() public var name:String? // @Required() public var Description:String? public var modifiedDate:Date? public var id:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case billingMethodCountriesRelation case name case Description case modifiedDate case id } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) billingMethodCountriesRelation = try container.decodeIfPresent([BillingMethodCountriesRelation].self, forKey: .billingMethodCountriesRelation) ?? [] name = try container.decodeIfPresent(String.self, forKey: .name) Description = try container.decodeIfPresent(String.self, forKey: .Description) modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate) id = try container.decodeIfPresent(Int.self, forKey: .id) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if billingMethodCountriesRelation.count > 0 { try container.encode(billingMethodCountriesRelation, forKey: .billingMethodCountriesRelation) } if name != nil { try container.encode(name, forKey: .name) } if Description != nil { try container.encode(Description, forKey: .Description) } if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) } if id != nil { try container.encode(id, forKey: .id) } } } public class BillingMethodQueryResponse : Codable { /** * The billing method id */ // @ApiMember(Description="The billing method id") public var id:Int /** * The billing method name */ // @ApiMember(Description="The billing method name") public var name:String /** * The billing method description */ // @ApiMember(Description="The billing method description") public var Description:String /** * The billing method is valid for the following countries */ // @ApiMember(Description="The billing method is valid for the following countries") public var countries:[String] = [] required public init(){} } public class BillingInformation : BaseModel { public var billingMethod:BillingMethod // @Required() public var billingMethodId:Int? // @Required() public var name:String? public var attention:String public var street1:String public var street2:String public var zipCode:String public var city:String public var email:String public var creditCard:String public var creditCardHolder:String public var creditCardNumber:String public var validToYear:Int16? public var validToMonth:Int16? public var csv:String // @Required() public var updated:Date? // @Required() public var created:Date? // @Required() public var countryId:String? // @Required() public var paymentTermsDays:Int? public var vatRegistrationNumber:String public var gln:String public var referenceLine1:String public var referenceLine2:String public var modifiedDate:Date? // @Required() public var id:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case billingMethod case billingMethodId case name case attention case street1 case street2 case zipCode case city case email case creditCard case creditCardHolder case creditCardNumber case validToYear case validToMonth case csv case updated case created case countryId case paymentTermsDays case vatRegistrationNumber case gln case referenceLine1 case referenceLine2 case modifiedDate case id } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) billingMethod = try container.decodeIfPresent(BillingMethod.self, forKey: .billingMethod) billingMethodId = try container.decodeIfPresent(Int.self, forKey: .billingMethodId) name = try container.decodeIfPresent(String.self, forKey: .name) attention = try container.decodeIfPresent(String.self, forKey: .attention) street1 = try container.decodeIfPresent(String.self, forKey: .street1) street2 = try container.decodeIfPresent(String.self, forKey: .street2) zipCode = try container.decodeIfPresent(String.self, forKey: .zipCode) city = try container.decodeIfPresent(String.self, forKey: .city) email = try container.decodeIfPresent(String.self, forKey: .email) creditCard = try container.decodeIfPresent(String.self, forKey: .creditCard) creditCardHolder = try container.decodeIfPresent(String.self, forKey: .creditCardHolder) creditCardNumber = try container.decodeIfPresent(String.self, forKey: .creditCardNumber) validToYear = try container.decodeIfPresent(Int16.self, forKey: .validToYear) validToMonth = try container.decodeIfPresent(Int16.self, forKey: .validToMonth) csv = try container.decodeIfPresent(String.self, forKey: .csv) updated = try container.decodeIfPresent(Date.self, forKey: .updated) created = try container.decodeIfPresent(Date.self, forKey: .created) countryId = try container.decodeIfPresent(String.self, forKey: .countryId) paymentTermsDays = try container.decodeIfPresent(Int.self, forKey: .paymentTermsDays) vatRegistrationNumber = try container.decodeIfPresent(String.self, forKey: .vatRegistrationNumber) gln = try container.decodeIfPresent(String.self, forKey: .gln) referenceLine1 = try container.decodeIfPresent(String.self, forKey: .referenceLine1) referenceLine2 = try container.decodeIfPresent(String.self, forKey: .referenceLine2) modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate) id = try container.decodeIfPresent(String.self, forKey: .id) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if billingMethod != nil { try container.encode(billingMethod, forKey: .billingMethod) } if billingMethodId != nil { try container.encode(billingMethodId, forKey: .billingMethodId) } if name != nil { try container.encode(name, forKey: .name) } if attention != nil { try container.encode(attention, forKey: .attention) } if street1 != nil { try container.encode(street1, forKey: .street1) } if street2 != nil { try container.encode(street2, forKey: .street2) } if zipCode != nil { try container.encode(zipCode, forKey: .zipCode) } if city != nil { try container.encode(city, forKey: .city) } if email != nil { try container.encode(email, forKey: .email) } if creditCard != nil { try container.encode(creditCard, forKey: .creditCard) } if creditCardHolder != nil { try container.encode(creditCardHolder, forKey: .creditCardHolder) } if creditCardNumber != nil { try container.encode(creditCardNumber, forKey: .creditCardNumber) } if validToYear != nil { try container.encode(validToYear, forKey: .validToYear) } if validToMonth != nil { try container.encode(validToMonth, forKey: .validToMonth) } if csv != nil { try container.encode(csv, forKey: .csv) } if updated != nil { try container.encode(updated, forKey: .updated) } if created != nil { try container.encode(created, forKey: .created) } if countryId != nil { try container.encode(countryId, forKey: .countryId) } if paymentTermsDays != nil { try container.encode(paymentTermsDays, forKey: .paymentTermsDays) } if vatRegistrationNumber != nil { try container.encode(vatRegistrationNumber, forKey: .vatRegistrationNumber) } if gln != nil { try container.encode(gln, forKey: .gln) } if referenceLine1 != nil { try container.encode(referenceLine1, forKey: .referenceLine1) } if referenceLine2 != nil { try container.encode(referenceLine2, forKey: .referenceLine2) } if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) } if id != nil { try container.encode(id, forKey: .id) } } } public class BaseModel : Codable { required public init(){} } public class BillingMethodCountriesRelation : BaseModel { // @Required() public var billingMethodId:Int? // @Required() public var countryId:String? public var modifiedDate:Date? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case billingMethodId case countryId case modifiedDate } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) billingMethodId = try container.decodeIfPresent(Int.self, forKey: .billingMethodId) countryId = try container.decodeIfPresent(String.self, forKey: .countryId) modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if billingMethodId != nil { try container.encode(billingMethodId, forKey: .billingMethodId) } if countryId != nil { try container.encode(countryId, forKey: .countryId) } if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) } } }