001
002package com.commercetools.ml.models.similar_products;
003
004import java.time.*;
005import java.util.*;
006
007import com.fasterxml.jackson.annotation.JsonCreator;
008import com.fasterxml.jackson.annotation.JsonProperty;
009import com.fasterxml.jackson.databind.annotation.*;
010
011import io.vrap.rmf.base.client.ModelBase;
012import io.vrap.rmf.base.client.utils.Generated;
013
014import org.apache.commons.lang3.builder.EqualsBuilder;
015import org.apache.commons.lang3.builder.HashCodeBuilder;
016
017/**
018 * SimilarProductSearchRequest
019 */
020@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
021public class SimilarProductSearchRequestImpl implements SimilarProductSearchRequest, ModelBase {
022
023    private Long limit;
024
025    private Long offset;
026
027    private String language;
028
029    private String currencyCode;
030
031    private com.commercetools.ml.models.similar_products.SimilarityMeasures similarityMeasures;
032
033    private java.util.List<com.commercetools.ml.models.similar_products.ProductSetSelector> productSetSelectors;
034
035    private Double confidenceMin;
036
037    private Double confidenceMax;
038
039    @JsonCreator
040    SimilarProductSearchRequestImpl(@JsonProperty("limit") final Long limit, @JsonProperty("offset") final Long offset,
041            @JsonProperty("language") final String language, @JsonProperty("currencyCode") final String currencyCode,
042            @JsonProperty("similarityMeasures") final com.commercetools.ml.models.similar_products.SimilarityMeasures similarityMeasures,
043            @JsonProperty("productSetSelectors") final java.util.List<com.commercetools.ml.models.similar_products.ProductSetSelector> productSetSelectors,
044            @JsonProperty("confidenceMin") final Double confidenceMin,
045            @JsonProperty("confidenceMax") final Double confidenceMax) {
046        this.limit = limit;
047        this.offset = offset;
048        this.language = language;
049        this.currencyCode = currencyCode;
050        this.similarityMeasures = similarityMeasures;
051        this.productSetSelectors = productSetSelectors;
052        this.confidenceMin = confidenceMin;
053        this.confidenceMax = confidenceMax;
054    }
055
056    public SimilarProductSearchRequestImpl() {
057    }
058
059    /**
060     *  <p>Number of results requested.</p>
061     */
062
063    public Long getLimit() {
064        return this.limit;
065    }
066
067    /**
068     *  <p>Number of elements skipped.</p>
069     */
070
071    public Long getOffset() {
072        return this.offset;
073    }
074
075    /**
076     *  <p>language tag used to prioritize language for text comparisons.</p>
077     */
078
079    public String getLanguage() {
080        return this.language;
081    }
082
083    /**
084     *  <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>
085     */
086
087    public String getCurrencyCode() {
088        return this.currencyCode;
089    }
090
091    /**
092     *  <p><code>similarityMeasures</code> defines the attributes taken into account to measure product similarity.</p>
093     */
094
095    public com.commercetools.ml.models.similar_products.SimilarityMeasures getSimilarityMeasures() {
096        return this.similarityMeasures;
097    }
098
099    /**
100     *  <p>Array of length 2 of ProductSetSelector</p>
101     */
102
103    public java.util.List<com.commercetools.ml.models.similar_products.ProductSetSelector> getProductSetSelectors() {
104        return this.productSetSelectors;
105    }
106
107    /**
108     *
109     */
110
111    public Double getConfidenceMin() {
112        return this.confidenceMin;
113    }
114
115    /**
116     *
117     */
118
119    public Double getConfidenceMax() {
120        return this.confidenceMax;
121    }
122
123    public void setLimit(final Long limit) {
124        this.limit = limit;
125    }
126
127    public void setOffset(final Long offset) {
128        this.offset = offset;
129    }
130
131    public void setLanguage(final String language) {
132        this.language = language;
133    }
134
135    public void setCurrencyCode(final String currencyCode) {
136        this.currencyCode = currencyCode;
137    }
138
139    public void setSimilarityMeasures(
140            final com.commercetools.ml.models.similar_products.SimilarityMeasures similarityMeasures) {
141        this.similarityMeasures = similarityMeasures;
142    }
143
144    public void setProductSetSelectors(
145            final com.commercetools.ml.models.similar_products.ProductSetSelector... productSetSelectors) {
146        this.productSetSelectors = new ArrayList<>(Arrays.asList(productSetSelectors));
147    }
148
149    public void setProductSetSelectors(
150            final java.util.List<com.commercetools.ml.models.similar_products.ProductSetSelector> productSetSelectors) {
151        this.productSetSelectors = productSetSelectors;
152    }
153
154    public void setConfidenceMin(final Double confidenceMin) {
155        this.confidenceMin = confidenceMin;
156    }
157
158    public void setConfidenceMax(final Double confidenceMax) {
159        this.confidenceMax = confidenceMax;
160    }
161
162    @Override
163    public boolean equals(Object o) {
164        if (this == o)
165            return true;
166
167        if (o == null || getClass() != o.getClass())
168            return false;
169
170        SimilarProductSearchRequestImpl that = (SimilarProductSearchRequestImpl) o;
171
172        return new EqualsBuilder().append(limit, that.limit)
173                .append(offset, that.offset)
174                .append(language, that.language)
175                .append(currencyCode, that.currencyCode)
176                .append(similarityMeasures, that.similarityMeasures)
177                .append(productSetSelectors, that.productSetSelectors)
178                .append(confidenceMin, that.confidenceMin)
179                .append(confidenceMax, that.confidenceMax)
180                .isEquals();
181    }
182
183    @Override
184    public int hashCode() {
185        return new HashCodeBuilder(17, 37).append(limit)
186                .append(offset)
187                .append(language)
188                .append(currencyCode)
189                .append(similarityMeasures)
190                .append(productSetSelectors)
191                .append(confidenceMin)
192                .append(confidenceMax)
193                .toHashCode();
194    }
195
196}