/* Options: Date: 2025-07-07 11:38:57 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateCustomer.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class Email { /** @description Email */ // @ApiMember(Description="Email", IsRequired=true) public email: string; /** @description Main email */ // @ApiMember(Description="Main email", IsRequired=true) public isMainEmail: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Phone { /** @description Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456 */ // @ApiMember(Description="Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456", IsRequired=true) public phone: string; /** @description Prefix Country Id e.g. it, fr, az */ // @ApiMember(Description="Prefix Country Id e.g. it, fr, az", IsRequired=true) public countryPrefix: string; /** @description Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address' */ // @ApiMember(Description="Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'") public phoneType: string; /** @description Main Phone */ // @ApiMember(Description="Main Phone", IsRequired=true) public isMainPhone: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Address { /** @description Address type e.g. Home, Office, Shipping */ // @ApiMember(Description="Address type e.g. Home, Office, Shipping", IsRequired=true) public addressType: string; /** @description Country Id e.g. it, cn, az, gb, de */ // @ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true) public countryId: string; /** @description House Number */ // @ApiMember(Description="House Number") public houseNumber: string; /** @description Region/State */ // @ApiMember(Description="Region/State") public stateId: string; /** @description City Name */ // @ApiMember(Description="City Name") public city: string; /** @description Postal Code */ // @ApiMember(Description="Postal Code") public zipCode: string; /** @description Street Name and Number */ // @ApiMember(Description="Street Name and Number") public street: string; /** @description Street 2 */ // @ApiMember(Description="Street 2") public street2: string; /** @description Street 3 */ // @ApiMember(Description="Street 3") public street3: string; /** @description Street 4 */ // @ApiMember(Description="Street 4") public street4: string; /** @description Street 5 */ // @ApiMember(Description="Street 5") public street5: string; /** @description Main Address */ // @ApiMember(Description="Main Address", IsRequired=true) public isMainAddress: boolean; /** @description Post Office Box */ // @ApiMember(Description="Post Office Box") public poBox: string; /** @description Additional Information */ // @ApiMember(Description="Additional Information") public additionalInformation: string; public constructor(init?: Partial
) { (Object as any).assign(this, init); } } export class Event { /** @description Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other' */ // @ApiMember(Description="Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'", IsRequired=true) public eventType: string; /** @description Event date e.g. '2021-01-20' */ // @ApiMember(Description="Event date e.g. '2021-01-20'", IsRequired=true) public eventDate: string; /** @description Event notes */ // @ApiMember(Description="Event notes") public eventNotes: string; /** @description Event other name */ // @ApiMember(Description="Event other name") public eventOtherName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Interest { /** @description Interest description */ // @ApiMember(Description="Interest description", IsRequired=true) public interest: string; /** @description SAP Interest ID, e.g. 'CA-1' */ // @ApiMember(Description="SAP Interest ID, e.g. 'CA-1'", IsRequired=true) public sapInterestId: string; /** @description Interest description translation */ // @ApiMember(Description="Interest description translation") public translation: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Hobby { /** @description Hobby description */ // @ApiMember(Description="Hobby description", IsRequired=true) public hobby: string; /** @description SAP Hobby ID, e.g. 'ART' */ // @ApiMember(Description="SAP Hobby ID, e.g. 'ART'", IsRequired=true) public sapHobbyId: string; /** @description Hobby description translation */ // @ApiMember(Description="Hobby description translation") public translation: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ProductCollection { /** @description Product Collection description */ // @ApiMember(Description="Product Collection description", IsRequired=true) public productCollection: string; /** @description SAP ProductCollection ID, e.g. 'CA-1' */ // @ApiMember(Description="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired=true) public sapProductCollectionId: string; /** @description Product Collection description translation */ // @ApiMember(Description="Product Collection description translation", IsRequired=true) public translation: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Customer { /** @description Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'PRIVATE' */ // @ApiMember(Description="Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'PRIVATE'") public title: string; /** @description First Name */ // @ApiMember(Description="First Name") public firstName: string; /** @description Last Name - Mandatory only when customer type is 'PRIVATE' */ // @ApiMember(Description="Last Name - Mandatory only when customer type is 'PRIVATE'") public lastName: string; /** @description First Name Not Latin */ // @ApiMember(Description="First Name Not Latin") public firstNameNotLatin: string; /** @description Last Name Not Latin */ // @ApiMember(Description="Last Name Not Latin") public lastNameNotLatin: string; /** @description Middle Name */ // @ApiMember(Description="Middle Name") public middleName: string; /** @description Name Suffix */ // @ApiMember(Description="Name Suffix") public nameSuffix: string; /** @description Can be Contacted by Maison e.g. true or false */ // @ApiMember(Description="Can be Contacted by Maison e.g. true or false", IsRequired=true) public canBeContactedByMaison: boolean; /** @description Customer Type e.g. 'PRIVATE' or 'COMPANY' */ // @ApiMember(Description="Customer Type e.g. 'PRIVATE' or 'COMPANY'", IsRequired=true) public clientType: string; /** @description Company Name - Mandatory only when customer type is 'COMPANY' */ // @ApiMember(Description="Company Name - Mandatory only when customer type is 'COMPANY'") public companyName: string; /** @description Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'PRIVATE' */ // @ApiMember(Description="Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'PRIVATE'") public languageId: string; /** @description Gender e.g. M, F - Mandatory only when customer type is 'PRIVATE' */ // @ApiMember(Description="Gender e.g. M, F - Mandatory only when customer type is 'PRIVATE'") public gender: string; /** @description Country Id e.g. it, cn, az, gb, de */ // @ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true) public countryId: string; /** @description Birth Date e.g. '2020-12-30' */ // @ApiMember(Description="Birth Date e.g. '2020-12-30'") public birthDate?: string; /** @description Customer reference */ // @ApiMember(Description="Customer reference") public customerReference: string; /** @description POS Code e.g. ES100:102048 */ // @ApiMember(Description="POS Code e.g. ES100:102048", IsRequired=true) public posCode: string; /** @description Brand e.g. CAR, MTB */ // @ApiMember(Description="Brand e.g. CAR, MTB", IsRequired=true) public brand: string; /** @description Wedding Date, e.g. '2020-01-18' */ // @ApiMember(Description="Wedding Date, e.g. '2020-01-18'") public weddingDate?: string; /** @description Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey' */ // @ApiMember(Description="Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'") public preferredContactMethod: string; /** @description 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.") public contactByEmailFlag: boolean; /** @description 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.") public contactByMailFlag: boolean; /** @description 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.") public contactByPhoneFlag: boolean; /** @description 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.") public contactBySMSFlag: boolean; /** @description 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.") public contactBySocialMediaFlag: boolean; /** @description Sale Representative Email e.g. rauf.aliyev@richemont.com */ // @ApiMember(Description="Sale Representative Email e.g. rauf.aliyev@richemont.com") public saleRepresentativeEmail: string; /** @description Consent for allowing Cross Border Data Transfer */ // @ApiMember(Description="Consent for allowing Cross Border Data Transfer") public allowStoreDataAbroad?: boolean; /** @description Consent for allowing Cross Border Data Transfer For TimeVallée */ // @ApiMember(Description="Consent for allowing Cross Border Data Transfer For TimeVallée") public tvAllowStoreDataAbroad?: boolean; /** @description Customer emails */ // @ApiMember(Description="Customer emails") public emails: Email[]; /** @description Customer phones */ // @ApiMember(Description="Customer phones") public phones: Phone[]; /** @description Customer addresses */ // @ApiMember(Description="Customer addresses") public addresses: Address[]; /** @description Customer events */ // @ApiMember(Description="Customer events") public events: Event[]; /** @description Customer interests */ // @ApiMember(Description="Customer interests") public interests: Interest[]; /** @description Customer hobbies */ // @ApiMember(Description="Customer hobbies") public hobbies: Hobby[]; /** @description Customer product collections */ // @ApiMember(Description="Customer product collections") public productCollections: ProductCollection[]; /** @description 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.") public dataSharingConsent?: boolean; /** @description Notes */ // @ApiMember(Description="Notes") public notes: string; /** @description Reference Sale Representative Email */ // @ApiMember(Description="Reference Sale Representative Email") public referenceSaleRepresentativeEmail: string; /** @description Registration Date */ // @ApiMember(Description="Registration Date") public registrationDate?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Address { /** @description Country ID */ // @ApiMember(Description="Country ID") public countryId: string; /** @description State ID */ // @ApiMember(Description="State ID") public stateId: string; /** @description City Name */ // @ApiMember(Description="City Name") public city: string; /** @description Street Name and Number */ // @ApiMember(Description="Street Name and Number") public street: string; /** @description Postal Code */ // @ApiMember(Description="Postal Code") public zipCode: string; public constructor(init?: Partial
) { (Object as any).assign(this, init); } } export class CreateCustomerResponse { /** @description Booster Customer ID */ // @ApiMember(Description="Booster Customer ID", IsRequired=true) public boosterCustomerId: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/customer", "POST") export class CreateCustomer extends Customer implements IReturn { /** @description Privacy policy acceptance for data storage */ // @ApiMember(Description="Privacy policy acceptance for data storage", IsRequired=true) public privacyPolicyAcceptanceStorage: boolean; /** @description Privacy policy acceptance of data storage for TimeVallée */ // @ApiMember(Description="Privacy policy acceptance of data storage for TimeVallée") public tvPrivacyPolicyAcceptanceStorage?: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'CreateCustomer'; } public getMethod() { return 'POST'; } public createResponse() { return new CreateCustomerResponse(); } }