/* Options: Date: 2026-09-09 09:28:11 SwiftVersion: 6.0 Version: 10.08 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://services.acct.2service.nl //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: PostNewOrder.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/dealers/order", "POST") public class PostNewOrder : AuthenticatedRequest, IReturn { public typealias Return = NewOrderResponse /** * Items to order. */ // @ApiMember(Description="Items to order.", IsRequired=true, ParameterType="body") public var items:NewOrderItemList? /** * Dropshipment indication. */ // @ApiMember(Description="Dropshipment indication.", ParameterType="body") public var useDropshipment:Bool? /** * Delivery address. */ // @ApiMember(Description="Delivery address.", ParameterType="body") public var deliveryAddress:NewOrderAddress? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case items case useDropshipment case deliveryAddress } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) items = try container.decodeIfPresent(NewOrderItemList.self, forKey: .items) useDropshipment = try container.decodeIfPresent(Bool.self, forKey: .useDropshipment) deliveryAddress = try container.decodeIfPresent(NewOrderAddress.self, forKey: .deliveryAddress) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if items != nil { try container.encode(items, forKey: .items) } if useDropshipment != nil { try container.encode(useDropshipment, forKey: .useDropshipment) } if deliveryAddress != nil { try container.encode(deliveryAddress, forKey: .deliveryAddress) } } } public class NewOrderResponse : OperationResult_1 { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class NewOrderItemList : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class NewOrderAddress : IAddress, Codable { /** * Company name. */ // @ApiMember(Description="Company name.", ParameterType="body") public var companyName:String? /** * First name. */ // @ApiMember(Description="First name.", ParameterType="body") public var firstName:String? /** * Last name. */ // @ApiMember(Description="Last name.", ParameterType="body") public var lastName:String? /** * Street name. */ // @ApiMember(Description="Street name.", IsRequired=true, ParameterType="body") public var streetName:String? /** * House number. */ // @ApiMember(Description="House number.", IsRequired=true, ParameterType="body") public var houseNumber:String? /** * House number addition. */ // @ApiMember(Description="House number addition.", ParameterType="body") public var houseNumberAddition:String? /** * Postal code. */ // @ApiMember(Description="Postal code.", IsRequired=true, ParameterType="body") public var postalCode:String? /** * City. */ // @ApiMember(Description="City.", IsRequired=true, ParameterType="body") public var city:String? /** * Country code. */ // @ApiMember(Description="Country code.", IsRequired=true, ParameterType="body") public var countryCode:String? /** * Telephone number. */ // @ApiMember(Description="Telephone number.", ParameterType="body") public var telephoneNumber:String? required public init(){} } public class AuthenticatedRequest : Codable { /** * Session token received from successful authentication. */ // @ApiMember(Description="Session token received from successful authentication.", IsRequired=true, ParameterType="query") public var sessionToken:String? required public init(){} } public class NewOrderResult : Codable { /** * Number for the order that has been placed. */ // @ApiMember(Description="Number for the order that has been placed.", ParameterType="model") public var orderNumber:String? required public init(){} } public class OperationResult_1 : OperationResult { /** * Result value */ // @ApiMember(Description="Result value", ParameterType="model") public var result:T? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case result } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) result = try container.decodeIfPresent(T.self, forKey: .result) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if result != nil { try container.encode(result, forKey: .result) } } } public class OperationResult : Codable { /** * Specifies if the operation was successful. */ // @ApiMember(Description="Specifies if the operation was successful.", ParameterType="model") public var isSuccessful:Bool? /** * States error message in case of unsuccessful operation. */ // @ApiMember(Description="States error message in case of unsuccessful operation.", ParameterType="model") public var errorMessage:String? required public init(){} } public class NewOrderItem : Codable { /** * Unique ID for the part. */ // @ApiMember(Description="Unique ID for the part.", IsRequired=true, ParameterType="body") public var partId:Int? /** * Quantity to order. */ // @ApiMember(Description="Quantity to order.", IsRequired=true, ParameterType="body") public var quantity:Int? /** * Custom reference. */ // @ApiMember(Description="Custom reference.", ParameterType="body") public var reference:String? required public init(){} } public protocol IAddress : ITaxRateContainer { var id:Int? { get set } var customerId:Int? { get set } var type:AddressType? { get set } var companyName:String? { get set } var firstName:String? { get set } var lastName:String? { get set } var streetName:String? { get set } var houseNumber:String? { get set } var houseNumberAddition:String? { get set } var postalCode:String? { get set } var city:String? { get set } var countryCode:String? { get set } var telephoneNumber:String? { get set } } public protocol ITaxRateContainer { var taxRate:Double? { get set } } public enum AddressType : String, Codable { case Invoice case Delivery case Dropshipment }