001 002package com.commercetools.ml.models.similar_products; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.validation.Valid; 009 010import com.fasterxml.jackson.annotation.*; 011import com.fasterxml.jackson.databind.annotation.*; 012 013import io.vrap.rmf.base.client.utils.Generated; 014 015/** 016 * SimilarProductSearchRequest 017 * 018 * <hr> 019 * Example to create an instance using the builder pattern 020 * <div class=code-example> 021 * <pre><code class='java'> 022 * SimilarProductSearchRequest similarProductSearchRequest = SimilarProductSearchRequest.builder() 023 * .build() 024 * </code></pre> 025 * </div> 026 */ 027@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 028@JsonDeserialize(as = SimilarProductSearchRequestImpl.class) 029public interface SimilarProductSearchRequest { 030 031 /** 032 * <p>Number of results requested.</p> 033 */ 034 035 @JsonProperty("limit") 036 public Long getLimit(); 037 038 /** 039 * <p>Number of elements skipped.</p> 040 */ 041 042 @JsonProperty("offset") 043 public Long getOffset(); 044 045 /** 046 * <p>language tag used to prioritize language for text comparisons.</p> 047 */ 048 049 @JsonProperty("language") 050 public String getLanguage(); 051 052 /** 053 * <p>The three-digit currency code to compare prices in. When a product has multiple prices, all prices for the product are converted to the currency provided by the currency attribute and the median price is calculated for comparison. Currencies are converted using the ECB currency exchange rates at the time the request is made. Of the currency codes, only currencies with currency exchange rates provided by the ECB are supported.</p> 054 */ 055 056 @JsonProperty("currencyCode") 057 public String getCurrencyCode(); 058 059 /** 060 * <p><code>similarityMeasures</code> defines the attributes taken into account to measure product similarity.</p> 061 */ 062 @Valid 063 @JsonProperty("similarityMeasures") 064 public SimilarityMeasures getSimilarityMeasures(); 065 066 /** 067 * <p>Array of length 2 of ProductSetSelector</p> 068 */ 069 @Valid 070 @JsonProperty("productSetSelectors") 071 public List<ProductSetSelector> getProductSetSelectors(); 072 073 /** 074 * 075 */ 076 077 @JsonProperty("confidenceMin") 078 public Double getConfidenceMin(); 079 080 /** 081 * 082 */ 083 084 @JsonProperty("confidenceMax") 085 public Double getConfidenceMax(); 086 087 public void setLimit(final Long limit); 088 089 public void setOffset(final Long offset); 090 091 public void setLanguage(final String language); 092 093 public void setCurrencyCode(final String currencyCode); 094 095 public void setSimilarityMeasures(final SimilarityMeasures similarityMeasures); 096 097 @JsonIgnore 098 public void setProductSetSelectors(final ProductSetSelector... productSetSelectors); 099 100 public void setProductSetSelectors(final List<ProductSetSelector> productSetSelectors); 101 102 public void setConfidenceMin(final Double confidenceMin); 103 104 public void setConfidenceMax(final Double confidenceMax); 105 106 public static SimilarProductSearchRequest of() { 107 return new SimilarProductSearchRequestImpl(); 108 } 109 110 public static SimilarProductSearchRequest of(final SimilarProductSearchRequest template) { 111 SimilarProductSearchRequestImpl instance = new SimilarProductSearchRequestImpl(); 112 instance.setLimit(template.getLimit()); 113 instance.setOffset(template.getOffset()); 114 instance.setLanguage(template.getLanguage()); 115 instance.setCurrencyCode(template.getCurrencyCode()); 116 instance.setSimilarityMeasures(template.getSimilarityMeasures()); 117 instance.setProductSetSelectors(template.getProductSetSelectors()); 118 instance.setConfidenceMin(template.getConfidenceMin()); 119 instance.setConfidenceMax(template.getConfidenceMax()); 120 return instance; 121 } 122 123 public static SimilarProductSearchRequestBuilder builder() { 124 return SimilarProductSearchRequestBuilder.of(); 125 } 126 127 public static SimilarProductSearchRequestBuilder builder(final SimilarProductSearchRequest template) { 128 return SimilarProductSearchRequestBuilder.of(template); 129 } 130 131 default <T> T withSimilarProductSearchRequest(Function<SimilarProductSearchRequest, T> helper) { 132 return helper.apply(this); 133 } 134 135 public static com.fasterxml.jackson.core.type.TypeReference<SimilarProductSearchRequest> typeReference() { 136 return new com.fasterxml.jackson.core.type.TypeReference<SimilarProductSearchRequest>() { 137 @Override 138 public String toString() { 139 return "TypeReference<SimilarProductSearchRequest>"; 140 } 141 }; 142 } 143}