""" Options: Date: 2026-05-19 09:48:46 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: GetCustomer.* #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 CustomerEmail: # @ApiMember(Description="Description", IsRequired=true) description: Optional[str] = None """ Description """ # @ApiMember(Description="Email Address", IsRequired=true) email: Optional[str] = None """ Email Address """ # @ApiMember(Description="Is main email address", IsRequired=true) is_main: bool = False """ Is main email address """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomerPhone: # @ApiMember(Description="Description", IsRequired=true) description: Optional[str] = None """ Description """ # @ApiMember(Description="Phone Number", IsRequired=true) phone: Optional[str] = None """ Phone Number """ # @ApiMember(Description="Is main phone number ", IsRequired=true) is_main: bool = False """ Is main phone number """ # @ApiMember(Description="Phone number country prefix", IsRequired=true) prefix_country_id: Optional[str] = None """ Phone number country prefix """ # @ApiMember(Description="Telephone prefix", IsRequired=true) telephone_prefix: Optional[str] = None """ Telephone prefix """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomerEvent: # @ApiMember(Description="Event Id", IsRequired=true) event_id: int = 0 """ Event Id """ # @ApiMember(Description="Event Description ", IsRequired=true) event_description: Optional[str] = None """ Event Description """ # @ApiMember(Description="Event Other", IsRequired=true) event_type_other: Optional[str] = None """ Event Other """ # @ApiMember(Description="Comment", IsRequired=true) comment: Optional[str] = None """ Comment """ # @ApiMember(Description="Event Day", IsRequired=true) event_day: Optional[int] = None """ Event Day """ # @ApiMember(Description="Event Month", IsRequired=true) event_month: Optional[int] = None """ Event Month """ # @ApiMember(Description="Event Year", IsRequired=true) event_year: Optional[int] = None """ Event Year """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCustomerResponse: # @ApiMember(Description="Booster Customer ID", IsRequired=true) id: int = 0 """ Booster Customer ID """ # @ApiMember(Description="SAP Customer ID", IsRequired=true) sap_id: Optional[str] = None """ SAP Customer ID """ # @ApiMember(Description="Customer Reference", IsRequired=true) customer_reference: Optional[str] = None """ Customer Reference """ # @ApiMember(Description="Gender", IsRequired=true) gender: Optional[str] = None """ Gender """ # @ApiMember(Description="Personal Title", IsRequired=true) personal_title: Optional[str] = None """ Personal Title """ # @ApiMember(Description="First Name", IsRequired=true) first_name: Optional[str] = None """ First Name """ # @ApiMember(Description="Customer Last Name", IsRequired=true) last_name: Optional[str] = None """ Customer Last Name """ # @ApiMember(Description="First Name Not Latin", IsRequired=true) first_name_not_latin: Optional[str] = None """ First Name Not Latin """ # @ApiMember(Description="Customer Last Name Not Latin", IsRequired=true) last_name_not_latin: Optional[str] = None """ Customer Last Name Not Latin """ # @ApiMember(Description="Middle Name", IsRequired=true) middle_name: Optional[str] = None """ Middle Name """ # @ApiMember(Description="Can be contacted or not?", IsRequired=true) can_be_contacted: bool = False """ Can be contacted or not? """ # @ApiMember(Description="Language", IsRequired=true) language: Optional[str] = None """ Language """ # @ApiMember(Description="Country", IsRequired=true) country_id: Optional[str] = None """ Country """ # @ApiMember(Description="Brand Trigram", IsRequired=true) brand: Optional[str] = None """ Brand Trigram """ # @ApiMember(Description="List of Emails", IsRequired=true) emails: Optional[List[CustomerEmail]] = None """ List of Emails """ # @ApiMember(Description="List of Phone Numbers", IsRequired=true) phones: Optional[List[CustomerPhone]] = None """ List of Phone Numbers """ # @ApiMember(Description="List of Events", IsRequired=true) events: Optional[List[CustomerEvent]] = None """ List of Events """ # @ApiMember(Description="Registration date") registration_date: Optional[datetime.datetime] = None """ Registration date """ # @Route("/customer/{boosterCustomerId}", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCustomer(IReturn[GetCustomerResponse]): # @ApiMember(Description="Booster Customer ID", IsRequired=true) booster_customer_id: int = 0 """ Booster Customer ID """