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

it.contactlab.hub.sdk.java.models.AbstractCustomer Maven / Gradle / Ivy

There is a newer version: 1.8.0
Show newest version
package it.contactlab.hub.sdk.java.models;

import org.immutables.value.Value;

import java.time.OffsetDateTime;
import java.util.Optional;

/**
 * A Customer.
 */
@Value.Immutable
@Value.Style(typeImmutable = "*")
public abstract class AbstractCustomer {
  /**
   * The customer id.
   */
  public abstract Optional id();

  /**
   * The registration timestamp.
   */
  public abstract Optional registeredAt();

  /**
   * The customer update timestamp.
   */
  public abstract Optional updatedAt();

  /**
   * The external id of the customer.
   */
  public abstract Optional externalId();

  /**
   * The {@link BaseProperties} of the customer.
   */
  public abstract Optional base();

  /**
   * The {@link Consents} of the customer.
   */
  public abstract Optional consents();

  /**
   * The id of the ContactHub node the customer belongs to.
   */
  public abstract Optional nodeId();

  /**
   * Custom data defined by workspace based on a declarated schema.
   */
  public abstract Optional extended();

  /**
   * Custom data defined by workspace not based on a declarated schema.
   */
  public abstract Optional extra();

  /**
   * The {@link CustomerTags} associated to the customer.
   */
  public abstract Optional tags();
}