/* Options: Date: 2025-09-15 05:50:15 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: EAccountingInvoiceDraftQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/eaccounting/invoicedrafts", "GET") public class EAccountingInvoiceDraftQuery : EAccountingPagination, IReturn, ICompany { public typealias Return = InvoiceDraftQueryResponse public var bookingId:Int? public var includeInvoiceLines:Bool? public var includeInvoiceNotes:Bool? public var companyId:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case bookingId case includeInvoiceLines case includeInvoiceNotes case companyId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) bookingId = try container.decodeIfPresent(Int.self, forKey: .bookingId) includeInvoiceLines = try container.decodeIfPresent(Bool.self, forKey: .includeInvoiceLines) includeInvoiceNotes = try container.decodeIfPresent(Bool.self, forKey: .includeInvoiceNotes) 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 bookingId != nil { try container.encode(bookingId, forKey: .bookingId) } if includeInvoiceLines != nil { try container.encode(includeInvoiceLines, forKey: .includeInvoiceLines) } if includeInvoiceNotes != nil { try container.encode(includeInvoiceNotes, forKey: .includeInvoiceNotes) } if companyId != nil { try container.encode(companyId, forKey: .companyId) } } } public class InvoiceDraftQueryResponse : Codable { public var invoiceId:String? public var createdDate:Date? public var totalAmount:Double? public var totalVatAmount:Double? public var customerId:String? public var rows:[InvoiceDraftLineQueryResponse]? public var invoiceDate:String? public var dueDate:String? public var deliveryDate:Date? public var persons:[Person]? public var invoiceCustomerName:String? public var invoiceAddress:EAccountingInvoiceAddress? public var customerIsPrivatePerson:Bool? public var customerNumber:String? public var notes:[NoteQueryResponse]? public var noteIds:[String]? public var createdUtc:Date? public var includesVat:Bool? public var priceSign:String? public var bookingId:String? required public init(){} } 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 Person : Codable { public var ssn:String? public var amount: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 InvoiceDraftLineQueryResponse : Codable { public var articleNumber:String? public var articleId:String? public var isServiceArticle:Bool? public var amountNoVat:Double? public var percentVat:Double? public var lineNumber:Int? public var isTextRow:Bool? public var text:String? public var unitPrice:Double? public var unitAbbreviation:String? public var unitAbbreviationEnglish:String? public var discountPercentage:Double? public var quantity:Double? public var isWorkCost:Bool? public var isVatFree:Bool? public var costCenterItemId1:String? public var costCenterItemId2:String? public var costCenterItemId3:String? public var unitId:String? public var projectId:String? public var workCostType:Int? public var workHours:Double? public var materialCosts:Double? public var greenTechnologyType:GreenTechnologyType? public var contributionMargin:ContributionMargin? required public init(){} } public enum GreenTechnologyType : String, Codable { case None case SolarCellInstallation case ElectricEnergyStorageInstallation case ElectricVehicleChargingPointInstallation } public class ContributionMargin : Codable { public var amount:Int? public var percentage:Int? required public init(){} } public class NoteQueryResponse : Codable { public var id:String? public var text:String? public var createdUtc:Date? public var modifiedUtc:Date? required public init(){} }