/* Options: Date: 2026-05-19 10:52:00 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetCustomerPaginated.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/customer/{brand}/slim", Verbs="GET") open class GetCustomerPaginated : SearchCustomer(), IReturn, IPagedRequest { /** * Index of the result set returned */ @ApiMember(Description="Index of the result set returned") var page:Int? = null /** * Size of the result set returned */ @ApiMember(Description="Size of the result set returned") var items:Int? = null /** * Omit precise record count - save on performance */ @ApiMember(Description="Omit precise record count - save on performance") var noCount:Boolean? = null /** * Values can be 'NameDESC', 'NameASC', 'RegASC', 'RegDESC' */ @ApiMember(Description="Values can be 'NameDESC', 'NameASC', 'RegASC', 'RegDESC'") var sortBy:String? = null companion object { private val responseType = GetCustomerPaginatedResponse::class.java } override fun getResponseType(): Any? = GetCustomerPaginated.responseType } open class GetCustomerPaginatedResponse { /** * Total Pages */ @ApiMember(Description="Total Pages", IsRequired=true) var totalPages:Int? = null /** * Total Results */ @ApiMember(Description="Total Results", IsRequired=true) var totalResults:Int? = null /** * Index of the result set returned */ @ApiMember(Description="Index of the result set returned", IsRequired=true) var page:Int? = null /** * Size of the result set returned */ @ApiMember(Description="Size of the result set returned", IsRequired=true) var items:Int? = null /** * List of customers */ @ApiMember(Description="List of customers", IsRequired=true) var elements:ArrayList = ArrayList() } open class GetCustomerInterest { /** * Interest description */ @ApiMember(Description="Interest description", IsRequired=true) var interest:String? = null /** * SAP Interest ID, e.g. 'CA-1' */ @ApiMember(Description="SAP Interest ID, e.g. 'CA-1'", IsRequired=true) var sapInterestId:String? = null } open class GetCustomerHobby { /** * Hobby description */ @ApiMember(Description="Hobby description") var hobby:String? = null /** * SAP Hobby ID, e.g. 'ART' */ @ApiMember(Description="SAP Hobby ID, e.g. 'ART'") var sapHobbyId:String? = null } open class GetCustomerProductCollection { /** * Product Collection description */ @ApiMember(Description="Product Collection description", IsRequired=true) var productCollection:String? = null /** * SAP ProductCollection ID, e.g. 'CA-1' */ @ApiMember(Description="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired=true) var sapProductCollectionId:String? = null } open class ProductCategory { /** * Brand Category ID */ @ApiMember(Description="Brand Category ID") var brandCategoryId:String? = null /** * Grand Category ID */ @ApiMember(Description="Grand Category ID", IsRequired=true) var grandCategoryId:String? = null /** * Master Category ID */ @ApiMember(Description="Master Category ID") var masterCategoryId:String? = null /** * Category ID */ @ApiMember(Description="Category ID") var categoryId:String? = null /** * Sub Category ID */ @ApiMember(Description="Sub Category ID") var subCategoryId:String? = null } open class SearchCustomer { /** * Brand */ @ApiMember(Description="Brand", IsRequired=true) var brand:String? = null /** * POS Legacy */ @ApiMember(Description="POS Legacy", IsRequired=true) var posCodes:ArrayList = ArrayList() /** * Search key could be: 'Name', 'Email', 'Phone' without prefix, 'BoosterCustomerId' OR 'SapCRMId' */ @ApiMember(Description="Search key could be: 'Name', 'Email', 'Phone' without prefix, 'BoosterCustomerId' OR 'SapCRMId'") var searchKey:String? = null /** * Search by phone number - exact match */ @ApiMember(Description="Search by phone number - exact match") var phoneNumber:String? = null /** * Search by email address - exact match */ @ApiMember(Description="Search by email address - exact match") var email:String? = null /** * Values can be 'it', 'en' etc. */ @ApiMember(Description="Values can be 'it', 'en' etc.") var locationCountryIds:ArrayList = ArrayList() /** * Client Spending From e.g. '100' */ @ApiMember(Description="Client Spending From e.g. '100'") var clientSpendingFrom:Double? = null /** * Client Spending To e.g. '50000' */ @ApiMember(Description="Client Spending To e.g. '50000'") var clientSpendingTo:Double? = null /** * Customer Creation Date From e.g. '2022-01-01' */ @ApiMember(Description="Customer Creation Date From e.g. '2022-01-01'") var creationDateFrom:Date? = null /** * Customer Creation Date To e.g. '2023-11-01' */ @ApiMember(Description="Customer Creation Date To e.g. '2023-11-01'") var creationDateTo:Date? = null /** * Transaction Date From e.g. '2022-01-01' */ @ApiMember(Description="Transaction Date From e.g. '2022-01-01'") var transactionDateFrom:Date? = null /** * Transaction Date To e.g. '2023-11-01' */ @ApiMember(Description="Transaction Date To e.g. '2023-11-01'") var transactionDateTo:Date? = null /** * Values can be 'true' or 'false' */ @ApiMember(Description="Values can be 'true' or 'false'") var canBeContactedByMaison:Boolean? = null /** * Values can be 1 for 'January', 2 for 'February', 3 for 'March', 4 for 'April', 5 for 'May', 6 for 'June', 7 for 'July', 8 for 'August', 9 for 'September', 10 for 'October', 11 for 'November', 12 for 'December' */ @ApiMember(Description="Values can be 1 for 'January', 2 for 'February', 3 for 'March', 4 for 'April', 5 for 'May', 6 for 'June', 7 for 'July', 8 for 'August', 9 for 'September', 10 for 'October', 11 for 'November', 12 for 'December'") var birthdateMonths:ArrayList = ArrayList() /** * Customer interest filter */ @ApiMember(Description="Customer interest filter") var interests:ArrayList = ArrayList() /** * Customer hobby filter */ @ApiMember(Description="Customer hobby filter") var hobbies:ArrayList = ArrayList() /** * Customer product collection filter */ @ApiMember(Description="Customer product collection filter") var productCollections:ArrayList = ArrayList() /** * Customer Status e.g. 'Prospect', 'Client' */ @ApiMember(Description="Customer Status e.g. 'Prospect', 'Client'") var customerStatus:ArrayList = ArrayList() /** * List of BoosterCustomerIds, e.g. 1234567,1231231,12323423 */ @ApiMember(Description="List of BoosterCustomerIds, e.g. 1234567,1231231,12323423") var boosterCustomerIds:ArrayList = ArrayList() /** * Values can be 'true' or 'false' */ @ApiMember(Description="Values can be 'true' or 'false'") var hasSapCrmError:Boolean? = null /** * Product Categories */ @ApiMember(Description="Product Categories") var productCategories:ArrayList = ArrayList() /** * Sale Reprentative Emails */ @ApiMember(Description="Sale Reprentative Emails") var saleRepresentativeEmails:ArrayList = ArrayList() } open interface IPagedRequest { var page:Int? var items:Int? var noCount:Boolean? var sortBy:String? } open class ProductCategory { /** * Brand Category ID */ @ApiMember(Description="Brand Category ID") var brandCategoryId:String? = null /** * Grand Category ID */ @ApiMember(Description="Grand Category ID") var grandCategoryId:String? = null /** * Master Category ID */ @ApiMember(Description="Master Category ID") var masterCategoryId:String? = null /** * Category ID */ @ApiMember(Description="Category ID") var categoryId:String? = null /** * Sub Category ID */ @ApiMember(Description="Sub Category ID") var subCategoryId:String? = null } open class GetCustomerPaginatedElement { /** * Booster Customer Id */ @ApiMember(Description="Booster Customer Id", IsRequired=true) var boosterCustomerId:Int? = null /** * First name */ @ApiMember(Description="First name", IsRequired=true) var firstName:String? = null /** * Middle name */ @ApiMember(Description="Middle name", IsRequired=true) var middleName:String? = null /** * Last name */ @ApiMember(Description="Last name", IsRequired=true) var lastName:String? = null /** * First name Not Latin */ @ApiMember(Description="First name Not Latin", IsRequired=true) var firstNameNotLatin:String? = null /** * Last name Not Latin */ @ApiMember(Description="Last name Not Latin", IsRequired=true) var lastNameNotLatin:String? = null /** * Customer phone */ @ApiMember(Description="Customer phone", IsRequired=true) var phone:String? = null /** * Phone Country Prefix */ @ApiMember(Description="Phone Country Prefix", IsRequired=true) var countryPrefix:String? = null /** * Customer email */ @ApiMember(Description="Customer email", IsRequired=true) var email:String? = null /** * Data Sharing Consent */ @ApiMember(Description="Data Sharing Consent", IsRequired=true) var dataSharingConsent:Boolean? = null /** * Sellout Transaction Count */ @ApiMember(Description="Sellout Transaction Count", IsRequired=true) var selloutTransactionCount:Int? = null /** * Elevate Customer ID */ @ApiMember(Description="Elevate Customer ID") var elevateCustomerId:String? = null /** * Elevate Consent Status */ @ApiMember(Description="Elevate Consent Status") var elevateConsentStatus:String? = null /** * Customer Country Id */ @ApiMember(Description="Customer Country Id") var countryId:String? = null /** * Registration date */ @ApiMember(Description="Registration date") var registrationDate:Date? = null /** * Sap Crm Error Message */ @ApiMember(Description="Sap Crm Error Message") var sapCrmErrorMessage:String? = null }