/* Options: Date: 2026-05-19 10:51:21 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: GetStockPaginated.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class IPagedRequest { int? page; int? items; bool? noCount; String? sortBy; } class RetailSalesPrice implements IConvertible { /** * Currency Iso Code */ // @ApiMember(Description="Currency Iso Code", IsRequired=true) String? currencyIsoCode; /** * Value */ // @ApiMember(Description="Value", IsRequired=true) double? value; RetailSalesPrice({this.currencyIsoCode,this.value}); RetailSalesPrice.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() => "RetailSalesPrice"; TypeContext? context = _ctx; } class PaginatedStockElement implements IConvertible { /** * 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; /** * Article Code */ // @ApiMember(Description="Article Code", IsRequired=true) String? articleCode; /** * Serial Number */ // @ApiMember(Description="Serial Number") String? serialNumber; /** * Current Stock Quantity */ // @ApiMember(Description="Current Stock Quantity", IsRequired=true) int? quantity; /** * 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; /** * Retail Sales Price */ // @ApiMember(Description="Retail Sales Price", IsRequired=true) RetailSalesPrice? retailSalesPrice; PaginatedStockElement({this.posCode,this.posCodeToBeDisplayed,this.articleCode,this.serialNumber,this.quantity,this.type,this.isConsignmentSellable,this.retailSalesPrice}); PaginatedStockElement.fromJson(Map json) { fromMap(json); } fromMap(Map json) { posCode = json['posCode']; posCodeToBeDisplayed = json['posCodeToBeDisplayed']; articleCode = json['articleCode']; serialNumber = json['serialNumber']; quantity = json['quantity']; type = json['type']; isConsignmentSellable = json['isConsignmentSellable']; retailSalesPrice = JsonConverters.fromJson(json['retailSalesPrice'],'RetailSalesPrice',context!); return this; } Map toJson() => { 'posCode': posCode, 'posCodeToBeDisplayed': posCodeToBeDisplayed, 'articleCode': articleCode, 'serialNumber': serialNumber, 'quantity': quantity, 'type': type, 'isConsignmentSellable': isConsignmentSellable, 'retailSalesPrice': JsonConverters.toJson(retailSalesPrice,'RetailSalesPrice',context!) }; getTypeName() => "PaginatedStockElement"; TypeContext? context = _ctx; } class GetStockPaginatedResponse implements IConvertible { /** * Total Pages */ // @ApiMember(Description="Total Pages", IsRequired=true) int? totalPages; /** * Total Results */ // @ApiMember(Description="Total Results", IsRequired=true) int? totalResults; /** * Index of the result set returned */ // @ApiMember(Description="Index of the result set returned", IsRequired=true) int? page; /** * Size of the result set returned */ // @ApiMember(Description="Size of the result set returned", IsRequired=true) int? items; /** * List of movements */ // @ApiMember(Description="List of movements", IsRequired=true) List? elements; GetStockPaginatedResponse({this.totalPages,this.totalResults,this.page,this.items,this.elements}); GetStockPaginatedResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { totalPages = json['totalPages']; totalResults = json['totalResults']; page = json['page']; items = json['items']; elements = JsonConverters.fromJson(json['elements'],'List',context!); return this; } Map toJson() => { 'totalPages': totalPages, 'totalResults': totalResults, 'page': page, 'items': items, 'elements': JsonConverters.toJson(elements,'List',context!) }; getTypeName() => "GetStockPaginatedResponse"; TypeContext? context = _ctx; } // @Route("/stock/{brand}/{posCode}", "GET") class GetStockPaginated implements IReturn, IPagedRequest, IConvertible, IGet { /** * Brand */ // @ApiMember(Description="Brand", IsRequired=true) String? brand; /** * POS Legacy */ // @ApiMember(Description="POS Legacy", IsRequired=true) String? posCode; /** * Search Key (Article or SerialNumber) */ // @ApiMember(Description="Search Key (Article or SerialNumber)") String? searchKey; /** * Index of the result set returned */ // @ApiMember(Description="Index of the result set returned") int? page; /** * Size of the result set returned */ // @ApiMember(Description="Size of the result set returned") int? items; /** * Omit precise record count - save on performance */ // @ApiMember(Description="Omit precise record count - save on performance") bool? noCount; /** * Sorting expression */ // @ApiMember(Description="Sorting expression") String? sortBy; /** * Parameter - Include Chain POSes Stock */ // @ApiMember(Description="Parameter - Include Chain POSes Stock ") bool? includeChainPosesStock; /** * Include Retail Sales Price in the Output, by default: false */ // @ApiMember(Description="Include Retail Sales Price in the Output, by default: false") bool? includeRSP; GetStockPaginated({this.brand,this.posCode,this.searchKey,this.page,this.items,this.noCount,this.sortBy,this.includeChainPosesStock,this.includeRSP}); GetStockPaginated.fromJson(Map json) { fromMap(json); } fromMap(Map json) { brand = json['brand']; posCode = json['posCode']; searchKey = json['searchKey']; page = json['page']; items = json['items']; noCount = json['noCount']; sortBy = json['sortBy']; includeChainPosesStock = json['includeChainPosesStock']; includeRSP = json['includeRSP']; return this; } Map toJson() => { 'brand': brand, 'posCode': posCode, 'searchKey': searchKey, 'page': page, 'items': items, 'noCount': noCount, 'sortBy': sortBy, 'includeChainPosesStock': includeChainPosesStock, 'includeRSP': includeRSP }; createResponse() => GetStockPaginatedResponse(); getResponseTypeName() => "GetStockPaginatedResponse"; getTypeName() => "GetStockPaginated"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: { 'IPagedRequest': TypeInfo(TypeOf.Interface), 'RetailSalesPrice': TypeInfo(TypeOf.Class, create:() => RetailSalesPrice()), 'PaginatedStockElement': TypeInfo(TypeOf.Class, create:() => PaginatedStockElement()), 'GetStockPaginatedResponse': TypeInfo(TypeOf.Class, create:() => GetStockPaginatedResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetStockPaginated': TypeInfo(TypeOf.Class, create:() => GetStockPaginated()), });