Richemont.Booster2.PublicApi

<back to all web services

GetCustomerKpi

Requires Authentication
The following routes are available for this service:
GET/customer/{boosterCustomerId}/kpiGet customer KPI details
import 'package:servicestack/servicestack.dart';

class GetCustomerKpiResponse implements IConvertible
{
    /**
    * Booster Customer ID
    */
    // @ApiMember(Description="Booster Customer ID", IsRequired=true)
    int boosterCustomerId = 0;

    /**
    * Total Transaction
    */
    // @ApiMember(Description="Total Transaction", IsRequired=true)
    int totalTransaction = 0;

    /**
    * Total Sales
    */
    // @ApiMember(Description="Total Sales", IsRequired=true)
    int totalSales = 0;

    /**
    * Total Return
    */
    // @ApiMember(Description="Total Return", IsRequired=true)
    int totalReturn = 0;

    /**
    * Total Items
    */
    // @ApiMember(Description="Total Items", IsRequired=true)
    int totalItems = 0;

    /**
    * Average Basket Amount
    */
    // @ApiMember(Description="Average Basket Amount", IsRequired=true)
    double averageBasketAmount = 0;

    /**
    * Total Spending Amount
    */
    // @ApiMember(Description="Total Spending Amount", IsRequired=true)
    double totalSpendingAmount = 0;

    /**
    * Currency code e.g. 'EUR', 'CHF'
    */
    // @ApiMember(Description="Currency code e.g. 'EUR', 'CHF'", IsRequired=true)
    String currencyCode = "";

    GetCustomerKpiResponse({this.boosterCustomerId=0,this.totalTransaction=0,this.totalSales=0,this.totalReturn=0,this.totalItems=0,this.averageBasketAmount=0,this.totalSpendingAmount=0,this.currencyCode=""});
    GetCustomerKpiResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        boosterCustomerId = json['boosterCustomerId'] ?? 0;
        totalTransaction = json['totalTransaction'] ?? 0;
        totalSales = json['totalSales'] ?? 0;
        totalReturn = json['totalReturn'] ?? 0;
        totalItems = json['totalItems'] ?? 0;
        averageBasketAmount = JsonConverters.toDouble(json['averageBasketAmount']) ?? 0;
        totalSpendingAmount = JsonConverters.toDouble(json['totalSpendingAmount']) ?? 0;
        currencyCode = json['currencyCode'] ?? "";
        return this;
    }

    Map<String, dynamic> toJson() => {
        'boosterCustomerId': boosterCustomerId,
        'totalTransaction': totalTransaction,
        'totalSales': totalSales,
        'totalReturn': totalReturn,
        'totalItems': totalItems,
        'averageBasketAmount': averageBasketAmount,
        'totalSpendingAmount': totalSpendingAmount,
        'currencyCode': currencyCode
    };

    getTypeName() => "GetCustomerKpiResponse";
    TypeContext? context = _ctx;
}

class GetCustomerKpi implements IConvertible
{
    /**
    * Booster Customer ID
    */
    // @ApiMember(Description="Booster Customer ID", IsRequired=true)
    int boosterCustomerId = 0;

    /**
    * 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=0,this.transactionDateFrom,this.transactionDateTo});
    GetCustomerKpi.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        boosterCustomerId = json['boosterCustomerId'] ?? 0;
        transactionDateFrom = JsonConverters.fromJson(json['transactionDateFrom'],'DateTime',context!);
        transactionDateTo = JsonConverters.fromJson(json['transactionDateTo'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'boosterCustomerId': boosterCustomerId,
        'transactionDateFrom': JsonConverters.toJson(transactionDateFrom,'DateTime',context!),
        'transactionDateTo': JsonConverters.toJson(transactionDateTo,'DateTime',context!)
    };

    getTypeName() => "GetCustomerKpi";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: <String, TypeInfo> {
    'GetCustomerKpiResponse': TypeInfo(TypeOf.Class, create:() => GetCustomerKpiResponse()),
    'GetCustomerKpi': TypeInfo(TypeOf.Class, create:() => GetCustomerKpi()),
});

Dart GetCustomerKpi DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /customer/{boosterCustomerId}/kpi HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"boosterCustomerId":0,"totalTransaction":0,"totalSales":0,"totalReturn":0,"totalItems":0,"averageBasketAmount":0,"totalSpendingAmount":0,"currencyCode":"String"}