/* Options: Date: 2026-08-27 07:11:31 Version: 10.08 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: GetCustomerV2.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class Email implements IConvertible { /** * Email */ // @ApiMember(Description="Email", IsRequired=true) String email = ""; /** * Main email */ // @ApiMember(Description="Main email", IsRequired=true) bool? isMainEmail; Email({this.email="",this.isMainEmail}); Email.fromJson(Map json) { fromMap(json); } fromMap(Map json) { email = json['email'] ?? ""; isMainEmail = json['isMainEmail']; return this; } Map toJson() => { 'email': email, 'isMainEmail': isMainEmail }; getTypeName() => "Email"; TypeContext? context = _ctx; } class Phone implements IConvertible { /** * Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456 */ // @ApiMember(Description="Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456", IsRequired=true) String phone = ""; /** * Prefix Country Id e.g. it, fr, az */ // @ApiMember(Description="Prefix Country Id e.g. it, fr, az", IsRequired=true) String countryPrefix = ""; /** * Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address' */ // @ApiMember(Description="Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'") String? phoneType; /** * Main Phone */ // @ApiMember(Description="Main Phone", IsRequired=true) bool? isMainPhone; Phone({this.phone="",this.countryPrefix="",this.phoneType,this.isMainPhone}); Phone.fromJson(Map json) { fromMap(json); } fromMap(Map json) { phone = json['phone'] ?? ""; countryPrefix = json['countryPrefix'] ?? ""; phoneType = json['phoneType']; isMainPhone = json['isMainPhone']; return this; } Map toJson() => { 'phone': phone, 'countryPrefix': countryPrefix, 'phoneType': phoneType, 'isMainPhone': isMainPhone }; getTypeName() => "Phone"; TypeContext? context = _ctx; } class Address implements IConvertible { /** * Address type e.g. Home, Office, Shipping */ // @ApiMember(Description="Address type e.g. Home, Office, Shipping", IsRequired=true) String addressType = ""; /** * Country Id e.g. it, cn, az, gb, de */ // @ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true) String countryId = ""; /** * House Number */ // @ApiMember(Description="House Number") String? houseNumber; /** * Region/State */ // @ApiMember(Description="Region/State") String? stateId; /** * City Name */ // @ApiMember(Description="City Name") String? city; /** * Postal Code */ // @ApiMember(Description="Postal Code") String? zipCode; /** * Street Name and Number */ // @ApiMember(Description="Street Name and Number") String? street; /** * Street 2 */ // @ApiMember(Description="Street 2") String? street2; /** * Street 3 */ // @ApiMember(Description="Street 3") String? street3; /** * Street 4 */ // @ApiMember(Description="Street 4") String? street4; /** * Street 5 */ // @ApiMember(Description="Street 5") String? street5; /** * Main Address */ // @ApiMember(Description="Main Address", IsRequired=true) bool? isMainAddress; /** * Post Office Box */ // @ApiMember(Description="Post Office Box") String? poBox; /** * Additional Information */ // @ApiMember(Description="Additional Information") String? additionalInformation; Address({this.addressType="",this.countryId="",this.houseNumber,this.stateId,this.city,this.zipCode,this.street,this.street2,this.street3,this.street4,this.street5,this.isMainAddress,this.poBox,this.additionalInformation}); Address.fromJson(Map json) { fromMap(json); } fromMap(Map json) { addressType = json['addressType'] ?? ""; countryId = json['countryId'] ?? ""; houseNumber = json['houseNumber']; stateId = json['stateId']; city = json['city']; zipCode = json['zipCode']; street = json['street']; street2 = json['street2']; street3 = json['street3']; street4 = json['street4']; street5 = json['street5']; isMainAddress = json['isMainAddress']; poBox = json['poBox']; additionalInformation = json['additionalInformation']; return this; } Map toJson() => { 'addressType': addressType, 'countryId': countryId, 'houseNumber': houseNumber, 'stateId': stateId, 'city': city, 'zipCode': zipCode, 'street': street, 'street2': street2, 'street3': street3, 'street4': street4, 'street5': street5, 'isMainAddress': isMainAddress, 'poBox': poBox, 'additionalInformation': additionalInformation }; getTypeName() => "Address"; TypeContext? context = _ctx; } class Interest implements IConvertible { /** * Interest description */ // @ApiMember(Description="Interest description", IsRequired=true) String interest = ""; /** * SAP Interest ID, e.g. 'CA-1' */ // @ApiMember(Description="SAP Interest ID, e.g. 'CA-1'", IsRequired=true) String sapInterestId = ""; /** * Interest description translation */ // @ApiMember(Description="Interest description translation") String? translation; Interest({this.interest="",this.sapInterestId="",this.translation}); Interest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { interest = json['interest'] ?? ""; sapInterestId = json['sapInterestId'] ?? ""; translation = json['translation']; return this; } Map toJson() => { 'interest': interest, 'sapInterestId': sapInterestId, 'translation': translation }; getTypeName() => "Interest"; TypeContext? context = _ctx; } class Hobby implements IConvertible { /** * Hobby description */ // @ApiMember(Description="Hobby description", IsRequired=true) String hobby = ""; /** * SAP Hobby ID, e.g. 'ART' */ // @ApiMember(Description="SAP Hobby ID, e.g. 'ART'", IsRequired=true) String sapHobbyId = ""; /** * Hobby description translation */ // @ApiMember(Description="Hobby description translation") String? translation; Hobby({this.hobby="",this.sapHobbyId="",this.translation}); Hobby.fromJson(Map json) { fromMap(json); } fromMap(Map json) { hobby = json['hobby'] ?? ""; sapHobbyId = json['sapHobbyId'] ?? ""; translation = json['translation']; return this; } Map toJson() => { 'hobby': hobby, 'sapHobbyId': sapHobbyId, 'translation': translation }; getTypeName() => "Hobby"; TypeContext? context = _ctx; } class ProductCollection implements IConvertible { /** * Product Collection description */ // @ApiMember(Description="Product Collection description", IsRequired=true) String productCollection = ""; /** * SAP ProductCollection ID, e.g. 'CA-1' */ // @ApiMember(Description="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired=true) String sapProductCollectionId = ""; /** * Product Collection description translation */ // @ApiMember(Description="Product Collection description translation", IsRequired=true) String translation = ""; ProductCollection({this.productCollection="",this.sapProductCollectionId="",this.translation=""}); ProductCollection.fromJson(Map json) { fromMap(json); } fromMap(Map json) { productCollection = json['productCollection'] ?? ""; sapProductCollectionId = json['sapProductCollectionId'] ?? ""; translation = json['translation'] ?? ""; return this; } Map toJson() => { 'productCollection': productCollection, 'sapProductCollectionId': sapProductCollectionId, 'translation': translation }; getTypeName() => "ProductCollection"; TypeContext? context = _ctx; } class CustomerEventV2 implements IConvertible { /** * Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other' */ // @ApiMember(Description="Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'", IsRequired=true) String eventType = ""; /** * Event date e.g. '2021-01-20' */ // @ApiMember(Description="Event date e.g. '2021-01-20'", IsRequired=true) String eventDate = ""; /** * Event notes */ // @ApiMember(Description="Event notes") String? eventNotes; /** * Event other name */ // @ApiMember(Description="Event other name") String? eventOtherName; CustomerEventV2({this.eventType="",this.eventDate="",this.eventNotes,this.eventOtherName}); CustomerEventV2.fromJson(Map json) { fromMap(json); } fromMap(Map json) { eventType = json['eventType'] ?? ""; eventDate = json['eventDate'] ?? ""; eventNotes = json['eventNotes']; eventOtherName = json['eventOtherName']; return this; } Map toJson() => { 'eventType': eventType, 'eventDate': eventDate, 'eventNotes': eventNotes, 'eventOtherName': eventOtherName }; getTypeName() => "CustomerEventV2"; TypeContext? context = _ctx; } class Address implements IConvertible { /** * Country ID */ // @ApiMember(Description="Country ID") String? countryId; /** * State ID */ // @ApiMember(Description="State ID") String? stateId; /** * City Name */ // @ApiMember(Description="City Name") String? city; /** * Street Name and Number */ // @ApiMember(Description="Street Name and Number") String? street; /** * Postal Code */ // @ApiMember(Description="Postal Code") String? zipCode; Address({this.countryId,this.stateId,this.city,this.street,this.zipCode}); Address.fromJson(Map json) { fromMap(json); } fromMap(Map json) { countryId = json['countryId']; stateId = json['stateId']; city = json['city']; street = json['street']; zipCode = json['zipCode']; return this; } Map toJson() => { 'countryId': countryId, 'stateId': stateId, 'city': city, 'street': street, 'zipCode': zipCode }; getTypeName() => "Address"; TypeContext? context = _ctx; } class GetCustomerV2Response implements IConvertible { /** * Booster Customer ID */ // @ApiMember(Description="Booster Customer ID") int? boosterCustomerId; /** * Elevate Customer ID */ // @ApiMember(Description="Elevate Customer ID") String? elevateCustomerId; /** * SAP ID */ // @ApiMember(Description="SAP ID", IsRequired=true) String sapId = ""; /** * Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'Personal' */ // @ApiMember(Description="Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'Personal'", IsRequired=true) String title = ""; /** * First Name */ // @ApiMember(Description="First Name", IsRequired=true) String firstName = ""; /** * Last Name - Mandatory only when customer type is 'Personal' */ // @ApiMember(Description="Last Name - Mandatory only when customer type is 'Personal'", IsRequired=true) String lastName = ""; /** * First Name Not Latin, e.g. Arabic */ // @ApiMember(Description="First Name Not Latin, e.g. Arabic", IsRequired=true) String firstNameNotLatin = ""; /** * Last Name Not Latin, e.g. Arabic; Mandatory only when customer type is 'Personal' */ // @ApiMember(Description="Last Name Not Latin, e.g. Arabic; Mandatory only when customer type is 'Personal'", IsRequired=true) String lastNameNotLatin = ""; /** * Middle Name */ // @ApiMember(Description="Middle Name") String? middleName; /** * Name Suffix */ // @ApiMember(Description="Name Suffix") String? nameSuffix; /** * Can be Contacted by Maison e.g. true or false */ // @ApiMember(Description="Can be Contacted by Maison e.g. true or false", IsRequired=true) bool? canBeContactedByMaison; /** * clientType e.g. Private, Company */ // @ApiMember(Description="clientType e.g. Private, Company", IsRequired=true) String clientType = ""; /** * Company Name - Mandatory only when customer type is 'Company' */ // @ApiMember(Description="Company Name - Mandatory only when customer type is 'Company'") String? companyName; /** * Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'Personal' */ // @ApiMember(Description="Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'Personal'") String? languageId; /** * Gender e.g. M, F - Mandatory only when customer type is 'Personal' */ // @ApiMember(Description="Gender e.g. M, F - Mandatory only when customer type is 'Personal'") String? gender; /** * Country Id e.g. it, ch, az, gb, de */ // @ApiMember(Description="Country Id e.g. it, ch, az, gb, de", IsRequired=true) String countryId = ""; /** * Country Description e.g. Italy, Switzerland, Azerbaijan, Great Britain, Germany */ // @ApiMember(Description="Country Description e.g. Italy, Switzerland, Azerbaijan, Great Britain, Germany", IsRequired=true) String countryDs = ""; /** * Birth Date e.g. '2020-12-30' */ // @ApiMember(Description="Birth Date e.g. '2020-12-30'") String? birthDate; /** * Customer reference */ // @ApiMember(Description="Customer reference") String? customerReference; /** * POS Code e.g. ES100:102048 */ // @ApiMember(Description="POS Code e.g. ES100:102048", IsRequired=true) String posCode = ""; /** * Brand e.g. CAR, MTB */ // @ApiMember(Description="Brand e.g. CAR, MTB", IsRequired=true) String brand = ""; /** * Wedding Date, e.g. '2020-01-18' */ // @ApiMember(Description="Wedding Date, e.g. '2020-01-18'") String? weddingDate; /** * Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey' */ // @ApiMember(Description="Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'") String? preferredContactMethod; /** * Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not. */ // @ApiMember(Description="Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.") bool? contactByEmailFlag; /** * Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not. */ // @ApiMember(Description="Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.") bool? contactByMailFlag; /** * Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not. */ // @ApiMember(Description="Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.") bool? contactByPhoneFlag; /** * Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not. */ // @ApiMember(Description="Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.") bool? contactBySMSFlag; /** * Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not. */ // @ApiMember(Description="Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.") bool? contactBySocialMediaFlag; /** * Sale Representative Email e.g. rauf.aliyev@richemont.com */ // @ApiMember(Description="Sale Representative Email e.g. rauf.aliyev@richemont.com") String? saleRepresentativeEmail; /** * Consent for allowing Cross Border Data Transfer */ // @ApiMember(Description="Consent for allowing Cross Border Data Transfer") bool? allowStoreDataAbroad; /** * Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not. */ // @ApiMember(Description="Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.") bool? dataSharingConsent; /** * Data Sharing Consent Timestamp */ // @ApiMember(Description="Data Sharing Consent Timestamp") String? dataSharingConsentTimestamp; /** * Client Registration Date */ // @ApiMember(Description="Client Registration Date") String? clientRegistrationDate; /** * Client Creation Date */ // @ApiMember(Description="Client Creation Date") String? createdOn; /** * Notes */ // @ApiMember(Description="Notes") String? notes; /** * Customer emails */ // @ApiMember(Description="Customer emails") List? emails; /** * Customer phones */ // @ApiMember(Description="Customer phones") List? phones; /** * Customer addresses */ // @ApiMember(Description="Customer addresses") List
? addresses; /** * Customer events */ // @ApiMember(Description="Customer events") List? events; /** * Customer interests */ // @ApiMember(Description="Customer interests") List? interests; /** * Customer hobbies */ // @ApiMember(Description="Customer hobbies") List? hobbies; /** * Customer Product Collections */ // @ApiMember(Description="Customer Product Collections") List? productCollections; /** * Registration date */ // @ApiMember(Description="Registration date") DateTime? registrationDate; /** * Sap Crm Error Message */ // @ApiMember(Description="Sap Crm Error Message") String? sapCrmErrorMessage; GetCustomerV2Response({this.boosterCustomerId,this.elevateCustomerId,this.sapId="",this.title="",this.firstName="",this.lastName="",this.firstNameNotLatin="",this.lastNameNotLatin="",this.middleName,this.nameSuffix,this.canBeContactedByMaison,this.clientType="",this.companyName,this.languageId,this.gender,this.countryId="",this.countryDs="",this.birthDate,this.customerReference,this.posCode="",this.brand="",this.weddingDate,this.preferredContactMethod,this.contactByEmailFlag,this.contactByMailFlag,this.contactByPhoneFlag,this.contactBySMSFlag,this.contactBySocialMediaFlag,this.saleRepresentativeEmail,this.allowStoreDataAbroad,this.dataSharingConsent,this.dataSharingConsentTimestamp,this.clientRegistrationDate,this.createdOn,this.notes,this.emails,this.phones,this.addresses,this.events,this.interests,this.hobbies,this.productCollections,this.registrationDate,this.sapCrmErrorMessage}); GetCustomerV2Response.fromJson(Map json) { fromMap(json); } fromMap(Map json) { boosterCustomerId = json['boosterCustomerId']; elevateCustomerId = json['elevateCustomerId']; sapId = json['sapId'] ?? ""; title = json['title'] ?? ""; firstName = json['firstName'] ?? ""; lastName = json['lastName'] ?? ""; firstNameNotLatin = json['firstNameNotLatin'] ?? ""; lastNameNotLatin = json['lastNameNotLatin'] ?? ""; middleName = json['middleName']; nameSuffix = json['nameSuffix']; canBeContactedByMaison = json['canBeContactedByMaison']; clientType = json['clientType'] ?? ""; companyName = json['companyName']; languageId = json['languageId']; gender = json['gender']; countryId = json['countryId'] ?? ""; countryDs = json['countryDs'] ?? ""; birthDate = json['birthDate']; customerReference = json['customerReference']; posCode = json['posCode'] ?? ""; brand = json['brand'] ?? ""; weddingDate = json['weddingDate']; preferredContactMethod = json['preferredContactMethod']; contactByEmailFlag = json['contactByEmailFlag']; contactByMailFlag = json['contactByMailFlag']; contactByPhoneFlag = json['contactByPhoneFlag']; contactBySMSFlag = json['contactBySMSFlag']; contactBySocialMediaFlag = json['contactBySocialMediaFlag']; saleRepresentativeEmail = json['saleRepresentativeEmail']; allowStoreDataAbroad = json['allowStoreDataAbroad']; dataSharingConsent = json['dataSharingConsent']; dataSharingConsentTimestamp = json['dataSharingConsentTimestamp']; clientRegistrationDate = json['clientRegistrationDate']; createdOn = json['createdOn']; notes = json['notes']; emails = JsonConverters.fromJson(json['emails'],'List',context!); phones = JsonConverters.fromJson(json['phones'],'List',context!); addresses = JsonConverters.fromJson(json['addresses'],'List
',context!); events = JsonConverters.fromJson(json['events'],'List',context!); interests = JsonConverters.fromJson(json['interests'],'List',context!); hobbies = JsonConverters.fromJson(json['hobbies'],'List',context!); productCollections = JsonConverters.fromJson(json['productCollections'],'List',context!); registrationDate = JsonConverters.fromJson(json['registrationDate'],'DateTime',context!); sapCrmErrorMessage = json['sapCrmErrorMessage']; return this; } Map toJson() => { 'boosterCustomerId': boosterCustomerId, 'elevateCustomerId': elevateCustomerId, 'sapId': sapId, 'title': title, 'firstName': firstName, 'lastName': lastName, 'firstNameNotLatin': firstNameNotLatin, 'lastNameNotLatin': lastNameNotLatin, 'middleName': middleName, 'nameSuffix': nameSuffix, 'canBeContactedByMaison': canBeContactedByMaison, 'clientType': clientType, 'companyName': companyName, 'languageId': languageId, 'gender': gender, 'countryId': countryId, 'countryDs': countryDs, 'birthDate': birthDate, 'customerReference': customerReference, 'posCode': posCode, 'brand': brand, 'weddingDate': weddingDate, 'preferredContactMethod': preferredContactMethod, 'contactByEmailFlag': contactByEmailFlag, 'contactByMailFlag': contactByMailFlag, 'contactByPhoneFlag': contactByPhoneFlag, 'contactBySMSFlag': contactBySMSFlag, 'contactBySocialMediaFlag': contactBySocialMediaFlag, 'saleRepresentativeEmail': saleRepresentativeEmail, 'allowStoreDataAbroad': allowStoreDataAbroad, 'dataSharingConsent': dataSharingConsent, 'dataSharingConsentTimestamp': dataSharingConsentTimestamp, 'clientRegistrationDate': clientRegistrationDate, 'createdOn': createdOn, 'notes': notes, 'emails': JsonConverters.toJson(emails,'List',context!), 'phones': JsonConverters.toJson(phones,'List',context!), 'addresses': JsonConverters.toJson(addresses,'List
',context!), 'events': JsonConverters.toJson(events,'List',context!), 'interests': JsonConverters.toJson(interests,'List',context!), 'hobbies': JsonConverters.toJson(hobbies,'List',context!), 'productCollections': JsonConverters.toJson(productCollections,'List',context!), 'registrationDate': JsonConverters.toJson(registrationDate,'DateTime',context!), 'sapCrmErrorMessage': sapCrmErrorMessage }; getTypeName() => "GetCustomerV2Response"; TypeContext? context = _ctx; } // @Route("/customer/v2/{customerId}", "GET") class GetCustomerV2 implements IReturn, IConvertible, IGet { /** * Booster or Elevate Customer ID */ // @ApiMember(Description="Booster or Elevate Customer ID", IsRequired=true) String customerId = ""; GetCustomerV2({this.customerId=""}); GetCustomerV2.fromJson(Map json) { fromMap(json); } fromMap(Map json) { customerId = json['customerId'] ?? ""; return this; } Map toJson() => { 'customerId': customerId }; createResponse() => GetCustomerV2Response(); getResponseTypeName() => "GetCustomerV2Response"; getTypeName() => "GetCustomerV2"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: { 'Email': TypeInfo(TypeOf.Class, create:() => Email()), 'Phone': TypeInfo(TypeOf.Class, create:() => Phone()), 'Address': TypeInfo(TypeOf.Class, create:() => Address()), 'Interest': TypeInfo(TypeOf.Class, create:() => Interest()), 'Hobby': TypeInfo(TypeOf.Class, create:() => Hobby()), 'ProductCollection': TypeInfo(TypeOf.Class, create:() => ProductCollection()), 'CustomerEventV2': TypeInfo(TypeOf.Class, create:() => CustomerEventV2()), 'GetCustomerV2Response': TypeInfo(TypeOf.Class, create:() => GetCustomerV2Response()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List
': TypeInfo(TypeOf.Class, create:() =>
[]), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetCustomerV2': TypeInfo(TypeOf.Class, create:() => GetCustomerV2()), });