/* Options: Date: 2026-05-19 10:57:48 SwiftVersion: 5.0 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateOrderV2.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/purchase/v2", "POST") public class CreateOrderV2 : Codable { /** * Purchase order ID, total length-max with x-booster-App header: 99 */ // @ApiMember(Description="Purchase order ID, total length-max with x-booster-App header: 99", IsRequired=true) public var orderId:String /** * Global Pos Code for the intended Order e.g. ES100:102048 */ // @ApiMember(Description="Global Pos Code for the intended Order e.g. ES100:102048", IsRequired=true) public var posCode:String /** * Brand Trigram of the intended Order, e.g. 'IWC', 'CAR', etc. */ // @ApiMember(Description="Brand Trigram of the intended Order, e.g. 'IWC', 'CAR', etc.", IsRequired=true) public var brand:String /** * Additional Notes regarding the Order */ // @ApiMember(Description="Additional Notes regarding the Order") public var notes:String /** * Customer Reference */ // @ApiMember(Description="Customer Reference") public var customerReference:String /** * Customer Reference for Consignment Order */ // @ApiMember(Description="Customer Reference for Consignment Order") public var customerReferenceConsignment:String /** * Purchase order date, e.g. '2020-12-31' */ // @ApiMember(Description="Purchase order date, e.g. '2020-12-31'") public var orderDate:Date? /** * Details of the end Customer */ // @ApiMember(Description="Details of the end Customer") public var splittedOrders:[SplittedOrder] = [] /** * Booster1 ID of the end Customer */ // @ApiMember(Description="Booster1 ID of the end Customer") public var endCustomerBooster1Id:String /** * Details of the end Customer */ // @ApiMember(Description="Details of the end Customer") public var endCustomerDetails:EndCustomerDetails required public init(){} } public class EndCustomerDetails : Codable { /** * Title of the end Customer, e.g. 'MR', 'MRS'. */ // @ApiMember(Description="Title of the end Customer, e.g. 'MR', 'MRS'.") public var title:String /** * First Name of the end Customer */ // @ApiMember(Description="First Name of the end Customer", IsRequired=true) public var firstName:String /** * Last Name of the end Customer */ // @ApiMember(Description="Last Name of the end Customer", IsRequired=true) public var lastName:String /** * Email of the end Customer */ // @ApiMember(Description="Email of the end Customer") public var email:String /** * Phone number of the end Customer, e.g. '0032477123456'. */ // @ApiMember(Description="Phone number of the end Customer, e.g. '0032477123456'. ") public var phone:String /** * Countr code in the shipping address, e.g. 'BE' (ISO Code) */ // @ApiMember(Description="Countr code in the shipping address, e.g. 'BE' (ISO Code)", IsRequired=true) public var country:String /** * City name in the shipping address */ // @ApiMember(Description="City name in the shipping address", IsRequired=true) public var city:String /** * Street name in the shipping address */ // @ApiMember(Description="Street name in the shipping address", IsRequired=true) public var street:String /** * House number in the shipping address */ // @ApiMember(Description="House number in the shipping address") public var houseNumber:String /** * Building number in the shipping address */ // @ApiMember(Description="Building number in the shipping address") public var building:String /** * Postal code in the shipping address */ // @ApiMember(Description="Postal code in the shipping address") public var postalCode:String /** * Region code in the shipping address, e.g. 'VL' (ISO Code) */ // @ApiMember(Description="Region code in the shipping address, e.g. 'VL' (ISO Code)") public var region:String /** * District name in the shipping address */ // @ApiMember(Description="District name in the shipping address") public var district:String /** * Additional Info number to the shipping address */ // @ApiMember(Description="Additional Info number to the shipping address") public var additionalInfo:String required public init(){} } public class SplittedOrder : Codable { /** * Ship To Pos Code */ // @ApiMember(Description="Ship To Pos Code", IsRequired=true) public var shipToId:String /** * Final Ship To Pos Code */ // @ApiMember(Description="Final Ship To Pos Code") public var finalShipToId:String /** * Bill To Pos Code */ // @ApiMember(Description="Bill To Pos Code", IsRequired=true) public var billToId:String /** * Sold To Pos Code */ // @ApiMember(Description="Sold To Pos Code", IsRequired=true) public var soldToId:String /** * Sales Representative Code */ // @ApiMember(Description="Sales Representative Code") public var salesRepresentativeId:String /** * List of Articles to be created */ // @ApiMember(Description="List of Articles to be created", IsRequired=true) public var orderItems:[CreateOrderItemRequestV2] = [] required public init(){} } public class StrapItem : Codable { /** * Article reference */ // @ApiMember(Description="Article reference") public var speakingArticleCode:String /** * Buckle type Description */ // @ApiMember(Description="Buckle type Description") public var buckleTypeDescription:String /** * Buckle type */ // @ApiMember(Description="Buckle type") public var buckleTypeCode:String /** * watch 6 Length */ // @ApiMember(Description="watch 6 Length") public var watch6Length:Int? /** * watch 12 Length */ // @ApiMember(Description="watch 12 Length") public var watch12Length:Int? /** * Article Material Code */ // @ApiMember(Description="Article Material Code") public var materialCode:String /** * Article Material Description */ // @ApiMember(Description="Article Material Description") public var materialDescription:String /** * Article Color Code */ // @ApiMember(Description="Article Color Code") public var colorCode:String /** * Article Color Description */ // @ApiMember(Description="Article Color Description") public var colorDescription:String /** * Buckle Witdh */ // @ApiMember(Description="Buckle Witdh") public var buckleWidth:String /** * Article Lining Code */ // @ApiMember(Description="Article Lining Code") public var liningCode:String /** * Article Lining Description */ // @ApiMember(Description="Article Lining Description") public var liningDescription:String /** * Article Stitching Code */ // @ApiMember(Description="Article Stitching Code") public var stitchingCode:String /** * Article Stitching Description */ // @ApiMember(Description="Article Stitching Description") public var stitchingDescription:String /** * Article Edge Code */ // @ApiMember(Description="Article Edge Code") public var edgeCode:String /** * Article Edge Description */ // @ApiMember(Description="Article Edge Description") public var edgeDescription:String /** * Article Padding Code */ // @ApiMember(Description="Article Padding Code") public var paddingCode:String /** * Article Padding Description */ // @ApiMember(Description="Article Padding Description") public var paddingDescription:String /** * Article Speciality Code */ // @ApiMember(Description="Article Speciality Code") public var specialtyCode:String /** * Article Speciality Description */ // @ApiMember(Description="Article Speciality Description") public var specialtyDescription:String /** * Nuancier Code */ // @ApiMember(Description="Nuancier Code") public var nuancierCode:String /** * Strap Vip Order */ // @ApiMember(Description="Strap Vip Order") public var isStrapVipOrder:Bool? required public init(){} } public class CreateOrderItemRequestV2 : Codable { /** * Line Number */ // @ApiMember(Description="Line Number", IsRequired=true) public var lineNumber:Int /** * Reference ID of the article/product, e.g. 'CRWB520003' */ // @ApiMember(Description="Reference ID of the article/product, e.g. 'CRWB520003'", IsRequired=true) public var articleCode:String /** * Desired quantity of the article */ // @ApiMember(Description="Desired quantity of the article", IsRequired=true) public var quantity:Int /** * Requested Delivery Date of the Item, e.g. '2020-12-30' */ // @ApiMember(Description="Requested Delivery Date of the Item, e.g. '2020-12-30'") public var requestedDeliveryDate:Date? /** * Strap definition */ // @ApiMember(Description="Strap definition") public var strap:StrapItem /** * Purchase order type, e.g. 'WCFS', null. Null for ordinary order */ // @ApiMember(Description="Purchase order type, e.g. 'WCFS', null. Null for ordinary order") public var orderType:String /** * DeliveryPlantId of item, e.g.: CHD6 */ // @ApiMember(Description="DeliveryPlantId of item, e.g.: CHD6") public var deliveryPlantId:String /** * Reason Code */ // @ApiMember(Description="Reason Code", IsRequired=true) public var reasonCode:String /** * Order Delivery Priority, e.g.: 10, 20, 30, 40, 50 */ // @ApiMember(Description="Order Delivery Priority, e.g.: 10, 20, 30, 40, 50") public var orderDeliveryPriority:Int? /** * Buckle Summary, can be get from order simulation */ // @ApiMember(Description="Buckle Summary, can be get from order simulation") public var buckleSummary:String /** * Material Summary, can be get from order simulation */ // @ApiMember(Description="Material Summary, can be get from order simulation") public var materialSummary:String /** * Content Summary, can be get from order simulation */ // @ApiMember(Description="Content Summary, can be get from order simulation") public var contentSummary:String /** * Strap Summary, can be get from order simulation */ // @ApiMember(Description="Strap Summary, can be get from order simulation") public var strapSummary:String required public init(){} }