/* Options: Date: 2024-06-16 22:19:27 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: EAccountingInvoiceDraftQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //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:InvoiceAddress 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 InvoiceAddress : 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 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 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(){} }