/* Options: Date: 2026-08-27 07:10:47 Version: 10.08 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SimulateOrderV2.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/purchase/simulate/v2", Verbs="POST") open class SimulateOrderV2 : IReturn { /** * 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) open var brand:String? = null /** * 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) open var posCode:String? = null /** * Customer Reference */ @ApiMember(Description="Customer Reference") open var customerReference:String? = null /** * Additional Notes regarding the Order */ @ApiMember(Description="Additional Notes regarding the Order") open var notes:String? = null /** * Purchase order date, e.g. '2020-12-31' */ @ApiMember(Description="Purchase order date, e.g. '2020-12-31'") open var orderDate:Date? = null /** * List of Articles to be simulated */ @ApiMember(Description="List of Articles to be simulated", IsRequired=true) open var orderItems:ArrayList = ArrayList() /** * Booster1 ID of the end Customer */ @ApiMember(Description="Booster1 ID of the end Customer") open var endCustomerBooster1Id:String? = null /** * Details of the end Customer */ @ApiMember(Description="Details of the end Customer") open var endCustomerDetails:EndCustomerDetails? = null companion object { private val responseType = SimulateOrderResponseV2::class.java } override fun getResponseType(): Any? = SimulateOrderV2.responseType } open class SimulateOrderResponseV2 { /** * List of splitted order simulation results */ @ApiMember(Description="List of splitted order simulation results", IsRequired=true) open var results:HashMap = HashMap() /** * Addresses which order can be shipped to (common list for all splitted orders) */ @ApiMember(Description="Addresses which order can be shipped to (common list for all splitted orders)") open var shipTo:ArrayList? = null /** * Addresses which order can be final shipped to (common list for all splitted orders) */ @ApiMember(Description="Addresses which order can be final shipped to (common list for all splitted orders)") open var finalShipTo:ArrayList? = null /** * Addresses which order can be billed to (common list for all splitted orders) */ @ApiMember(Description="Addresses which order can be billed to (common list for all splitted orders)") open var billTo:ArrayList? = null /** * Address which order is made to (common list for all splitted orders) */ @ApiMember(Description="Address which order is made to (common list for all splitted orders)") open var soldTo:Party? = null /** * Sales representatives (common list for all splitted orders) */ @ApiMember(Description="Sales representatives (common list for all splitted orders)") open var salesRepresentative:Party? = null } open class Address { /** * Address type e.g. Home, Office, Shipping */ @ApiMember(Description="Address type e.g. Home, Office, Shipping", IsRequired=true) open var addressType:String? = null /** * Country Id e.g. it, cn, az, gb, de */ @ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true) open var countryId:String? = null /** * House Number */ @ApiMember(Description="House Number") open var houseNumber:String? = null /** * Region/State */ @ApiMember(Description="Region/State") open var stateId:String? = null /** * City Name */ @ApiMember(Description="City Name") open var city:String? = null /** * Postal Code */ @ApiMember(Description="Postal Code") open var zipCode:String? = null /** * Street Name and Number */ @ApiMember(Description="Street Name and Number") open var street:String? = null /** * Street 2 */ @ApiMember(Description="Street 2") open var street2:String? = null /** * Street 3 */ @ApiMember(Description="Street 3") open var street3:String? = null /** * Street 4 */ @ApiMember(Description="Street 4") open var street4:String? = null /** * Street 5 */ @ApiMember(Description="Street 5") open var street5:String? = null /** * Main Address */ @ApiMember(Description="Main Address", IsRequired=true) open var isMainAddress:Boolean? = null /** * Post Office Box */ @ApiMember(Description="Post Office Box") open var poBox:String? = null /** * Additional Information */ @ApiMember(Description="Additional Information") open var additionalInformation:String? = null } open class SimulateOrderItemRequestV2 { /** * Line Number */ @ApiMember(Description="Line Number", IsRequired=true) open var lineNumber:Int? = null /** * Reference ID of the article/product, e.g. 'CRWB520003' */ @ApiMember(Description="Reference ID of the article/product, e.g. 'CRWB520003'", IsRequired=true) open var articleCode:String? = null /** * Desired quantity of the article */ @ApiMember(Description="Desired quantity of the article", IsRequired=true) open var quantity:Int? = null /** * Requested Delivery Date of the Item, e.g. '2020-12-30' */ @ApiMember(Description="Requested Delivery Date of the Item, e.g. '2020-12-30'") open var requestedDeliveryDate:Date? = null /** * Purchase order type, e.g. 'WCFS', null. Null for ordinary order */ @ApiMember(Description="Purchase order type, e.g. 'WCFS', null. Null for ordinary order") open var orderType:String? = null /** * Final Ship To Pos Code */ @ApiMember(Description="Final Ship To Pos Code") open var finalShipToId:String? = null /** * Strap definition */ @ApiMember(Description="Strap definition") open var strap:StrapItem? = null } open class EndCustomerDetails { /** * Title of the end Customer, e.g. 'MR', 'MRS'. */ @ApiMember(Description="Title of the end Customer, e.g. 'MR', 'MRS'.") open var title:String? = null /** * First Name of the end Customer */ @ApiMember(Description="First Name of the end Customer", IsRequired=true) open var firstName:String? = null /** * Last Name of the end Customer */ @ApiMember(Description="Last Name of the end Customer", IsRequired=true) open var lastName:String? = null /** * Email of the end Customer */ @ApiMember(Description="Email of the end Customer") open var email:String? = null /** * Phone number of the end Customer, e.g. '0032477123456'. */ @ApiMember(Description="Phone number of the end Customer, e.g. '0032477123456'. ") open var phone:String? = null /** * 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) open var country:String? = null /** * City name in the shipping address */ @ApiMember(Description="City name in the shipping address", IsRequired=true) open var city:String? = null /** * Street name in the shipping address */ @ApiMember(Description="Street name in the shipping address", IsRequired=true) open var street:String? = null /** * House number in the shipping address */ @ApiMember(Description="House number in the shipping address") open var houseNumber:String? = null /** * Building number in the shipping address */ @ApiMember(Description="Building number in the shipping address") open var building:String? = null /** * Postal code in the shipping address */ @ApiMember(Description="Postal code in the shipping address") open var postalCode:String? = null /** * Region code in the shipping address, e.g. 'VL' (ISO Code) */ @ApiMember(Description="Region code in the shipping address, e.g. 'VL' (ISO Code)") open var region:String? = null /** * District name in the shipping address */ @ApiMember(Description="District name in the shipping address") open var district:String? = null /** * Additional Info number to the shipping address */ @ApiMember(Description="Additional Info number to the shipping address") open var additionalInfo:String? = null } open class SplittedSimulateOrderResponse { /** * Order Type */ @ApiMember(Description="Order Type", IsRequired=true) open var orderType:String? = null /** * Product Type */ @ApiMember(Description="Product Type", IsRequired=true) open var productType:String? = null /** * List of Articles simulated */ @ApiMember(Description="List of Articles simulated", IsRequired=true) open var orderItems:ArrayList = ArrayList() /** * Total Values */ @ApiMember(Description="Total Values", IsRequired=true) open var totalValues:TotalValues? = null /** * Addresses which order can be shipped to */ @ApiMember(Description="Addresses which order can be shipped to", IsRequired=true) open var shipTo:ArrayList = ArrayList() /** * Addresses which order can be final shipped to */ @ApiMember(Description="Addresses which order can be final shipped to") open var finalShipTo:ArrayList? = null /** * Addresses which order can be billed to */ @ApiMember(Description="Addresses which order can be billed to", IsRequired=true) open var billTo:ArrayList = ArrayList() /** * Address which order is made to */ @ApiMember(Description="Address which order is made to", IsRequired=true) open var soldTo:Party? = null /** * Sales Representative */ @ApiMember(Description="Sales Representative") open var salesRepresentative:Party? = null /** * Warning list */ @ApiMember(Description="Warning list", IsRequired=true) open var warnings:ArrayList = ArrayList() } open class Party { /** * Internal ID of the Element */ @ApiMember(Description="Internal ID of the Element", IsRequired=true) open var id:String? = null /** * Formatted Name of the Element */ @ApiMember(Description="Formatted Name of the Element", IsRequired=true) open var name:String? = null /** * Geographic Address of the Element */ @ApiMember(Description="Geographic Address of the Element") open var address:Address? = null } open class StrapItem { /** * Article reference */ @ApiMember(Description="Article reference") open var speakingArticleCode:String? = null /** * Buckle type Description */ @ApiMember(Description="Buckle type Description") open var buckleTypeDescription:String? = null /** * Buckle type */ @ApiMember(Description="Buckle type") open var buckleTypeCode:String? = null /** * watch 6 Length */ @ApiMember(Description="watch 6 Length") open var watch6Length:Int? = null /** * watch 12 Length */ @ApiMember(Description="watch 12 Length") open var watch12Length:Int? = null /** * Article Material Code */ @ApiMember(Description="Article Material Code") open var materialCode:String? = null /** * Article Material Description */ @ApiMember(Description="Article Material Description") open var materialDescription:String? = null /** * Article Color Code */ @ApiMember(Description="Article Color Code") open var colorCode:String? = null /** * Article Color Description */ @ApiMember(Description="Article Color Description") open var colorDescription:String? = null /** * Buckle Witdh */ @ApiMember(Description="Buckle Witdh") open var buckleWidth:String? = null /** * Article Lining Code */ @ApiMember(Description="Article Lining Code") open var liningCode:String? = null /** * Article Lining Description */ @ApiMember(Description="Article Lining Description") open var liningDescription:String? = null /** * Article Stitching Code */ @ApiMember(Description="Article Stitching Code") open var stitchingCode:String? = null /** * Article Stitching Description */ @ApiMember(Description="Article Stitching Description") open var stitchingDescription:String? = null /** * Article Edge Code */ @ApiMember(Description="Article Edge Code") open var edgeCode:String? = null /** * Article Edge Description */ @ApiMember(Description="Article Edge Description") open var edgeDescription:String? = null /** * Article Padding Code */ @ApiMember(Description="Article Padding Code") open var paddingCode:String? = null /** * Article Padding Description */ @ApiMember(Description="Article Padding Description") open var paddingDescription:String? = null /** * Article Speciality Code */ @ApiMember(Description="Article Speciality Code") open var specialtyCode:String? = null /** * Article Speciality Description */ @ApiMember(Description="Article Speciality Description") open var specialtyDescription:String? = null /** * Nuancier Code */ @ApiMember(Description="Nuancier Code") open var nuancierCode:String? = null /** * Strap Vip Order */ @ApiMember(Description="Strap Vip Order") open var isStrapVipOrder:Boolean? = null } open class SimulateOrderItemResponseV2 { /** * Line Number, e.g 20, 40, 21, 41 */ @ApiMember(Description="Line Number, e.g 20, 40, 21, 41", IsRequired=true) open var lineNumber:Int? = null /** * Parent Line Number, e.g 20, 40 */ @ApiMember(Description="Parent Line Number, e.g 20, 40", IsRequired=true) open var parentLineNumber:Int? = null /** * Original line number in the request. Line numbers are remapped after the split */ @ApiMember(Description="Original line number in the request. Line numbers are remapped after the split", IsRequired=true) open var requestLineNumber:Int? = null /** * Reference No of item, e.g.: CRWB521234 */ @ApiMember(Description="Reference No of item, e.g.: CRWB521234", IsRequired=true) open var articleCode:String? = null /** * Substituted reference No of item, e.g.: CRWB520003 */ @ApiMember(Description="Substituted reference No of item, e.g.: CRWB520003") open var substitutedArticleCode:String? = null /** * DeliveryPlantId of item, e.g.: CHD6 */ @ApiMember(Description="DeliveryPlantId of item, e.g.: CHD6", IsRequired=true) open var deliveryPlantId:String? = null /** * Expected Delivery Date, e.g. '2020-12-30' */ @ApiMember(Description="Expected Delivery Date, e.g. '2020-12-30'") open var expectedDeliveryDate:String? = null /** * Buckle Summary, need to be forwarded to order creation */ @ApiMember(Description="Buckle Summary, need to be forwarded to order creation") open var buckleSummary:String? = null /** * Material Summary, need to be forwarded to order creation */ @ApiMember(Description="Material Summary, need to be forwarded to order creation") open var materialSummary:String? = null /** * Content Summary, need to be forwarded to order creation */ @ApiMember(Description="Content Summary, need to be forwarded to order creation") open var contentSummary:String? = null /** * Strap Summary, need to be forwarded to order creation */ @ApiMember(Description="Strap Summary, need to be forwarded to order creation") open var strapSummary:String? = null /** * Item Total Values */ @ApiMember(Description="Item Total Values", IsRequired=true) open var totalValues:ItemTotalValues? = null /** * Warning list */ @ApiMember(Description="Warning list", IsRequired=true) open var warnings:ArrayList = ArrayList() } open class TotalValues { /** * Gross Weight */ @ApiMember(Description="Gross Weight", IsRequired=true) open var grossWeightMeasure:Quantity? = null /** * Net Weight */ @ApiMember(Description="Net Weight", IsRequired=true) open var netWeightMeasure:Quantity? = null /** * Gross Volume */ @ApiMember(Description="Gross Volume", IsRequired=true) open var grossVolumeMeasure:Quantity? = null /** * Gross Amount */ @ApiMember(Description="Gross Amount", IsRequired=true) open var grossAmount:Amount? = null /** * Net Amount */ @ApiMember(Description="Net Amount", IsRequired=true) open var netAmount:Amount? = null /** * Tax Amount */ @ApiMember(Description="Tax Amount", IsRequired=true) open var taxAmount:Amount? = null } open class Warning { /** * Id */ @ApiMember(Description="Id", IsRequired=true) open var id:String? = null /** * Message */ @ApiMember(Description="Message", IsRequired=true) open var message:String? = null /** * Severity code, possible values: 1, 2, 3, 4 */ @ApiMember(Description="Severity code, possible values: 1, 2, 3, 4", IsRequired=true) open var severityCode:Int? = null } open class Address { /** * Country ID */ @ApiMember(Description="Country ID") open var countryId:String? = null /** * State ID */ @ApiMember(Description="State ID") open var stateId:String? = null /** * City Name */ @ApiMember(Description="City Name") open var city:String? = null /** * Street Name and Number */ @ApiMember(Description="Street Name and Number") open var street:String? = null /** * Postal Code */ @ApiMember(Description="Postal Code") open var zipCode:String? = null } open class Amount { /** * Value */ @ApiMember(Description="Value", IsRequired=true) open var value:BigDecimal? = null /** * Currency */ @ApiMember(Description="Currency", IsRequired=true) open var currency:String? = null } open class ItemTotalValues { /** * Requested Quantity */ @ApiMember(Description="Requested Quantity") open var requestedQuantity:Quantity? = null /** * Confirmed Quantity */ @ApiMember(Description="Confirmed Quantity") open var confirmedQuantity:Quantity? = null /** * Available Quantity */ @ApiMember(Description="Available Quantity") open var availableQuantity:Quantity? = null /** * Gross Weight */ @ApiMember(Description="Gross Weight") open var grossWeightMeasure:Quantity? = null /** * Net Weight */ @ApiMember(Description="Net Weight") open var netWeightMeasure:Quantity? = null /** * Volume */ @ApiMember(Description="Volume") open var volumeMeasure:Quantity? = null /** * Net Amount Line Total */ @ApiMember(Description="Net Amount Line Total") open var netAmount:Amount? = null /** * Net Price Line Total */ @ApiMember(Description="Net Price Line Total") open var netPrice:AmountAndQuantity? = null /** * Tax Amount Line Total */ @ApiMember(Description="Tax Amount Line Total") open var taxAmount:Amount? = null /** * Retail Sales Price Line Total */ @ApiMember(Description="Retail Sales Price Line Total") open var retailSalesPriceAmount:Amount? = null } open class Quantity { /** * Unit */ @ApiMember(Description="Unit", IsRequired=true) open var unit:String? = null /** * Value */ @ApiMember(Description="Value", IsRequired=true) open var value:BigDecimal? = null } open class AmountAndQuantity { /** * Amount */ @ApiMember(Description="Amount", IsRequired=true) open var amount:Amount? = null /** * Base Quantity */ @ApiMember(Description="Base Quantity", IsRequired=true) open var baseQuantity:Quantity? = null }