""" Options: Date: 2026-05-19 09:48:42 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: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCustomerKpiResponse: # @ApiMember(Description="Booster Customer ID", IsRequired=true) booster_customer_id: int = 0 """ Booster Customer ID """ # @ApiMember(Description="Total Transaction", IsRequired=true) total_transaction: int = 0 """ Total Transaction """ # @ApiMember(Description="Total Sales", IsRequired=true) total_sales: int = 0 """ Total Sales """ # @ApiMember(Description="Total Return", IsRequired=true) total_return: int = 0 """ Total Return """ # @ApiMember(Description="Total Items", IsRequired=true) total_items: int = 0 """ Total Items """ # @ApiMember(Description="Average Basket Amount", IsRequired=true) average_basket_amount: Decimal = decimal.Decimal(0) """ Average Basket Amount """ # @ApiMember(Description="Total Spending Amount", IsRequired=true) total_spending_amount: float = 0.0 """ Total Spending Amount """ # @ApiMember(Description="Currency code e.g. 'EUR', 'CHF'", IsRequired=true) currency_code: Optional[str] = None """ Currency code e.g. 'EUR', 'CHF' """ # @Route("/customer/{boosterCustomerId}/kpi", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCustomerKpi(IReturn[GetCustomerKpiResponse]): # @ApiMember(Description="Booster Customer ID", IsRequired=true) booster_customer_id: int = 0 """ Booster Customer ID """ # @ApiMember(Description="Transaction Date From e.g. '2022-01-01'") transaction_date_from: Optional[datetime.datetime] = None """ Transaction Date From e.g. '2022-01-01' """ # @ApiMember(Description="Transaction Date To e.g. '2023-11-01'") transaction_date_to: Optional[datetime.datetime] = None """ Transaction Date To e.g. '2023-11-01' """