/* Options: Date: 2026-05-19 09:52:26 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateSellOut.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CreateSellOutResponse implements IConvertible { /** * Unique Identifier of the Sell-out item created in Booster */ // @ApiMember(Description="Unique Identifier of the Sell-out item created in Booster") int? saleDetailId; /** * Unique Identifiers of the Sell-out items created in Booster if more than one */ // @ApiMember(Description="Unique Identifiers of the Sell-out items created in Booster if more than one") List? saleDetailIds; /** * Unique Identifier of the Sell-out header created in Booster */ // @ApiMember(Description="Unique Identifier of the Sell-out header created in Booster", IsRequired=true) int? saleId; CreateSellOutResponse({this.saleDetailId,this.saleDetailIds,this.saleId}); CreateSellOutResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { saleDetailId = json['saleDetailId']; saleDetailIds = JsonConverters.fromJson(json['saleDetailIds'],'List',context!); saleId = json['saleId']; return this; } Map toJson() => { 'saleDetailId': saleDetailId, 'saleDetailIds': JsonConverters.toJson(saleDetailIds,'List',context!), 'saleId': saleId }; getTypeName() => "CreateSellOutResponse"; TypeContext? context = _ctx; } // @Route("/warranty", "POST") class CreateSellOut implements IReturn, IConvertible, IPost { /** * Brand Trigram, e.g. CAR, IWC; compulsory only if articleCode is not provided */ // @ApiMember(Description="Brand Trigram, e.g. CAR, IWC; compulsory only if articleCode is not provided") String? brand; /** * Richemont POS code */ // @ApiMember(Description="Richemont POS code", IsRequired=true) String? posCode; /** * Receipt or Invoice Number */ // @ApiMember(Description="Receipt or Invoice Number") String? documentNumber; /** * Date of the Sell-out */ // @ApiMember(Description="Date of the Sell-out", IsRequired=true) DateTime? documentDate; /** * Position Number */ // @ApiMember(Description="Position Number") int? documentLineNumber; /** * Richemont Reference Code of the item */ // @ApiMember(Description="Richemont Reference Code of the item", IsRequired=true) String? articleCode; /** * Serial Number of the item */ // @ApiMember(Description="Serial Number of the item") String? serialNumber; /** * Use positive for standard Sell-out and negative quantity for return */ // @ApiMember(Description="Use positive for standard Sell-out and negative quantity for return", IsRequired=true) int? quantity; /** * Sold Price */ // @ApiMember(Description="Sold Price") double? unitPrice; /** * Currency of the sold price */ // @ApiMember(Description="Currency of the sold price") String? currencyCode; /** * Booster Customer Id */ // @ApiMember(Description="Booster Customer Id") int? boosterCustomerId; /** * Sale Representative Email e.g. rauf.aliyev@richemont.com */ // @ApiMember(Description="Sale Representative Email e.g. rauf.aliyev@richemont.com") List? saleRepresentativeEmails; /** * Promoter Type ID, e.g. DAI, FIT, GRT */ // @ApiMember(Description="Promoter Type ID, e.g. DAI, FIT, GRT") String? promoterTypeId; /** * Return Reason ID, e.g ADM, CLR, EXC, DEF, OTH */ // @ApiMember(Description="Return Reason ID, e.g ADM, CLR, EXC, DEF, OTH") String? returnReasonId; /** * Sale related comments */ // @ApiMember(Description="Sale related comments") String? comments; /** * Original Sale Detail Id */ // @ApiMember(Description="Original Sale Detail Id") int? originalSaleDetailId; /** * To have the piece back in stock as consignment in case of consignment sellout return */ // @ApiMember(Description="To have the piece back in stock as consignment in case of consignment sellout return") bool? consSelloutReturnInStock; CreateSellOut({this.brand,this.posCode,this.documentNumber,this.documentDate,this.documentLineNumber,this.articleCode,this.serialNumber,this.quantity,this.unitPrice,this.currencyCode,this.boosterCustomerId,this.saleRepresentativeEmails,this.promoterTypeId,this.returnReasonId,this.comments,this.originalSaleDetailId,this.consSelloutReturnInStock}); CreateSellOut.fromJson(Map json) { fromMap(json); } fromMap(Map json) { brand = json['brand']; posCode = json['posCode']; documentNumber = json['documentNumber']; documentDate = JsonConverters.fromJson(json['documentDate'],'DateTime',context!); documentLineNumber = json['documentLineNumber']; articleCode = json['articleCode']; serialNumber = json['serialNumber']; quantity = json['quantity']; unitPrice = JsonConverters.toDouble(json['unitPrice']); currencyCode = json['currencyCode']; boosterCustomerId = json['boosterCustomerId']; saleRepresentativeEmails = JsonConverters.fromJson(json['saleRepresentativeEmails'],'List',context!); promoterTypeId = json['promoterTypeId']; returnReasonId = json['returnReasonId']; comments = json['comments']; originalSaleDetailId = json['originalSaleDetailId']; consSelloutReturnInStock = json['consSelloutReturnInStock']; return this; } Map toJson() => { 'brand': brand, 'posCode': posCode, 'documentNumber': documentNumber, 'documentDate': JsonConverters.toJson(documentDate,'DateTime',context!), 'documentLineNumber': documentLineNumber, 'articleCode': articleCode, 'serialNumber': serialNumber, 'quantity': quantity, 'unitPrice': unitPrice, 'currencyCode': currencyCode, 'boosterCustomerId': boosterCustomerId, 'saleRepresentativeEmails': JsonConverters.toJson(saleRepresentativeEmails,'List',context!), 'promoterTypeId': promoterTypeId, 'returnReasonId': returnReasonId, 'comments': comments, 'originalSaleDetailId': originalSaleDetailId, 'consSelloutReturnInStock': consSelloutReturnInStock }; createResponse() => CreateSellOutResponse(); getResponseTypeName() => "CreateSellOutResponse"; getTypeName() => "CreateSellOut"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: { 'CreateSellOutResponse': TypeInfo(TypeOf.Class, create:() => CreateSellOutResponse()), 'CreateSellOut': TypeInfo(TypeOf.Class, create:() => CreateSellOut()), });