All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.algolia.model.insights.ConvertedObjectIDsAfterSearch Maven / Gradle / Ivy

The newest version!
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost
// - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

package com.algolia.model.insights;

import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * Use this event to track when users convert after a previous Algolia request. For example, a user
 * clicks on an item in the search results to view the product detail page. Then, the user adds the
 * item to their shopping cart. If you're building your category pages with Algolia, you'll also use
 * this event.
 */
@JsonDeserialize(as = ConvertedObjectIDsAfterSearch.class)
public class ConvertedObjectIDsAfterSearch implements EventsItems {

  @JsonProperty("eventName")
  private String eventName;

  @JsonProperty("eventType")
  private ConversionEvent eventType;

  @JsonProperty("index")
  private String index;

  @JsonProperty("objectIDs")
  private List objectIDs = new ArrayList<>();

  @JsonProperty("queryID")
  private String queryID;

  @JsonProperty("userToken")
  private String userToken;

  @JsonProperty("authenticatedUserToken")
  private String authenticatedUserToken;

  @JsonProperty("timestamp")
  private Long timestamp;

  public ConvertedObjectIDsAfterSearch setEventName(String eventName) {
    this.eventName = eventName;
    return this;
  }

  /**
   * Event name, up to 64 ASCII characters. Consider naming events consistently—for example, by
   * adopting Segment's
   * [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework)
   * framework.
   */
  @javax.annotation.Nonnull
  public String getEventName() {
    return eventName;
  }

  public ConvertedObjectIDsAfterSearch setEventType(ConversionEvent eventType) {
    this.eventType = eventType;
    return this;
  }

  /** Get eventType */
  @javax.annotation.Nonnull
  public ConversionEvent getEventType() {
    return eventType;
  }

  public ConvertedObjectIDsAfterSearch setIndex(String index) {
    this.index = index;
    return this;
  }

  /** Index name (case-sensitive) to which the event's items belong. */
  @javax.annotation.Nonnull
  public String getIndex() {
    return index;
  }

  public ConvertedObjectIDsAfterSearch setObjectIDs(List objectIDs) {
    this.objectIDs = objectIDs;
    return this;
  }

  public ConvertedObjectIDsAfterSearch addObjectIDs(String objectIDsItem) {
    this.objectIDs.add(objectIDsItem);
    return this;
  }

  /** Object IDs of the records that are part of the event. */
  @javax.annotation.Nonnull
  public List getObjectIDs() {
    return objectIDs;
  }

  public ConvertedObjectIDsAfterSearch setQueryID(String queryID) {
    this.queryID = queryID;
    return this;
  }

  /**
   * Unique identifier for a search query. The query ID is required for events related to search or
   * browse requests. If you add `clickAnalytics: true` as a search request parameter, the query ID
   * is included in the API response.
   */
  @javax.annotation.Nonnull
  public String getQueryID() {
    return queryID;
  }

  public ConvertedObjectIDsAfterSearch setUserToken(String userToken) {
    this.userToken = userToken;
    return this;
  }

  /**
   * Anonymous or pseudonymous user identifier. Don't use personally identifiable information in
   * user tokens. For more information, see [User
   * token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
   */
  @javax.annotation.Nonnull
  public String getUserToken() {
    return userToken;
  }

  public ConvertedObjectIDsAfterSearch setAuthenticatedUserToken(String authenticatedUserToken) {
    this.authenticatedUserToken = authenticatedUserToken;
    return this;
  }

  /**
   * Identifier for authenticated users. When the user signs in, you can get an identifier from your
   * system and send it as `authenticatedUserToken`. This lets you keep using the `userToken` from
   * before the user signed in, while providing a reliable way to identify users across sessions.
   * Don't use personally identifiable information in user tokens. For more information, see [User
   * token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
   */
  @javax.annotation.Nullable
  public String getAuthenticatedUserToken() {
    return authenticatedUserToken;
  }

  public ConvertedObjectIDsAfterSearch setTimestamp(Long timestamp) {
    this.timestamp = timestamp;
    return this;
  }

  /**
   * Timestamp of the event, measured in milliseconds since the Unix epoch. By default, the Insights
   * API uses the time it receives an event as its timestamp.
   */
  @javax.annotation.Nullable
  public Long getTimestamp() {
    return timestamp;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ConvertedObjectIDsAfterSearch convertedObjectIDsAfterSearch = (ConvertedObjectIDsAfterSearch) o;
    return (
      Objects.equals(this.eventName, convertedObjectIDsAfterSearch.eventName) &&
      Objects.equals(this.eventType, convertedObjectIDsAfterSearch.eventType) &&
      Objects.equals(this.index, convertedObjectIDsAfterSearch.index) &&
      Objects.equals(this.objectIDs, convertedObjectIDsAfterSearch.objectIDs) &&
      Objects.equals(this.queryID, convertedObjectIDsAfterSearch.queryID) &&
      Objects.equals(this.userToken, convertedObjectIDsAfterSearch.userToken) &&
      Objects.equals(this.authenticatedUserToken, convertedObjectIDsAfterSearch.authenticatedUserToken) &&
      Objects.equals(this.timestamp, convertedObjectIDsAfterSearch.timestamp)
    );
  }

  @Override
  public int hashCode() {
    return Objects.hash(eventName, eventType, index, objectIDs, queryID, userToken, authenticatedUserToken, timestamp);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ConvertedObjectIDsAfterSearch {\n");
    sb.append("    eventName: ").append(toIndentedString(eventName)).append("\n");
    sb.append("    eventType: ").append(toIndentedString(eventType)).append("\n");
    sb.append("    index: ").append(toIndentedString(index)).append("\n");
    sb.append("    objectIDs: ").append(toIndentedString(objectIDs)).append("\n");
    sb.append("    queryID: ").append(toIndentedString(queryID)).append("\n");
    sb.append("    userToken: ").append(toIndentedString(userToken)).append("\n");
    sb.append("    authenticatedUserToken: ").append(toIndentedString(authenticatedUserToken)).append("\n");
    sb.append("    timestamp: ").append(toIndentedString(timestamp)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy