/* Options: Date: 2025-09-14 03:23:22 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: EAccountingCustomerQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/eaccounting/customers", "GET") public class EAccountingCustomerQuery : EAccountingPagination, IReturn, ICompany { public typealias Return = EAccountingCustomerResponse public var companyId:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case companyId } 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) } 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) } } } public class EAccountingCustomerResponse : CreateEAccountingCustomer { public var id:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) 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 id != nil { try container.encode(id, forKey: .id) } } } public protocol ICompany { var companyId:String? { get set } } public class EAccountingPagination : Codable { /** * Page number that will be fetched to e-accounting client; Default 1 */ // @DataMember(Order=1) // @ApiMember(Description="Page number that will be fetched to e-accounting client; Default 1") public var pageNumber:Int? /** * Page size that will be fetched to e-accounting client; Default 75~ */ // @DataMember(Order=2) // @ApiMember(Description="Page size that will be fetched to e-accounting client; Default 75~") public var pageSize:Int? required public init(){} } public class EAccountingInvoiceAddress : Codable { public var corporateIdentityNumber:String? public var invoiceAddress1:String? public var invoiceAddress2:String? public var invoiceCity:String? public var invoicePostalCode:String? public var invoiceCountryCode:String? required public init(){} } public class EAccountingTermsOfPayment : Codable { public var id:String? public var name:String? public var nameEnglish:String? public var numberOfDays:Int? public var termsOfPaymentTypeId:Int? public var termsOfPaymentTypeText:String? public var availableForSales:Bool? public var availableForPurchase:Bool? required public init(){} } public class CustomerLabel : Codable { public var id:String? public var name:String? public var Description:String? required public init(){} } public class DirectDebitCustomerSettings : Codable { public var mandateId:String? public var mandateType:Int? public var sequenceType:Int? public var signingDate:Date? public var endDate:Date? public var latestDirectDebit:Date? required public init(){} } public class CreateEAccountingCustomer : EAccountingInvoiceAddress { public var customerNumber:String? public var contactPersonEmail:String? public var contactPersonMobile:String? public var contactPersonName:String? public var contactPersonPhone:String? public var currencyCode:String? public var gln:String? public var emailAddress:String? public var emailAddressOrder:String? public var emailAddressQuote:String? public var deliveryCustomerName:String? public var deliveryAddress1:String? public var deliveryAddress2:String? public var deliveryCity:String? public var deliveryCountryCode:String? public var deliveryPostalCode:String? public var deliveryMethodId:String? public var deliveryTermId:String? public var payToAccountId:String? public var name:String? public var note:String? public var reverseChargeOnConstructionServices:Bool? public var webshopCustomerNumber:Int? public var mobilePhone:String? public var telephone:String? public var termsOfPaymentId:String? public var eAccountingTermsOfPayment:EAccountingTermsOfPayment? public var vatNumber:String? public var wwwAddress:String? public var lastInvoiceDate:String? public var isPrivatePerson:Bool? public var isNorthernIreland:Bool? public var discountPercentage:Double? public var changedUtc:Date? public var isActive:Bool? public var forceBookkeepVat:Bool? public var ediGlnNumber:String? public var salesDocumentLanguage:String? public var electronicAddress:String? public var electronicReference:String? public var ediServiceDelivererId:String? public var autoInvoiceActivationEmailSentDate:Date? public var autoInvoiceRegistrationRequestSentDate:Date? public var emailAddresses:[String]? public var customerLabels:[CustomerLabel]? public var messageThreads:[String]? public var notes:[String]? public var isFutureInvoiceDateAllowed:Bool? public var deliveryBasedVat:Bool? public var salesPriceListId:String? public var iban:String? public var directDebitCustomerSettings:DirectDebitCustomerSettings? public var discountAgreementId:String? public var unpaidInvoicesAmount:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case customerNumber case contactPersonEmail case contactPersonMobile case contactPersonName case contactPersonPhone case currencyCode case gln case emailAddress case emailAddressOrder case emailAddressQuote case deliveryCustomerName case deliveryAddress1 case deliveryAddress2 case deliveryCity case deliveryCountryCode case deliveryPostalCode case deliveryMethodId case deliveryTermId case payToAccountId case name case note case reverseChargeOnConstructionServices case webshopCustomerNumber case mobilePhone case telephone case termsOfPaymentId case eAccountingTermsOfPayment case vatNumber case wwwAddress case lastInvoiceDate case isPrivatePerson case isNorthernIreland case discountPercentage case changedUtc case isActive case forceBookkeepVat case ediGlnNumber case salesDocumentLanguage case electronicAddress case electronicReference case ediServiceDelivererId case autoInvoiceActivationEmailSentDate case autoInvoiceRegistrationRequestSentDate case emailAddresses case customerLabels case messageThreads case notes case isFutureInvoiceDateAllowed case deliveryBasedVat case salesPriceListId case iban case directDebitCustomerSettings case discountAgreementId case unpaidInvoicesAmount } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) customerNumber = try container.decodeIfPresent(String.self, forKey: .customerNumber) contactPersonEmail = try container.decodeIfPresent(String.self, forKey: .contactPersonEmail) contactPersonMobile = try container.decodeIfPresent(String.self, forKey: .contactPersonMobile) contactPersonName = try container.decodeIfPresent(String.self, forKey: .contactPersonName) contactPersonPhone = try container.decodeIfPresent(String.self, forKey: .contactPersonPhone) currencyCode = try container.decodeIfPresent(String.self, forKey: .currencyCode) gln = try container.decodeIfPresent(String.self, forKey: .gln) emailAddress = try container.decodeIfPresent(String.self, forKey: .emailAddress) emailAddressOrder = try container.decodeIfPresent(String.self, forKey: .emailAddressOrder) emailAddressQuote = try container.decodeIfPresent(String.self, forKey: .emailAddressQuote) deliveryCustomerName = try container.decodeIfPresent(String.self, forKey: .deliveryCustomerName) deliveryAddress1 = try container.decodeIfPresent(String.self, forKey: .deliveryAddress1) deliveryAddress2 = try container.decodeIfPresent(String.self, forKey: .deliveryAddress2) deliveryCity = try container.decodeIfPresent(String.self, forKey: .deliveryCity) deliveryCountryCode = try container.decodeIfPresent(String.self, forKey: .deliveryCountryCode) deliveryPostalCode = try container.decodeIfPresent(String.self, forKey: .deliveryPostalCode) deliveryMethodId = try container.decodeIfPresent(String.self, forKey: .deliveryMethodId) deliveryTermId = try container.decodeIfPresent(String.self, forKey: .deliveryTermId) payToAccountId = try container.decodeIfPresent(String.self, forKey: .payToAccountId) name = try container.decodeIfPresent(String.self, forKey: .name) note = try container.decodeIfPresent(String.self, forKey: .note) reverseChargeOnConstructionServices = try container.decodeIfPresent(Bool.self, forKey: .reverseChargeOnConstructionServices) webshopCustomerNumber = try container.decodeIfPresent(Int.self, forKey: .webshopCustomerNumber) mobilePhone = try container.decodeIfPresent(String.self, forKey: .mobilePhone) telephone = try container.decodeIfPresent(String.self, forKey: .telephone) termsOfPaymentId = try container.decodeIfPresent(String.self, forKey: .termsOfPaymentId) eAccountingTermsOfPayment = try container.decodeIfPresent(EAccountingTermsOfPayment.self, forKey: .eAccountingTermsOfPayment) vatNumber = try container.decodeIfPresent(String.self, forKey: .vatNumber) wwwAddress = try container.decodeIfPresent(String.self, forKey: .wwwAddress) lastInvoiceDate = try container.decodeIfPresent(String.self, forKey: .lastInvoiceDate) isPrivatePerson = try container.decodeIfPresent(Bool.self, forKey: .isPrivatePerson) isNorthernIreland = try container.decodeIfPresent(Bool.self, forKey: .isNorthernIreland) discountPercentage = try container.decodeIfPresent(Double.self, forKey: .discountPercentage) changedUtc = try container.decodeIfPresent(Date.self, forKey: .changedUtc) isActive = try container.decodeIfPresent(Bool.self, forKey: .isActive) forceBookkeepVat = try container.decodeIfPresent(Bool.self, forKey: .forceBookkeepVat) ediGlnNumber = try container.decodeIfPresent(String.self, forKey: .ediGlnNumber) salesDocumentLanguage = try container.decodeIfPresent(String.self, forKey: .salesDocumentLanguage) electronicAddress = try container.decodeIfPresent(String.self, forKey: .electronicAddress) electronicReference = try container.decodeIfPresent(String.self, forKey: .electronicReference) ediServiceDelivererId = try container.decodeIfPresent(String.self, forKey: .ediServiceDelivererId) autoInvoiceActivationEmailSentDate = try container.decodeIfPresent(Date.self, forKey: .autoInvoiceActivationEmailSentDate) autoInvoiceRegistrationRequestSentDate = try container.decodeIfPresent(Date.self, forKey: .autoInvoiceRegistrationRequestSentDate) emailAddresses = try container.decodeIfPresent([String].self, forKey: .emailAddresses) ?? [] customerLabels = try container.decodeIfPresent([CustomerLabel].self, forKey: .customerLabels) ?? [] messageThreads = try container.decodeIfPresent([String].self, forKey: .messageThreads) ?? [] notes = try container.decodeIfPresent([String].self, forKey: .notes) ?? [] isFutureInvoiceDateAllowed = try container.decodeIfPresent(Bool.self, forKey: .isFutureInvoiceDateAllowed) deliveryBasedVat = try container.decodeIfPresent(Bool.self, forKey: .deliveryBasedVat) salesPriceListId = try container.decodeIfPresent(String.self, forKey: .salesPriceListId) iban = try container.decodeIfPresent(String.self, forKey: .iban) directDebitCustomerSettings = try container.decodeIfPresent(DirectDebitCustomerSettings.self, forKey: .directDebitCustomerSettings) discountAgreementId = try container.decodeIfPresent(String.self, forKey: .discountAgreementId) unpaidInvoicesAmount = try container.decodeIfPresent(Double.self, forKey: .unpaidInvoicesAmount) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if customerNumber != nil { try container.encode(customerNumber, forKey: .customerNumber) } if contactPersonEmail != nil { try container.encode(contactPersonEmail, forKey: .contactPersonEmail) } if contactPersonMobile != nil { try container.encode(contactPersonMobile, forKey: .contactPersonMobile) } if contactPersonName != nil { try container.encode(contactPersonName, forKey: .contactPersonName) } if contactPersonPhone != nil { try container.encode(contactPersonPhone, forKey: .contactPersonPhone) } if currencyCode != nil { try container.encode(currencyCode, forKey: .currencyCode) } if gln != nil { try container.encode(gln, forKey: .gln) } if emailAddress != nil { try container.encode(emailAddress, forKey: .emailAddress) } if emailAddressOrder != nil { try container.encode(emailAddressOrder, forKey: .emailAddressOrder) } if emailAddressQuote != nil { try container.encode(emailAddressQuote, forKey: .emailAddressQuote) } if deliveryCustomerName != nil { try container.encode(deliveryCustomerName, forKey: .deliveryCustomerName) } if deliveryAddress1 != nil { try container.encode(deliveryAddress1, forKey: .deliveryAddress1) } if deliveryAddress2 != nil { try container.encode(deliveryAddress2, forKey: .deliveryAddress2) } if deliveryCity != nil { try container.encode(deliveryCity, forKey: .deliveryCity) } if deliveryCountryCode != nil { try container.encode(deliveryCountryCode, forKey: .deliveryCountryCode) } if deliveryPostalCode != nil { try container.encode(deliveryPostalCode, forKey: .deliveryPostalCode) } if deliveryMethodId != nil { try container.encode(deliveryMethodId, forKey: .deliveryMethodId) } if deliveryTermId != nil { try container.encode(deliveryTermId, forKey: .deliveryTermId) } if payToAccountId != nil { try container.encode(payToAccountId, forKey: .payToAccountId) } if name != nil { try container.encode(name, forKey: .name) } if note != nil { try container.encode(note, forKey: .note) } if reverseChargeOnConstructionServices != nil { try container.encode(reverseChargeOnConstructionServices, forKey: .reverseChargeOnConstructionServices) } if webshopCustomerNumber != nil { try container.encode(webshopCustomerNumber, forKey: .webshopCustomerNumber) } if mobilePhone != nil { try container.encode(mobilePhone, forKey: .mobilePhone) } if telephone != nil { try container.encode(telephone, forKey: .telephone) } if termsOfPaymentId != nil { try container.encode(termsOfPaymentId, forKey: .termsOfPaymentId) } if eAccountingTermsOfPayment != nil { try container.encode(eAccountingTermsOfPayment, forKey: .eAccountingTermsOfPayment) } if vatNumber != nil { try container.encode(vatNumber, forKey: .vatNumber) } if wwwAddress != nil { try container.encode(wwwAddress, forKey: .wwwAddress) } if lastInvoiceDate != nil { try container.encode(lastInvoiceDate, forKey: .lastInvoiceDate) } if isPrivatePerson != nil { try container.encode(isPrivatePerson, forKey: .isPrivatePerson) } if isNorthernIreland != nil { try container.encode(isNorthernIreland, forKey: .isNorthernIreland) } if discountPercentage != nil { try container.encode(discountPercentage, forKey: .discountPercentage) } if changedUtc != nil { try container.encode(changedUtc, forKey: .changedUtc) } if isActive != nil { try container.encode(isActive, forKey: .isActive) } if forceBookkeepVat != nil { try container.encode(forceBookkeepVat, forKey: .forceBookkeepVat) } if ediGlnNumber != nil { try container.encode(ediGlnNumber, forKey: .ediGlnNumber) } if salesDocumentLanguage != nil { try container.encode(salesDocumentLanguage, forKey: .salesDocumentLanguage) } if electronicAddress != nil { try container.encode(electronicAddress, forKey: .electronicAddress) } if electronicReference != nil { try container.encode(electronicReference, forKey: .electronicReference) } if ediServiceDelivererId != nil { try container.encode(ediServiceDelivererId, forKey: .ediServiceDelivererId) } if autoInvoiceActivationEmailSentDate != nil { try container.encode(autoInvoiceActivationEmailSentDate, forKey: .autoInvoiceActivationEmailSentDate) } if autoInvoiceRegistrationRequestSentDate != nil { try container.encode(autoInvoiceRegistrationRequestSentDate, forKey: .autoInvoiceRegistrationRequestSentDate) } if emailAddresses != nil { try container.encode(emailAddresses, forKey: .emailAddresses) } if customerLabels != nil { try container.encode(customerLabels, forKey: .customerLabels) } if messageThreads != nil { try container.encode(messageThreads, forKey: .messageThreads) } if notes != nil { try container.encode(notes, forKey: .notes) } if isFutureInvoiceDateAllowed != nil { try container.encode(isFutureInvoiceDateAllowed, forKey: .isFutureInvoiceDateAllowed) } if deliveryBasedVat != nil { try container.encode(deliveryBasedVat, forKey: .deliveryBasedVat) } if salesPriceListId != nil { try container.encode(salesPriceListId, forKey: .salesPriceListId) } if iban != nil { try container.encode(iban, forKey: .iban) } if directDebitCustomerSettings != nil { try container.encode(directDebitCustomerSettings, forKey: .directDebitCustomerSettings) } if discountAgreementId != nil { try container.encode(discountAgreementId, forKey: .discountAgreementId) } if unpaidInvoicesAmount != nil { try container.encode(unpaidInvoicesAmount, forKey: .unpaidInvoicesAmount) } } }