/* Options: Date: 2026-05-19 10:46:17 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: GetCustomerKpi.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class GetCustomerKpiResponse implements IConvertible { /** * Booster Customer ID */ // @ApiMember(Description="Booster Customer ID", IsRequired=true) int? boosterCustomerId; /** * Total Transaction */ // @ApiMember(Description="Total Transaction", IsRequired=true) int? totalTransaction; /** * Total Sales */ // @ApiMember(Description="Total Sales", IsRequired=true) int? totalSales; /** * Total Return */ // @ApiMember(Description="Total Return", IsRequired=true) int? totalReturn; /** * Total Items */ // @ApiMember(Description="Total Items", IsRequired=true) int? totalItems; /** * Average Basket Amount */ // @ApiMember(Description="Average Basket Amount", IsRequired=true) double? averageBasketAmount; /** * Total Spending Amount */ // @ApiMember(Description="Total Spending Amount", IsRequired=true) double? totalSpendingAmount; /** * Currency code e.g. 'EUR', 'CHF' */ // @ApiMember(Description="Currency code e.g. 'EUR', 'CHF'", IsRequired=true) String? currencyCode; GetCustomerKpiResponse({this.boosterCustomerId,this.totalTransaction,this.totalSales,this.totalReturn,this.totalItems,this.averageBasketAmount,this.totalSpendingAmount,this.currencyCode}); GetCustomerKpiResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { boosterCustomerId = json['boosterCustomerId']; totalTransaction = json['totalTransaction']; totalSales = json['totalSales']; totalReturn = json['totalReturn']; totalItems = json['totalItems']; averageBasketAmount = JsonConverters.toDouble(json['averageBasketAmount']); totalSpendingAmount = JsonConverters.toDouble(json['totalSpendingAmount']); currencyCode = json['currencyCode']; return this; } Map toJson() => { 'boosterCustomerId': boosterCustomerId, 'totalTransaction': totalTransaction, 'totalSales': totalSales, 'totalReturn': totalReturn, 'totalItems': totalItems, 'averageBasketAmount': averageBasketAmount, 'totalSpendingAmount': totalSpendingAmount, 'currencyCode': currencyCode }; getTypeName() => "GetCustomerKpiResponse"; TypeContext? context = _ctx; } // @Route("/customer/{boosterCustomerId}/kpi", "GET") class GetCustomerKpi implements IReturn, IConvertible, IGet { /** * Booster Customer ID */ // @ApiMember(Description="Booster Customer ID", IsRequired=true) int? boosterCustomerId; /** * Transaction Date From e.g. '2022-01-01' */ // @ApiMember(Description="Transaction Date From e.g. '2022-01-01'") DateTime? transactionDateFrom; /** * Transaction Date To e.g. '2023-11-01' */ // @ApiMember(Description="Transaction Date To e.g. '2023-11-01'") DateTime? transactionDateTo; GetCustomerKpi({this.boosterCustomerId,this.transactionDateFrom,this.transactionDateTo}); GetCustomerKpi.fromJson(Map json) { fromMap(json); } fromMap(Map json) { boosterCustomerId = json['boosterCustomerId']; transactionDateFrom = JsonConverters.fromJson(json['transactionDateFrom'],'DateTime',context!); transactionDateTo = JsonConverters.fromJson(json['transactionDateTo'],'DateTime',context!); return this; } Map toJson() => { 'boosterCustomerId': boosterCustomerId, 'transactionDateFrom': JsonConverters.toJson(transactionDateFrom,'DateTime',context!), 'transactionDateTo': JsonConverters.toJson(transactionDateTo,'DateTime',context!) }; createResponse() => GetCustomerKpiResponse(); getResponseTypeName() => "GetCustomerKpiResponse"; getTypeName() => "GetCustomerKpi"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: { 'GetCustomerKpiResponse': TypeInfo(TypeOf.Class, create:() => GetCustomerKpiResponse()), 'GetCustomerKpi': TypeInfo(TypeOf.Class, create:() => GetCustomerKpi()), });