/* Options: Date: 2026-05-19 09:52:46 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: GetStockDetail.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class Pos implements IConvertible { /** * POS Code */ // @ApiMember(Description="POS Code", IsRequired=true) String? posCode; /** * Name of the POS */ // @ApiMember(Description="Name of the POS", IsRequired=true) String? name; /** * City of the POS */ // @ApiMember(Description="City of the POS", IsRequired=true) String? city; /** * Address of the POS */ // @ApiMember(Description="Address of the POS", IsRequired=true) String? address; /** * Country of the POS */ // @ApiMember(Description="Country of the POS", IsRequired=true) String? country; /** * Brand of the POS */ // @ApiMember(Description="Brand of the POS", IsRequired=true) String? brand; Pos({this.posCode,this.name,this.city,this.address,this.country,this.brand}); Pos.fromJson(Map json) { fromMap(json); } fromMap(Map json) { posCode = json['posCode']; name = json['name']; city = json['city']; address = json['address']; country = json['country']; brand = json['brand']; return this; } Map toJson() => { 'posCode': posCode, 'name': name, 'city': city, 'address': address, 'country': country, 'brand': brand }; getTypeName() => "Pos"; TypeContext? context = _ctx; } class Pos implements IConvertible { /** * Name of the POS */ // @ApiMember(Description="Name of the POS", IsRequired=true) String? name; /** * POS Code */ // @ApiMember(Description="POS Code", IsRequired=true) String? posCode; /** * Pos Code To Be Displayed */ // @ApiMember(Description="Pos Code To Be Displayed", IsRequired=true) String? posCodeToBeDisplayed; /** * Country of the POS */ // @ApiMember(Description="Country of the POS", IsRequired=true) String? country; /** * City of the POS */ // @ApiMember(Description="City of the POS", IsRequired=true) String? city; /** * Postal Code */ // @ApiMember(Description="Postal Code", IsRequired=true) String? postalCode; /** * State */ // @ApiMember(Description="State", IsRequired=true) String? state; /** * Street */ // @ApiMember(Description="Street", IsRequired=true) String? street; Pos({this.name,this.posCode,this.posCodeToBeDisplayed,this.country,this.city,this.postalCode,this.state,this.street}); Pos.fromJson(Map json) { fromMap(json); } fromMap(Map json) { name = json['name']; posCode = json['posCode']; posCodeToBeDisplayed = json['posCodeToBeDisplayed']; country = json['country']; city = json['city']; postalCode = json['postalCode']; state = json['state']; street = json['street']; return this; } Map toJson() => { 'name': name, 'posCode': posCode, 'posCodeToBeDisplayed': posCodeToBeDisplayed, 'country': country, 'city': city, 'postalCode': postalCode, 'state': state, 'street': street }; getTypeName() => "Pos"; TypeContext? context = _ctx; } class UnitNetAmount implements IConvertible { /** * Currency Iso Code */ // @ApiMember(Description="Currency Iso Code", IsRequired=true) String? currencyIsoCode; /** * Value */ // @ApiMember(Description="Value", IsRequired=true) double? value; UnitNetAmount({this.currencyIsoCode,this.value}); UnitNetAmount.fromJson(Map json) { fromMap(json); } fromMap(Map json) { currencyIsoCode = json['currencyIsoCode']; value = JsonConverters.toDouble(json['value']); return this; } Map toJson() => { 'currencyIsoCode': currencyIsoCode, 'value': value }; getTypeName() => "UnitNetAmount"; TypeContext? context = _ctx; } class StockPositionItem implements IConvertible { /** * Quantity */ // @ApiMember(Description="Quantity", IsRequired=true) int? quantity; /** * Serial Number */ // @ApiMember(Description="Serial Number") String? serialNumber; /** * Stock Date */ // @ApiMember(Description="Stock Date", IsRequired=true) String? stockDate; /** * Loaded On Date */ // @ApiMember(Description="Loaded On Date", IsRequired=true) String? loadedOnDate; /** * Type e.g. consignment or standard */ // @ApiMember(Description="Type e.g. consignment or standard", IsRequired=true) String? type; /** * Is Consignment Sellable */ // @ApiMember(Description="Is Consignment Sellable ", IsRequired=true) bool? isConsignmentSellable; /** * Sell-In Price. Disclaimer: this data will be arriving empty/null due to DealerCost project still being in test phase. */ // @ApiMember(Description="Sell-In Price. Disclaimer: this data will be arriving empty/null due to DealerCost project still being in test phase.") UnitNetAmount? unitNetAmount; /** * Retail Sales Price */ // @ApiMember(Description="Retail Sales Price") UnitNetAmount? retailSalesPrice; StockPositionItem({this.quantity,this.serialNumber,this.stockDate,this.loadedOnDate,this.type,this.isConsignmentSellable,this.unitNetAmount,this.retailSalesPrice}); StockPositionItem.fromJson(Map json) { fromMap(json); } fromMap(Map json) { quantity = json['quantity']; serialNumber = json['serialNumber']; stockDate = json['stockDate']; loadedOnDate = json['loadedOnDate']; type = json['type']; isConsignmentSellable = json['isConsignmentSellable']; unitNetAmount = JsonConverters.fromJson(json['unitNetAmount'],'UnitNetAmount',context!); retailSalesPrice = JsonConverters.fromJson(json['retailSalesPrice'],'UnitNetAmount',context!); return this; } Map toJson() => { 'quantity': quantity, 'serialNumber': serialNumber, 'stockDate': stockDate, 'loadedOnDate': loadedOnDate, 'type': type, 'isConsignmentSellable': isConsignmentSellable, 'unitNetAmount': JsonConverters.toJson(unitNetAmount,'UnitNetAmount',context!), 'retailSalesPrice': JsonConverters.toJson(retailSalesPrice,'UnitNetAmount',context!) }; getTypeName() => "StockPositionItem"; TypeContext? context = _ctx; } class GetStockDetailResponse implements IConvertible { /** * Article code */ // @ApiMember(Description="Article code", IsRequired=true) String? articleCode; /** * Brand */ // @ApiMember(Description="Brand", IsRequired=true) String? brand; /** * Pos Code */ // @ApiMember(Description="Pos Code", IsRequired=true) String? posCode; /** * Current Stock Quantity */ // @ApiMember(Description="Current Stock Quantity", IsRequired=true) int? currentStockQuantity; /** * Shared Stock Location */ // @ApiMember(Description="Shared Stock Location", IsRequired=true) Pos? sharedStockLocation; /** * Stock Positions */ // @ApiMember(Description="Stock Positions", IsRequired=true) List? stockPositions; GetStockDetailResponse({this.articleCode,this.brand,this.posCode,this.currentStockQuantity,this.sharedStockLocation,this.stockPositions}); GetStockDetailResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { articleCode = json['articleCode']; brand = json['brand']; posCode = json['posCode']; currentStockQuantity = json['currentStockQuantity']; sharedStockLocation = JsonConverters.fromJson(json['sharedStockLocation'],'Pos',context!); stockPositions = JsonConverters.fromJson(json['stockPositions'],'List',context!); return this; } Map toJson() => { 'articleCode': articleCode, 'brand': brand, 'posCode': posCode, 'currentStockQuantity': currentStockQuantity, 'sharedStockLocation': JsonConverters.toJson(sharedStockLocation,'Pos',context!), 'stockPositions': JsonConverters.toJson(stockPositions,'List',context!) }; getTypeName() => "GetStockDetailResponse"; TypeContext? context = _ctx; } // @Route("/stock/{brand}/{posCode}/{articleCode}", "GET") class GetStockDetail implements IReturn, IConvertible, IGet { /** * Brand */ // @ApiMember(Description="Brand", IsRequired=true) String? brand; /** * POS Legacy */ // @ApiMember(Description="POS Legacy", IsRequired=true) String? posCode; /** * Article Code */ // @ApiMember(Description="Article Code", IsRequired=true) String? articleCode; GetStockDetail({this.brand,this.posCode,this.articleCode}); GetStockDetail.fromJson(Map json) { fromMap(json); } fromMap(Map json) { brand = json['brand']; posCode = json['posCode']; articleCode = json['articleCode']; return this; } Map toJson() => { 'brand': brand, 'posCode': posCode, 'articleCode': articleCode }; createResponse() => GetStockDetailResponse(); getResponseTypeName() => "GetStockDetailResponse"; getTypeName() => "GetStockDetail"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: { 'Pos': TypeInfo(TypeOf.Class, create:() => Pos()), 'UnitNetAmount': TypeInfo(TypeOf.Class, create:() => UnitNetAmount()), 'StockPositionItem': TypeInfo(TypeOf.Class, create:() => StockPositionItem()), 'GetStockDetailResponse': TypeInfo(TypeOf.Class, create:() => GetStockDetailResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetStockDetail': TypeInfo(TypeOf.Class, create:() => GetStockDetail()), });