/*
 * Swagger of Opencellsoft Api
 * @#Introduction
 *
 * The version of the OpenAPI document: 7.3.1-SNAPSHOT
 * Contact: contact@opencellsoft.fr
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package org.openapitools.client.model;

import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.client.model.Address;
import org.openapitools.client.model.Auditable;
import org.openapitools.client.model.AuditableFieldHistory;
import org.openapitools.client.model.BusinessAccountModel;
import org.openapitools.client.model.BusinessEntity;
import org.openapitools.client.model.ContactInformation;
import org.openapitools.client.model.CustomFieldValues;
import org.openapitools.client.model.CustomerSequence;
import org.openapitools.client.model.GeneralLedger;
import org.openapitools.client.model.ICustomFieldEntity;
import org.openapitools.client.model.InvoiceTypeSellerSequence;
import org.openapitools.client.model.PaymentGateway;
import org.openapitools.client.model.TradingCountry;
import org.openapitools.client.model.TradingCurrency;
import org.openapitools.client.model.TradingLanguage;

/**
 * Seller
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2019-09-13T10:03:17.753Z[GMT]")
public class Seller {
  public static final String SERIALIZED_NAME_ID = "id";
  @SerializedName(SERIALIZED_NAME_ID)
  private Long id;

  public static final String SERIALIZED_NAME_VERSION = "version";
  @SerializedName(SERIALIZED_NAME_VERSION)
  private Integer version;

  public static final String SERIALIZED_NAME_AUDITABLE = "auditable";
  @SerializedName(SERIALIZED_NAME_AUDITABLE)
  private Auditable auditable;

  public static final String SERIALIZED_NAME_HISTORIZED = "historized";
  @SerializedName(SERIALIZED_NAME_HISTORIZED)
  private Boolean historized;

  public static final String SERIALIZED_NAME_NOTIFIED = "notified";
  @SerializedName(SERIALIZED_NAME_NOTIFIED)
  private Boolean notified;

  public static final String SERIALIZED_NAME_AUDITABLE_FIELDS = "auditableFields";
  @SerializedName(SERIALIZED_NAME_AUDITABLE_FIELDS)
  private List<AuditableFieldHistory> auditableFields = null;

  public static final String SERIALIZED_NAME_CODE = "code";
  @SerializedName(SERIALIZED_NAME_CODE)
  private String code;

  public static final String SERIALIZED_NAME_DESCRIPTION = "description";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION)
  private String description;

  public static final String SERIALIZED_NAME_APPEND_GENERATED_CODE = "appendGeneratedCode";
  @SerializedName(SERIALIZED_NAME_APPEND_GENERATED_CODE)
  private Boolean appendGeneratedCode;

  public static final String SERIALIZED_NAME_UUID = "uuid";
  @SerializedName(SERIALIZED_NAME_UUID)
  private String uuid;

  public static final String SERIALIZED_NAME_CF_VALUES = "cfValues";
  @SerializedName(SERIALIZED_NAME_CF_VALUES)
  private CustomFieldValues cfValues;

  public static final String SERIALIZED_NAME_CF_ACCUMULATED_VALUES = "cfAccumulatedValues";
  @SerializedName(SERIALIZED_NAME_CF_ACCUMULATED_VALUES)
  private CustomFieldValues cfAccumulatedValues;

  public static final String SERIALIZED_NAME_TRADING_CURRENCY = "tradingCurrency";
  @SerializedName(SERIALIZED_NAME_TRADING_CURRENCY)
  private TradingCurrency tradingCurrency;

  public static final String SERIALIZED_NAME_TRADING_COUNTRY = "tradingCountry";
  @SerializedName(SERIALIZED_NAME_TRADING_COUNTRY)
  private TradingCountry tradingCountry;

  public static final String SERIALIZED_NAME_TRADING_LANGUAGE = "tradingLanguage";
  @SerializedName(SERIALIZED_NAME_TRADING_LANGUAGE)
  private TradingLanguage tradingLanguage;

  public static final String SERIALIZED_NAME_ADDRESS = "address";
  @SerializedName(SERIALIZED_NAME_ADDRESS)
  private Address address;

  public static final String SERIALIZED_NAME_CONTACT_INFORMATION = "contactInformation";
  @SerializedName(SERIALIZED_NAME_CONTACT_INFORMATION)
  private ContactInformation contactInformation;

  public static final String SERIALIZED_NAME_VAT_NO = "vatNo";
  @SerializedName(SERIALIZED_NAME_VAT_NO)
  private String vatNo;

  public static final String SERIALIZED_NAME_REGISTRATION_NO = "registrationNo";
  @SerializedName(SERIALIZED_NAME_REGISTRATION_NO)
  private String registrationNo;

  public static final String SERIALIZED_NAME_LEGAL_TEXT = "legalText";
  @SerializedName(SERIALIZED_NAME_LEGAL_TEXT)
  private String legalText;

  public static final String SERIALIZED_NAME_LEGAL_TYPE = "legalType";
  @SerializedName(SERIALIZED_NAME_LEGAL_TYPE)
  private String legalType;

  public static final String SERIALIZED_NAME_SELLER = "seller";
  @SerializedName(SERIALIZED_NAME_SELLER)
  private Seller seller;

  public static final String SERIALIZED_NAME_INVOICE_TYPE_SEQUENCE = "invoiceTypeSequence";
  @SerializedName(SERIALIZED_NAME_INVOICE_TYPE_SEQUENCE)
  private List<InvoiceTypeSellerSequence> invoiceTypeSequence = null;

  public static final String SERIALIZED_NAME_BUSINESS_ACCOUNT_MODEL = "businessAccountModel";
  @SerializedName(SERIALIZED_NAME_BUSINESS_ACCOUNT_MODEL)
  private BusinessAccountModel businessAccountModel;

  public static final String SERIALIZED_NAME_CUSTOMER_SEQUENCES = "customerSequences";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_SEQUENCES)
  private List<CustomerSequence> customerSequences = null;

  public static final String SERIALIZED_NAME_PAYMENT_GATEWAYS = "paymentGateways";
  @SerializedName(SERIALIZED_NAME_PAYMENT_GATEWAYS)
  private List<PaymentGateway> paymentGateways = null;

  public static final String SERIALIZED_NAME_GENERAL_LEDGER = "generalLedger";
  @SerializedName(SERIALIZED_NAME_GENERAL_LEDGER)
  private GeneralLedger generalLedger;

  public static final String SERIALIZED_NAME_PARENT_C_F_ENTITIES = "parentCFEntities";
  @SerializedName(SERIALIZED_NAME_PARENT_C_F_ENTITIES)
  private List<ICustomFieldEntity> parentCFEntities = null;

  public static final String SERIALIZED_NAME_PARENT_ENTITY = "parentEntity";
  @SerializedName(SERIALIZED_NAME_PARENT_ENTITY)
  private BusinessEntity parentEntity;

  public static final String SERIALIZED_NAME_CF_VALUES_NULL_SAFE = "cfValuesNullSafe";
  @SerializedName(SERIALIZED_NAME_CF_VALUES_NULL_SAFE)
  private CustomFieldValues cfValuesNullSafe;

  public static final String SERIALIZED_NAME_CF_VALUES_AS_VALUES = "cfValuesAsValues";
  @SerializedName(SERIALIZED_NAME_CF_VALUES_AS_VALUES)
  private Map<String, Object> cfValuesAsValues = null;

  public static final String SERIALIZED_NAME_CF_ACCUMULATED_VALUES_NULL_SAFE = "cfAccumulatedValuesNullSafe";
  @SerializedName(SERIALIZED_NAME_CF_ACCUMULATED_VALUES_NULL_SAFE)
  private CustomFieldValues cfAccumulatedValuesNullSafe;

  public static final String SERIALIZED_NAME_DESCRIPTION_OR_CODE = "descriptionOrCode";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION_OR_CODE)
  private String descriptionOrCode;

  public static final String SERIALIZED_NAME_DESCRIPTION_AND_CODE = "descriptionAndCode";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION_AND_CODE)
  private String descriptionAndCode;

  public static final String SERIALIZED_NAME_REFERENCE_CODE = "referenceCode";
  @SerializedName(SERIALIZED_NAME_REFERENCE_CODE)
  private String referenceCode;

  public static final String SERIALIZED_NAME_REFERENCE_DESCRIPTION = "referenceDescription";
  @SerializedName(SERIALIZED_NAME_REFERENCE_DESCRIPTION)
  private String referenceDescription;

  public static final String SERIALIZED_NAME_CODE_CHANGED = "codeChanged";
  @SerializedName(SERIALIZED_NAME_CODE_CHANGED)
  private Boolean codeChanged;

  public static final String SERIALIZED_NAME_TRANSIENT = "transient";
  @SerializedName(SERIALIZED_NAME_TRANSIENT)
  private Boolean _transient;


  public Seller id(Long id) {
    
    this.id = id;
    return this;
  }

   /**
   * Get id
   * @return id
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Long getId() {
    return id;
  }



  public void setId(Long id) {
    this.id = id;
  }


  public Seller version(Integer version) {
    
    this.version = version;
    return this;
  }

   /**
   * Get version
   * @return version
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Integer getVersion() {
    return version;
  }



  public void setVersion(Integer version) {
    this.version = version;
  }


  public Seller auditable(Auditable auditable) {
    
    this.auditable = auditable;
    return this;
  }

   /**
   * Get auditable
   * @return auditable
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Auditable getAuditable() {
    return auditable;
  }



  public void setAuditable(Auditable auditable) {
    this.auditable = auditable;
  }


  public Seller historized(Boolean historized) {
    
    this.historized = historized;
    return this;
  }

   /**
   * Get historized
   * @return historized
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getHistorized() {
    return historized;
  }



  public void setHistorized(Boolean historized) {
    this.historized = historized;
  }


  public Seller notified(Boolean notified) {
    
    this.notified = notified;
    return this;
  }

   /**
   * Get notified
   * @return notified
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getNotified() {
    return notified;
  }



  public void setNotified(Boolean notified) {
    this.notified = notified;
  }


  public Seller auditableFields(List<AuditableFieldHistory> auditableFields) {
    
    this.auditableFields = auditableFields;
    return this;
  }

  public Seller addAuditableFieldsItem(AuditableFieldHistory auditableFieldsItem) {
    if (this.auditableFields == null) {
      this.auditableFields = new ArrayList<AuditableFieldHistory>();
    }
    this.auditableFields.add(auditableFieldsItem);
    return this;
  }

   /**
   * Get auditableFields
   * @return auditableFields
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<AuditableFieldHistory> getAuditableFields() {
    return auditableFields;
  }



  public void setAuditableFields(List<AuditableFieldHistory> auditableFields) {
    this.auditableFields = auditableFields;
  }


  public Seller code(String code) {
    
    this.code = code;
    return this;
  }

   /**
   * Get code
   * @return code
  **/
  @ApiModelProperty(required = true, value = "")

  public String getCode() {
    return code;
  }



  public void setCode(String code) {
    this.code = code;
  }


  public Seller description(String description) {
    
    this.description = description;
    return this;
  }

   /**
   * Get description
   * @return description
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getDescription() {
    return description;
  }



  public void setDescription(String description) {
    this.description = description;
  }


  public Seller appendGeneratedCode(Boolean appendGeneratedCode) {
    
    this.appendGeneratedCode = appendGeneratedCode;
    return this;
  }

   /**
   * Get appendGeneratedCode
   * @return appendGeneratedCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getAppendGeneratedCode() {
    return appendGeneratedCode;
  }



  public void setAppendGeneratedCode(Boolean appendGeneratedCode) {
    this.appendGeneratedCode = appendGeneratedCode;
  }


  public Seller uuid(String uuid) {
    
    this.uuid = uuid;
    return this;
  }

   /**
   * Get uuid
   * @return uuid
  **/
  @ApiModelProperty(required = true, value = "")

  public String getUuid() {
    return uuid;
  }



  public void setUuid(String uuid) {
    this.uuid = uuid;
  }


  public Seller cfValues(CustomFieldValues cfValues) {
    
    this.cfValues = cfValues;
    return this;
  }

   /**
   * Get cfValues
   * @return cfValues
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public CustomFieldValues getCfValues() {
    return cfValues;
  }



  public void setCfValues(CustomFieldValues cfValues) {
    this.cfValues = cfValues;
  }


  public Seller cfAccumulatedValues(CustomFieldValues cfAccumulatedValues) {
    
    this.cfAccumulatedValues = cfAccumulatedValues;
    return this;
  }

   /**
   * Get cfAccumulatedValues
   * @return cfAccumulatedValues
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public CustomFieldValues getCfAccumulatedValues() {
    return cfAccumulatedValues;
  }



  public void setCfAccumulatedValues(CustomFieldValues cfAccumulatedValues) {
    this.cfAccumulatedValues = cfAccumulatedValues;
  }


  public Seller tradingCurrency(TradingCurrency tradingCurrency) {
    
    this.tradingCurrency = tradingCurrency;
    return this;
  }

   /**
   * Get tradingCurrency
   * @return tradingCurrency
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public TradingCurrency getTradingCurrency() {
    return tradingCurrency;
  }



  public void setTradingCurrency(TradingCurrency tradingCurrency) {
    this.tradingCurrency = tradingCurrency;
  }


  public Seller tradingCountry(TradingCountry tradingCountry) {
    
    this.tradingCountry = tradingCountry;
    return this;
  }

   /**
   * Get tradingCountry
   * @return tradingCountry
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public TradingCountry getTradingCountry() {
    return tradingCountry;
  }



  public void setTradingCountry(TradingCountry tradingCountry) {
    this.tradingCountry = tradingCountry;
  }


  public Seller tradingLanguage(TradingLanguage tradingLanguage) {
    
    this.tradingLanguage = tradingLanguage;
    return this;
  }

   /**
   * Get tradingLanguage
   * @return tradingLanguage
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public TradingLanguage getTradingLanguage() {
    return tradingLanguage;
  }



  public void setTradingLanguage(TradingLanguage tradingLanguage) {
    this.tradingLanguage = tradingLanguage;
  }


  public Seller address(Address address) {
    
    this.address = address;
    return this;
  }

   /**
   * Get address
   * @return address
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Address getAddress() {
    return address;
  }



  public void setAddress(Address address) {
    this.address = address;
  }


  public Seller contactInformation(ContactInformation contactInformation) {
    
    this.contactInformation = contactInformation;
    return this;
  }

   /**
   * Get contactInformation
   * @return contactInformation
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public ContactInformation getContactInformation() {
    return contactInformation;
  }



  public void setContactInformation(ContactInformation contactInformation) {
    this.contactInformation = contactInformation;
  }


  public Seller vatNo(String vatNo) {
    
    this.vatNo = vatNo;
    return this;
  }

   /**
   * Get vatNo
   * @return vatNo
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getVatNo() {
    return vatNo;
  }



  public void setVatNo(String vatNo) {
    this.vatNo = vatNo;
  }


  public Seller registrationNo(String registrationNo) {
    
    this.registrationNo = registrationNo;
    return this;
  }

   /**
   * Get registrationNo
   * @return registrationNo
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getRegistrationNo() {
    return registrationNo;
  }



  public void setRegistrationNo(String registrationNo) {
    this.registrationNo = registrationNo;
  }


  public Seller legalText(String legalText) {
    
    this.legalText = legalText;
    return this;
  }

   /**
   * Get legalText
   * @return legalText
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getLegalText() {
    return legalText;
  }



  public void setLegalText(String legalText) {
    this.legalText = legalText;
  }


  public Seller legalType(String legalType) {
    
    this.legalType = legalType;
    return this;
  }

   /**
   * Get legalType
   * @return legalType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getLegalType() {
    return legalType;
  }



  public void setLegalType(String legalType) {
    this.legalType = legalType;
  }


  public Seller seller(Seller seller) {
    
    this.seller = seller;
    return this;
  }

   /**
   * Get seller
   * @return seller
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Seller getSeller() {
    return seller;
  }



  public void setSeller(Seller seller) {
    this.seller = seller;
  }


  public Seller invoiceTypeSequence(List<InvoiceTypeSellerSequence> invoiceTypeSequence) {
    
    this.invoiceTypeSequence = invoiceTypeSequence;
    return this;
  }

  public Seller addInvoiceTypeSequenceItem(InvoiceTypeSellerSequence invoiceTypeSequenceItem) {
    if (this.invoiceTypeSequence == null) {
      this.invoiceTypeSequence = new ArrayList<InvoiceTypeSellerSequence>();
    }
    this.invoiceTypeSequence.add(invoiceTypeSequenceItem);
    return this;
  }

   /**
   * Get invoiceTypeSequence
   * @return invoiceTypeSequence
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<InvoiceTypeSellerSequence> getInvoiceTypeSequence() {
    return invoiceTypeSequence;
  }



  public void setInvoiceTypeSequence(List<InvoiceTypeSellerSequence> invoiceTypeSequence) {
    this.invoiceTypeSequence = invoiceTypeSequence;
  }


  public Seller businessAccountModel(BusinessAccountModel businessAccountModel) {
    
    this.businessAccountModel = businessAccountModel;
    return this;
  }

   /**
   * Get businessAccountModel
   * @return businessAccountModel
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public BusinessAccountModel getBusinessAccountModel() {
    return businessAccountModel;
  }



  public void setBusinessAccountModel(BusinessAccountModel businessAccountModel) {
    this.businessAccountModel = businessAccountModel;
  }


  public Seller customerSequences(List<CustomerSequence> customerSequences) {
    
    this.customerSequences = customerSequences;
    return this;
  }

  public Seller addCustomerSequencesItem(CustomerSequence customerSequencesItem) {
    if (this.customerSequences == null) {
      this.customerSequences = new ArrayList<CustomerSequence>();
    }
    this.customerSequences.add(customerSequencesItem);
    return this;
  }

   /**
   * Get customerSequences
   * @return customerSequences
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<CustomerSequence> getCustomerSequences() {
    return customerSequences;
  }



  public void setCustomerSequences(List<CustomerSequence> customerSequences) {
    this.customerSequences = customerSequences;
  }


  public Seller paymentGateways(List<PaymentGateway> paymentGateways) {
    
    this.paymentGateways = paymentGateways;
    return this;
  }

  public Seller addPaymentGatewaysItem(PaymentGateway paymentGatewaysItem) {
    if (this.paymentGateways == null) {
      this.paymentGateways = new ArrayList<PaymentGateway>();
    }
    this.paymentGateways.add(paymentGatewaysItem);
    return this;
  }

   /**
   * Get paymentGateways
   * @return paymentGateways
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<PaymentGateway> getPaymentGateways() {
    return paymentGateways;
  }



  public void setPaymentGateways(List<PaymentGateway> paymentGateways) {
    this.paymentGateways = paymentGateways;
  }


  public Seller generalLedger(GeneralLedger generalLedger) {
    
    this.generalLedger = generalLedger;
    return this;
  }

   /**
   * Get generalLedger
   * @return generalLedger
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public GeneralLedger getGeneralLedger() {
    return generalLedger;
  }



  public void setGeneralLedger(GeneralLedger generalLedger) {
    this.generalLedger = generalLedger;
  }


  public Seller parentCFEntities(List<ICustomFieldEntity> parentCFEntities) {
    
    this.parentCFEntities = parentCFEntities;
    return this;
  }

  public Seller addParentCFEntitiesItem(ICustomFieldEntity parentCFEntitiesItem) {
    if (this.parentCFEntities == null) {
      this.parentCFEntities = new ArrayList<ICustomFieldEntity>();
    }
    this.parentCFEntities.add(parentCFEntitiesItem);
    return this;
  }

   /**
   * Get parentCFEntities
   * @return parentCFEntities
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<ICustomFieldEntity> getParentCFEntities() {
    return parentCFEntities;
  }



  public void setParentCFEntities(List<ICustomFieldEntity> parentCFEntities) {
    this.parentCFEntities = parentCFEntities;
  }


  public Seller parentEntity(BusinessEntity parentEntity) {
    
    this.parentEntity = parentEntity;
    return this;
  }

   /**
   * Get parentEntity
   * @return parentEntity
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public BusinessEntity getParentEntity() {
    return parentEntity;
  }



  public void setParentEntity(BusinessEntity parentEntity) {
    this.parentEntity = parentEntity;
  }


  public Seller cfValuesNullSafe(CustomFieldValues cfValuesNullSafe) {
    
    this.cfValuesNullSafe = cfValuesNullSafe;
    return this;
  }

   /**
   * Get cfValuesNullSafe
   * @return cfValuesNullSafe
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public CustomFieldValues getCfValuesNullSafe() {
    return cfValuesNullSafe;
  }



  public void setCfValuesNullSafe(CustomFieldValues cfValuesNullSafe) {
    this.cfValuesNullSafe = cfValuesNullSafe;
  }


  public Seller cfValuesAsValues(Map<String, Object> cfValuesAsValues) {
    
    this.cfValuesAsValues = cfValuesAsValues;
    return this;
  }

  public Seller putCfValuesAsValuesItem(String key, Object cfValuesAsValuesItem) {
    if (this.cfValuesAsValues == null) {
      this.cfValuesAsValues = new HashMap<String, Object>();
    }
    this.cfValuesAsValues.put(key, cfValuesAsValuesItem);
    return this;
  }

   /**
   * Get cfValuesAsValues
   * @return cfValuesAsValues
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, Object> getCfValuesAsValues() {
    return cfValuesAsValues;
  }



  public void setCfValuesAsValues(Map<String, Object> cfValuesAsValues) {
    this.cfValuesAsValues = cfValuesAsValues;
  }


  public Seller cfAccumulatedValuesNullSafe(CustomFieldValues cfAccumulatedValuesNullSafe) {
    
    this.cfAccumulatedValuesNullSafe = cfAccumulatedValuesNullSafe;
    return this;
  }

   /**
   * Get cfAccumulatedValuesNullSafe
   * @return cfAccumulatedValuesNullSafe
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public CustomFieldValues getCfAccumulatedValuesNullSafe() {
    return cfAccumulatedValuesNullSafe;
  }



  public void setCfAccumulatedValuesNullSafe(CustomFieldValues cfAccumulatedValuesNullSafe) {
    this.cfAccumulatedValuesNullSafe = cfAccumulatedValuesNullSafe;
  }


  public Seller descriptionOrCode(String descriptionOrCode) {
    
    this.descriptionOrCode = descriptionOrCode;
    return this;
  }

   /**
   * Get descriptionOrCode
   * @return descriptionOrCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getDescriptionOrCode() {
    return descriptionOrCode;
  }



  public void setDescriptionOrCode(String descriptionOrCode) {
    this.descriptionOrCode = descriptionOrCode;
  }


  public Seller descriptionAndCode(String descriptionAndCode) {
    
    this.descriptionAndCode = descriptionAndCode;
    return this;
  }

   /**
   * Get descriptionAndCode
   * @return descriptionAndCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getDescriptionAndCode() {
    return descriptionAndCode;
  }



  public void setDescriptionAndCode(String descriptionAndCode) {
    this.descriptionAndCode = descriptionAndCode;
  }


  public Seller referenceCode(String referenceCode) {
    
    this.referenceCode = referenceCode;
    return this;
  }

   /**
   * Get referenceCode
   * @return referenceCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getReferenceCode() {
    return referenceCode;
  }



  public void setReferenceCode(String referenceCode) {
    this.referenceCode = referenceCode;
  }


  public Seller referenceDescription(String referenceDescription) {
    
    this.referenceDescription = referenceDescription;
    return this;
  }

   /**
   * Get referenceDescription
   * @return referenceDescription
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getReferenceDescription() {
    return referenceDescription;
  }



  public void setReferenceDescription(String referenceDescription) {
    this.referenceDescription = referenceDescription;
  }


  public Seller codeChanged(Boolean codeChanged) {
    
    this.codeChanged = codeChanged;
    return this;
  }

   /**
   * Get codeChanged
   * @return codeChanged
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getCodeChanged() {
    return codeChanged;
  }



  public void setCodeChanged(Boolean codeChanged) {
    this.codeChanged = codeChanged;
  }


  public Seller _transient(Boolean _transient) {
    
    this._transient = _transient;
    return this;
  }

   /**
   * Get _transient
   * @return _transient
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getTransient() {
    return _transient;
  }



  public void setTransient(Boolean _transient) {
    this._transient = _transient;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    Seller seller = (Seller) o;
    return Objects.equals(this.id, seller.id) &&
        Objects.equals(this.version, seller.version) &&
        Objects.equals(this.auditable, seller.auditable) &&
        Objects.equals(this.historized, seller.historized) &&
        Objects.equals(this.notified, seller.notified) &&
        Objects.equals(this.auditableFields, seller.auditableFields) &&
        Objects.equals(this.code, seller.code) &&
        Objects.equals(this.description, seller.description) &&
        Objects.equals(this.appendGeneratedCode, seller.appendGeneratedCode) &&
        Objects.equals(this.uuid, seller.uuid) &&
        Objects.equals(this.cfValues, seller.cfValues) &&
        Objects.equals(this.cfAccumulatedValues, seller.cfAccumulatedValues) &&
        Objects.equals(this.tradingCurrency, seller.tradingCurrency) &&
        Objects.equals(this.tradingCountry, seller.tradingCountry) &&
        Objects.equals(this.tradingLanguage, seller.tradingLanguage) &&
        Objects.equals(this.address, seller.address) &&
        Objects.equals(this.contactInformation, seller.contactInformation) &&
        Objects.equals(this.vatNo, seller.vatNo) &&
        Objects.equals(this.registrationNo, seller.registrationNo) &&
        Objects.equals(this.legalText, seller.legalText) &&
        Objects.equals(this.legalType, seller.legalType) &&
        Objects.equals(this.seller, seller.seller) &&
        Objects.equals(this.invoiceTypeSequence, seller.invoiceTypeSequence) &&
        Objects.equals(this.businessAccountModel, seller.businessAccountModel) &&
        Objects.equals(this.customerSequences, seller.customerSequences) &&
        Objects.equals(this.paymentGateways, seller.paymentGateways) &&
        Objects.equals(this.generalLedger, seller.generalLedger) &&
        Objects.equals(this.parentCFEntities, seller.parentCFEntities) &&
        Objects.equals(this.parentEntity, seller.parentEntity) &&
        Objects.equals(this.cfValuesNullSafe, seller.cfValuesNullSafe) &&
        Objects.equals(this.cfValuesAsValues, seller.cfValuesAsValues) &&
        Objects.equals(this.cfAccumulatedValuesNullSafe, seller.cfAccumulatedValuesNullSafe) &&
        Objects.equals(this.descriptionOrCode, seller.descriptionOrCode) &&
        Objects.equals(this.descriptionAndCode, seller.descriptionAndCode) &&
        Objects.equals(this.referenceCode, seller.referenceCode) &&
        Objects.equals(this.referenceDescription, seller.referenceDescription) &&
        Objects.equals(this.codeChanged, seller.codeChanged) &&
        Objects.equals(this._transient, seller._transient);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, version, auditable, historized, notified, auditableFields, code, description, appendGeneratedCode, uuid, cfValues, cfAccumulatedValues, tradingCurrency, tradingCountry, tradingLanguage, address, contactInformation, vatNo, registrationNo, legalText, legalType, seller, invoiceTypeSequence, businessAccountModel, customerSequences, paymentGateways, generalLedger, parentCFEntities, parentEntity, cfValuesNullSafe, cfValuesAsValues, cfAccumulatedValuesNullSafe, descriptionOrCode, descriptionAndCode, referenceCode, referenceDescription, codeChanged, _transient);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class Seller {\n");
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    version: ").append(toIndentedString(version)).append("\n");
    sb.append("    auditable: ").append(toIndentedString(auditable)).append("\n");
    sb.append("    historized: ").append(toIndentedString(historized)).append("\n");
    sb.append("    notified: ").append(toIndentedString(notified)).append("\n");
    sb.append("    auditableFields: ").append(toIndentedString(auditableFields)).append("\n");
    sb.append("    code: ").append(toIndentedString(code)).append("\n");
    sb.append("    description: ").append(toIndentedString(description)).append("\n");
    sb.append("    appendGeneratedCode: ").append(toIndentedString(appendGeneratedCode)).append("\n");
    sb.append("    uuid: ").append(toIndentedString(uuid)).append("\n");
    sb.append("    cfValues: ").append(toIndentedString(cfValues)).append("\n");
    sb.append("    cfAccumulatedValues: ").append(toIndentedString(cfAccumulatedValues)).append("\n");
    sb.append("    tradingCurrency: ").append(toIndentedString(tradingCurrency)).append("\n");
    sb.append("    tradingCountry: ").append(toIndentedString(tradingCountry)).append("\n");
    sb.append("    tradingLanguage: ").append(toIndentedString(tradingLanguage)).append("\n");
    sb.append("    address: ").append(toIndentedString(address)).append("\n");
    sb.append("    contactInformation: ").append(toIndentedString(contactInformation)).append("\n");
    sb.append("    vatNo: ").append(toIndentedString(vatNo)).append("\n");
    sb.append("    registrationNo: ").append(toIndentedString(registrationNo)).append("\n");
    sb.append("    legalText: ").append(toIndentedString(legalText)).append("\n");
    sb.append("    legalType: ").append(toIndentedString(legalType)).append("\n");
    sb.append("    seller: ").append(toIndentedString(seller)).append("\n");
    sb.append("    invoiceTypeSequence: ").append(toIndentedString(invoiceTypeSequence)).append("\n");
    sb.append("    businessAccountModel: ").append(toIndentedString(businessAccountModel)).append("\n");
    sb.append("    customerSequences: ").append(toIndentedString(customerSequences)).append("\n");
    sb.append("    paymentGateways: ").append(toIndentedString(paymentGateways)).append("\n");
    sb.append("    generalLedger: ").append(toIndentedString(generalLedger)).append("\n");
    sb.append("    parentCFEntities: ").append(toIndentedString(parentCFEntities)).append("\n");
    sb.append("    parentEntity: ").append(toIndentedString(parentEntity)).append("\n");
    sb.append("    cfValuesNullSafe: ").append(toIndentedString(cfValuesNullSafe)).append("\n");
    sb.append("    cfValuesAsValues: ").append(toIndentedString(cfValuesAsValues)).append("\n");
    sb.append("    cfAccumulatedValuesNullSafe: ").append(toIndentedString(cfAccumulatedValuesNullSafe)).append("\n");
    sb.append("    descriptionOrCode: ").append(toIndentedString(descriptionOrCode)).append("\n");
    sb.append("    descriptionAndCode: ").append(toIndentedString(descriptionAndCode)).append("\n");
    sb.append("    referenceCode: ").append(toIndentedString(referenceCode)).append("\n");
    sb.append("    referenceDescription: ").append(toIndentedString(referenceDescription)).append("\n");
    sb.append("    codeChanged: ").append(toIndentedString(codeChanged)).append("\n");
    sb.append("    _transient: ").append(toIndentedString(_transient)).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(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}

