it.contactlab.hub.sdk.java.models.AbstractBaseProperties Maven / Gradle / Ivy
package it.contactlab.hub.sdk.java.models;
import org.immutables.value.Value;
import java.net.URI;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;
/**
* Base Properties for a Customer.
*/
@Value.Immutable
@Value.Style(typeImmutable = "*")
public abstract class AbstractBaseProperties {
/**
* The picture url of customer.
*/
public abstract Optional pictureUrl();
/**
* The title.
*/
public abstract Optional title();
/**
* The prefix.
*/
public abstract Optional prefix();
/**
* The first name.
*/
public abstract Optional firstName();
/**
* The last name.
*/
public abstract Optional lastName();
/**
* The middle name.
*/
public abstract Optional middleName();
/**
* Gender.
*/
public abstract Optional gender();
/**
* Date of birth.
*/
public abstract Optional dob();
/**
* The locale.
*/
public abstract Optional locale();
/**
* The time zone.
*/
public abstract Optional timezone();
/**
* The contact information.
*/
public abstract Optional contacts();
/**
* The address information.
*/
public abstract Optional address();
/**
* Credential.
*/
public abstract Optional credential();
/**
* Educations.
*
* Marked as @Nullable so that you can create a `patchCustomer` object with
* this field set to null. It is never `null` when it is persisted.
*/
@Nullable public abstract List educations();
/**
* Likes.
*
* Marked as @Nullable so that you can create a `patchCustomer` object with
* this field set to null. It is never `null` when it is persisted.
*/
@Nullable public abstract List likes();
/**
* Social profile.
*/
public abstract Optional socialProfile();
/**
* Jobs.
*
* Marked as @Nullable so that you can create a `patchCustomer` object with
* this field set to null. It is never `null` when it is persisted.
*/
@Nullable public abstract List jobs();
/**
* Subscriptions.
*
* Marked as @Nullable so that you can create a `patchCustomer` object with
* this field set to null. It is never `null` when it is persisted.
*/
@Nullable public abstract List subscriptions();
}