/* Options: Date: 2026-05-19 09:52:40 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: ExportInvoice.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class ProductCategory implements IConvertible { /** * Brand Category ID */ // @ApiMember(Description="Brand Category ID") String? brandCategoryId; /** * Grand Category ID */ // @ApiMember(Description="Grand Category ID", IsRequired=true) String? grandCategoryId; /** * Master Category ID */ // @ApiMember(Description="Master Category ID") String? masterCategoryId; /** * Category ID */ // @ApiMember(Description="Category ID") String? categoryId; /** * Sub Category ID */ // @ApiMember(Description="Sub Category ID") String? subCategoryId; ProductCategory({this.brandCategoryId,this.grandCategoryId,this.masterCategoryId,this.categoryId,this.subCategoryId}); ProductCategory.fromJson(Map json) { fromMap(json); } fromMap(Map json) { brandCategoryId = json['brandCategoryId']; grandCategoryId = json['grandCategoryId']; masterCategoryId = json['masterCategoryId']; categoryId = json['categoryId']; subCategoryId = json['subCategoryId']; return this; } Map toJson() => { 'brandCategoryId': brandCategoryId, 'grandCategoryId': grandCategoryId, 'masterCategoryId': masterCategoryId, 'categoryId': categoryId, 'subCategoryId': subCategoryId }; getTypeName() => "ProductCategory"; TypeContext? context = _ctx; } class ProductCategory implements IConvertible { /** * Brand Category ID */ // @ApiMember(Description="Brand Category ID") String? brandCategoryId; /** * Grand Category ID */ // @ApiMember(Description="Grand Category ID") String? grandCategoryId; /** * Master Category ID */ // @ApiMember(Description="Master Category ID") String? masterCategoryId; /** * Category ID */ // @ApiMember(Description="Category ID") String? categoryId; /** * Sub Category ID */ // @ApiMember(Description="Sub Category ID") String? subCategoryId; ProductCategory({this.brandCategoryId,this.grandCategoryId,this.masterCategoryId,this.categoryId,this.subCategoryId}); ProductCategory.fromJson(Map json) { fromMap(json); } fromMap(Map json) { brandCategoryId = json['brandCategoryId']; grandCategoryId = json['grandCategoryId']; masterCategoryId = json['masterCategoryId']; categoryId = json['categoryId']; subCategoryId = json['subCategoryId']; return this; } Map toJson() => { 'brandCategoryId': brandCategoryId, 'grandCategoryId': grandCategoryId, 'masterCategoryId': masterCategoryId, 'categoryId': categoryId, 'subCategoryId': subCategoryId }; getTypeName() => "ProductCategory"; TypeContext? context = _ctx; } class ExportInvoiceResponse implements IConvertible { /** * Unique Identifier of the Export Request created */ // @ApiMember(Description="Unique Identifier of the Export Request created", IsRequired=true) String? asyncTaskId; ExportInvoiceResponse({this.asyncTaskId}); ExportInvoiceResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { asyncTaskId = json['asyncTaskId']; return this; } Map toJson() => { 'asyncTaskId': asyncTaskId }; getTypeName() => "ExportInvoiceResponse"; TypeContext? context = _ctx; } // @Route("/invoice/{brand}/export", "POST") class ExportInvoice implements IReturn, IConvertible, IPost { /** * Brand Trigram, e.g. CAR, IWC */ // @ApiMember(Description="Brand Trigram, e.g. CAR, IWC", IsRequired=true) String? brand; /** * Pos Legacy IDs / Codes */ // @ApiMember(Description="Pos Legacy IDs / Codes", IsRequired=true) List? posCodes; /** * Date To */ // @ApiMember(Description="Date To") DateTime? dateTo; /** * Date From */ // @ApiMember(Description="Date From") DateTime? dateFrom; /** * Reason Code e.g. Y00, Y06 */ // @ApiMember(Description="Reason Code e.g. Y00, Y06") List? reasonCodes; /** * Product Categories */ // @ApiMember(Description="Product Categories") List? productCategories; /** * Export Request ID of the API Consumers */ // @ApiMember(Description="Export Request ID of the API Consumers", IsRequired=true) String? downloadRequestId; ExportInvoice({this.brand,this.posCodes,this.dateTo,this.dateFrom,this.reasonCodes,this.productCategories,this.downloadRequestId}); ExportInvoice.fromJson(Map json) { fromMap(json); } fromMap(Map json) { brand = json['brand']; posCodes = JsonConverters.fromJson(json['posCodes'],'List',context!); dateTo = JsonConverters.fromJson(json['dateTo'],'DateTime',context!); dateFrom = JsonConverters.fromJson(json['dateFrom'],'DateTime',context!); reasonCodes = JsonConverters.fromJson(json['reasonCodes'],'List',context!); productCategories = JsonConverters.fromJson(json['productCategories'],'List',context!); downloadRequestId = json['downloadRequestId']; return this; } Map toJson() => { 'brand': brand, 'posCodes': JsonConverters.toJson(posCodes,'List',context!), 'dateTo': JsonConverters.toJson(dateTo,'DateTime',context!), 'dateFrom': JsonConverters.toJson(dateFrom,'DateTime',context!), 'reasonCodes': JsonConverters.toJson(reasonCodes,'List',context!), 'productCategories': JsonConverters.toJson(productCategories,'List',context!), 'downloadRequestId': downloadRequestId }; createResponse() => ExportInvoiceResponse(); getResponseTypeName() => "ExportInvoiceResponse"; getTypeName() => "ExportInvoice"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: { 'ProductCategory': TypeInfo(TypeOf.Class, create:() => ProductCategory()), 'ExportInvoiceResponse': TypeInfo(TypeOf.Class, create:() => ExportInvoiceResponse()), 'ExportInvoice': TypeInfo(TypeOf.Class, create:() => ExportInvoice()), 'List': TypeInfo(TypeOf.Class, create:() => []), });