/*
 * 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.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.openapitools.client.model.CustomFieldsDto;
import org.openapitools.client.model.DiscountPlanDto;
import org.openapitools.client.model.PaymentMethodDto;
import org.threeten.bp.OffsetDateTime;

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

  public static final String SERIALIZED_NAME_CUSTOMER_ID = "customerId";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_ID)
  private String customerId;

  public static final String SERIALIZED_NAME_CUSTOMER_CODE = "customerCode";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_CODE)
  private String customerCode;

  public static final String SERIALIZED_NAME_SELLER_CODE = "sellerCode";
  @SerializedName(SERIALIZED_NAME_SELLER_CODE)
  private String sellerCode;

  public static final String SERIALIZED_NAME_CUSTOMER_BRAND_CODE = "customerBrandCode";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_BRAND_CODE)
  private String customerBrandCode;

  public static final String SERIALIZED_NAME_CUSTOMER_CATEGORY_CODE = "customerCategoryCode";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_CATEGORY_CODE)
  private String customerCategoryCode;

  public static final String SERIALIZED_NAME_CURRENCY_CODE = "currencyCode";
  @SerializedName(SERIALIZED_NAME_CURRENCY_CODE)
  private String currencyCode;

  public static final String SERIALIZED_NAME_COUNTRY_CODE = "countryCode";
  @SerializedName(SERIALIZED_NAME_COUNTRY_CODE)
  private String countryCode;

  public static final String SERIALIZED_NAME_LANGUAGE_CODE = "languageCode";
  @SerializedName(SERIALIZED_NAME_LANGUAGE_CODE)
  private String languageCode;

  public static final String SERIALIZED_NAME_TITLE_CODE = "titleCode";
  @SerializedName(SERIALIZED_NAME_TITLE_CODE)
  private String titleCode;

  public static final String SERIALIZED_NAME_FIRST_NAME = "firstName";
  @SerializedName(SERIALIZED_NAME_FIRST_NAME)
  private String firstName;

  public static final String SERIALIZED_NAME_LAST_NAME = "lastName";
  @SerializedName(SERIALIZED_NAME_LAST_NAME)
  private String lastName;

  public static final String SERIALIZED_NAME_BIRTH_DATE = "birthDate";
  @SerializedName(SERIALIZED_NAME_BIRTH_DATE)
  private OffsetDateTime birthDate;

  public static final String SERIALIZED_NAME_PHONE_NUMBER = "phoneNumber";
  @SerializedName(SERIALIZED_NAME_PHONE_NUMBER)
  private String phoneNumber;

  public static final String SERIALIZED_NAME_BILLING_CYCLE_CODE = "billingCycleCode";
  @SerializedName(SERIALIZED_NAME_BILLING_CYCLE_CODE)
  private String billingCycleCode;

  public static final String SERIALIZED_NAME_ADDRESS1 = "address1";
  @SerializedName(SERIALIZED_NAME_ADDRESS1)
  private String address1;

  public static final String SERIALIZED_NAME_ADDRESS2 = "address2";
  @SerializedName(SERIALIZED_NAME_ADDRESS2)
  private String address2;

  public static final String SERIALIZED_NAME_ADDRESS3 = "address3";
  @SerializedName(SERIALIZED_NAME_ADDRESS3)
  private String address3;

  public static final String SERIALIZED_NAME_ZIP_CODE = "zipCode";
  @SerializedName(SERIALIZED_NAME_ZIP_CODE)
  private String zipCode;

  public static final String SERIALIZED_NAME_STATE = "state";
  @SerializedName(SERIALIZED_NAME_STATE)
  private String state;

  public static final String SERIALIZED_NAME_CITY = "city";
  @SerializedName(SERIALIZED_NAME_CITY)
  private String city;

  public static final String SERIALIZED_NAME_USE_PREFIX = "usePrefix";
  @SerializedName(SERIALIZED_NAME_USE_PREFIX)
  private Boolean usePrefix;

  public static final String SERIALIZED_NAME_INVOICING_THRESHOLD = "invoicingThreshold";
  @SerializedName(SERIALIZED_NAME_INVOICING_THRESHOLD)
  private BigDecimal invoicingThreshold;

  public static final String SERIALIZED_NAME_DISCOUNT_PLANS_FOR_INSTANTIATION = "discountPlansForInstantiation";
  @SerializedName(SERIALIZED_NAME_DISCOUNT_PLANS_FOR_INSTANTIATION)
  private List<DiscountPlanDto> discountPlansForInstantiation = null;

  public static final String SERIALIZED_NAME_DISCOUNT_PLANS_FOR_TERMINATION = "discountPlansForTermination";
  @SerializedName(SERIALIZED_NAME_DISCOUNT_PLANS_FOR_TERMINATION)
  private List<String> discountPlansForTermination = null;

  public static final String SERIALIZED_NAME_CUSTOM_FIELDS = "customFields";
  @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS)
  private CustomFieldsDto customFields;

  public static final String SERIALIZED_NAME_LIMIT = "limit";
  @SerializedName(SERIALIZED_NAME_LIMIT)
  private Integer limit;

  public static final String SERIALIZED_NAME_SORT_FIELD = "sortField";
  @SerializedName(SERIALIZED_NAME_SORT_FIELD)
  private String sortField;

  public static final String SERIALIZED_NAME_INDEX = "index";
  @SerializedName(SERIALIZED_NAME_INDEX)
  private Integer index;

  public static final String SERIALIZED_NAME_PAYMENT_METHODS = "paymentMethods";
  @SerializedName(SERIALIZED_NAME_PAYMENT_METHODS)
  private List<PaymentMethodDto> paymentMethods = null;

  public static final String SERIALIZED_NAME_PAYMENT_METHOD = "paymentMethod";
  @SerializedName(SERIALIZED_NAME_PAYMENT_METHOD)
  private Integer paymentMethod;

  public static final String SERIALIZED_NAME_JOB_TITLE = "jobTitle";
  @SerializedName(SERIALIZED_NAME_JOB_TITLE)
  private String jobTitle;

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

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

  public static final String SERIALIZED_NAME_MAILING_TYPE = "mailingType";
  @SerializedName(SERIALIZED_NAME_MAILING_TYPE)
  private String mailingType;

  public static final String SERIALIZED_NAME_EMAIL_TEMPLATE = "emailTemplate";
  @SerializedName(SERIALIZED_NAME_EMAIL_TEMPLATE)
  private String emailTemplate;

  public static final String SERIALIZED_NAME_CCED_EMAILS = "ccedEmails";
  @SerializedName(SERIALIZED_NAME_CCED_EMAILS)
  private String ccedEmails;


  public AccountHierarchyDto email(String email) {
    
    this.email = email;
    return this;
  }

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

  public String getEmail() {
    return email;
  }



  public void setEmail(String email) {
    this.email = email;
  }


  public AccountHierarchyDto customerId(String customerId) {
    
    this.customerId = customerId;
    return this;
  }

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

  public String getCustomerId() {
    return customerId;
  }



  public void setCustomerId(String customerId) {
    this.customerId = customerId;
  }


  public AccountHierarchyDto customerCode(String customerCode) {
    
    this.customerCode = customerCode;
    return this;
  }

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

  public String getCustomerCode() {
    return customerCode;
  }



  public void setCustomerCode(String customerCode) {
    this.customerCode = customerCode;
  }


  public AccountHierarchyDto sellerCode(String sellerCode) {
    
    this.sellerCode = sellerCode;
    return this;
  }

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

  public String getSellerCode() {
    return sellerCode;
  }



  public void setSellerCode(String sellerCode) {
    this.sellerCode = sellerCode;
  }


  public AccountHierarchyDto customerBrandCode(String customerBrandCode) {
    
    this.customerBrandCode = customerBrandCode;
    return this;
  }

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

  public String getCustomerBrandCode() {
    return customerBrandCode;
  }



  public void setCustomerBrandCode(String customerBrandCode) {
    this.customerBrandCode = customerBrandCode;
  }


  public AccountHierarchyDto customerCategoryCode(String customerCategoryCode) {
    
    this.customerCategoryCode = customerCategoryCode;
    return this;
  }

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

  public String getCustomerCategoryCode() {
    return customerCategoryCode;
  }



  public void setCustomerCategoryCode(String customerCategoryCode) {
    this.customerCategoryCode = customerCategoryCode;
  }


  public AccountHierarchyDto currencyCode(String currencyCode) {
    
    this.currencyCode = currencyCode;
    return this;
  }

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

  public String getCurrencyCode() {
    return currencyCode;
  }



  public void setCurrencyCode(String currencyCode) {
    this.currencyCode = currencyCode;
  }


  public AccountHierarchyDto countryCode(String countryCode) {
    
    this.countryCode = countryCode;
    return this;
  }

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

  public String getCountryCode() {
    return countryCode;
  }



  public void setCountryCode(String countryCode) {
    this.countryCode = countryCode;
  }


  public AccountHierarchyDto languageCode(String languageCode) {
    
    this.languageCode = languageCode;
    return this;
  }

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

  public String getLanguageCode() {
    return languageCode;
  }



  public void setLanguageCode(String languageCode) {
    this.languageCode = languageCode;
  }


  public AccountHierarchyDto titleCode(String titleCode) {
    
    this.titleCode = titleCode;
    return this;
  }

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

  public String getTitleCode() {
    return titleCode;
  }



  public void setTitleCode(String titleCode) {
    this.titleCode = titleCode;
  }


  public AccountHierarchyDto firstName(String firstName) {
    
    this.firstName = firstName;
    return this;
  }

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

  public String getFirstName() {
    return firstName;
  }



  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }


  public AccountHierarchyDto lastName(String lastName) {
    
    this.lastName = lastName;
    return this;
  }

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

  public String getLastName() {
    return lastName;
  }



  public void setLastName(String lastName) {
    this.lastName = lastName;
  }


  public AccountHierarchyDto birthDate(OffsetDateTime birthDate) {
    
    this.birthDate = birthDate;
    return this;
  }

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

  public OffsetDateTime getBirthDate() {
    return birthDate;
  }



  public void setBirthDate(OffsetDateTime birthDate) {
    this.birthDate = birthDate;
  }


  public AccountHierarchyDto phoneNumber(String phoneNumber) {
    
    this.phoneNumber = phoneNumber;
    return this;
  }

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

  public String getPhoneNumber() {
    return phoneNumber;
  }



  public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
  }


  public AccountHierarchyDto billingCycleCode(String billingCycleCode) {
    
    this.billingCycleCode = billingCycleCode;
    return this;
  }

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

  public String getBillingCycleCode() {
    return billingCycleCode;
  }



  public void setBillingCycleCode(String billingCycleCode) {
    this.billingCycleCode = billingCycleCode;
  }


  public AccountHierarchyDto address1(String address1) {
    
    this.address1 = address1;
    return this;
  }

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

  public String getAddress1() {
    return address1;
  }



  public void setAddress1(String address1) {
    this.address1 = address1;
  }


  public AccountHierarchyDto address2(String address2) {
    
    this.address2 = address2;
    return this;
  }

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

  public String getAddress2() {
    return address2;
  }



  public void setAddress2(String address2) {
    this.address2 = address2;
  }


  public AccountHierarchyDto address3(String address3) {
    
    this.address3 = address3;
    return this;
  }

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

  public String getAddress3() {
    return address3;
  }



  public void setAddress3(String address3) {
    this.address3 = address3;
  }


  public AccountHierarchyDto zipCode(String zipCode) {
    
    this.zipCode = zipCode;
    return this;
  }

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

  public String getZipCode() {
    return zipCode;
  }



  public void setZipCode(String zipCode) {
    this.zipCode = zipCode;
  }


  public AccountHierarchyDto state(String state) {
    
    this.state = state;
    return this;
  }

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

  public String getState() {
    return state;
  }



  public void setState(String state) {
    this.state = state;
  }


  public AccountHierarchyDto city(String city) {
    
    this.city = city;
    return this;
  }

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

  public String getCity() {
    return city;
  }



  public void setCity(String city) {
    this.city = city;
  }


  public AccountHierarchyDto usePrefix(Boolean usePrefix) {
    
    this.usePrefix = usePrefix;
    return this;
  }

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

  public Boolean getUsePrefix() {
    return usePrefix;
  }



  public void setUsePrefix(Boolean usePrefix) {
    this.usePrefix = usePrefix;
  }


  public AccountHierarchyDto invoicingThreshold(BigDecimal invoicingThreshold) {
    
    this.invoicingThreshold = invoicingThreshold;
    return this;
  }

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

  public BigDecimal getInvoicingThreshold() {
    return invoicingThreshold;
  }



  public void setInvoicingThreshold(BigDecimal invoicingThreshold) {
    this.invoicingThreshold = invoicingThreshold;
  }


  public AccountHierarchyDto discountPlansForInstantiation(List<DiscountPlanDto> discountPlansForInstantiation) {
    
    this.discountPlansForInstantiation = discountPlansForInstantiation;
    return this;
  }

  public AccountHierarchyDto addDiscountPlansForInstantiationItem(DiscountPlanDto discountPlansForInstantiationItem) {
    if (this.discountPlansForInstantiation == null) {
      this.discountPlansForInstantiation = new ArrayList<DiscountPlanDto>();
    }
    this.discountPlansForInstantiation.add(discountPlansForInstantiationItem);
    return this;
  }

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

  public List<DiscountPlanDto> getDiscountPlansForInstantiation() {
    return discountPlansForInstantiation;
  }



  public void setDiscountPlansForInstantiation(List<DiscountPlanDto> discountPlansForInstantiation) {
    this.discountPlansForInstantiation = discountPlansForInstantiation;
  }


  public AccountHierarchyDto discountPlansForTermination(List<String> discountPlansForTermination) {
    
    this.discountPlansForTermination = discountPlansForTermination;
    return this;
  }

  public AccountHierarchyDto addDiscountPlansForTerminationItem(String discountPlansForTerminationItem) {
    if (this.discountPlansForTermination == null) {
      this.discountPlansForTermination = new ArrayList<String>();
    }
    this.discountPlansForTermination.add(discountPlansForTerminationItem);
    return this;
  }

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

  public List<String> getDiscountPlansForTermination() {
    return discountPlansForTermination;
  }



  public void setDiscountPlansForTermination(List<String> discountPlansForTermination) {
    this.discountPlansForTermination = discountPlansForTermination;
  }


  public AccountHierarchyDto customFields(CustomFieldsDto customFields) {
    
    this.customFields = customFields;
    return this;
  }

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

  public CustomFieldsDto getCustomFields() {
    return customFields;
  }



  public void setCustomFields(CustomFieldsDto customFields) {
    this.customFields = customFields;
  }


  public AccountHierarchyDto limit(Integer limit) {
    
    this.limit = limit;
    return this;
  }

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

  public Integer getLimit() {
    return limit;
  }



  public void setLimit(Integer limit) {
    this.limit = limit;
  }


  public AccountHierarchyDto sortField(String sortField) {
    
    this.sortField = sortField;
    return this;
  }

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

  public String getSortField() {
    return sortField;
  }



  public void setSortField(String sortField) {
    this.sortField = sortField;
  }


  public AccountHierarchyDto index(Integer index) {
    
    this.index = index;
    return this;
  }

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

  public Integer getIndex() {
    return index;
  }



  public void setIndex(Integer index) {
    this.index = index;
  }


  public AccountHierarchyDto paymentMethods(List<PaymentMethodDto> paymentMethods) {
    
    this.paymentMethods = paymentMethods;
    return this;
  }

  public AccountHierarchyDto addPaymentMethodsItem(PaymentMethodDto paymentMethodsItem) {
    if (this.paymentMethods == null) {
      this.paymentMethods = new ArrayList<PaymentMethodDto>();
    }
    this.paymentMethods.add(paymentMethodsItem);
    return this;
  }

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

  public List<PaymentMethodDto> getPaymentMethods() {
    return paymentMethods;
  }



  public void setPaymentMethods(List<PaymentMethodDto> paymentMethods) {
    this.paymentMethods = paymentMethods;
  }


  public AccountHierarchyDto paymentMethod(Integer paymentMethod) {
    
    this.paymentMethod = paymentMethod;
    return this;
  }

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

  public Integer getPaymentMethod() {
    return paymentMethod;
  }



  public void setPaymentMethod(Integer paymentMethod) {
    this.paymentMethod = paymentMethod;
  }


  public AccountHierarchyDto jobTitle(String jobTitle) {
    
    this.jobTitle = jobTitle;
    return this;
  }

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

  public String getJobTitle() {
    return jobTitle;
  }



  public void setJobTitle(String jobTitle) {
    this.jobTitle = jobTitle;
  }


  public AccountHierarchyDto 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 AccountHierarchyDto 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 AccountHierarchyDto mailingType(String mailingType) {
    
    this.mailingType = mailingType;
    return this;
  }

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

  public String getMailingType() {
    return mailingType;
  }



  public void setMailingType(String mailingType) {
    this.mailingType = mailingType;
  }


  public AccountHierarchyDto emailTemplate(String emailTemplate) {
    
    this.emailTemplate = emailTemplate;
    return this;
  }

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

  public String getEmailTemplate() {
    return emailTemplate;
  }



  public void setEmailTemplate(String emailTemplate) {
    this.emailTemplate = emailTemplate;
  }


  public AccountHierarchyDto ccedEmails(String ccedEmails) {
    
    this.ccedEmails = ccedEmails;
    return this;
  }

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

  public String getCcedEmails() {
    return ccedEmails;
  }



  public void setCcedEmails(String ccedEmails) {
    this.ccedEmails = ccedEmails;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AccountHierarchyDto accountHierarchyDto = (AccountHierarchyDto) o;
    return Objects.equals(this.email, accountHierarchyDto.email) &&
        Objects.equals(this.customerId, accountHierarchyDto.customerId) &&
        Objects.equals(this.customerCode, accountHierarchyDto.customerCode) &&
        Objects.equals(this.sellerCode, accountHierarchyDto.sellerCode) &&
        Objects.equals(this.customerBrandCode, accountHierarchyDto.customerBrandCode) &&
        Objects.equals(this.customerCategoryCode, accountHierarchyDto.customerCategoryCode) &&
        Objects.equals(this.currencyCode, accountHierarchyDto.currencyCode) &&
        Objects.equals(this.countryCode, accountHierarchyDto.countryCode) &&
        Objects.equals(this.languageCode, accountHierarchyDto.languageCode) &&
        Objects.equals(this.titleCode, accountHierarchyDto.titleCode) &&
        Objects.equals(this.firstName, accountHierarchyDto.firstName) &&
        Objects.equals(this.lastName, accountHierarchyDto.lastName) &&
        Objects.equals(this.birthDate, accountHierarchyDto.birthDate) &&
        Objects.equals(this.phoneNumber, accountHierarchyDto.phoneNumber) &&
        Objects.equals(this.billingCycleCode, accountHierarchyDto.billingCycleCode) &&
        Objects.equals(this.address1, accountHierarchyDto.address1) &&
        Objects.equals(this.address2, accountHierarchyDto.address2) &&
        Objects.equals(this.address3, accountHierarchyDto.address3) &&
        Objects.equals(this.zipCode, accountHierarchyDto.zipCode) &&
        Objects.equals(this.state, accountHierarchyDto.state) &&
        Objects.equals(this.city, accountHierarchyDto.city) &&
        Objects.equals(this.usePrefix, accountHierarchyDto.usePrefix) &&
        Objects.equals(this.invoicingThreshold, accountHierarchyDto.invoicingThreshold) &&
        Objects.equals(this.discountPlansForInstantiation, accountHierarchyDto.discountPlansForInstantiation) &&
        Objects.equals(this.discountPlansForTermination, accountHierarchyDto.discountPlansForTermination) &&
        Objects.equals(this.customFields, accountHierarchyDto.customFields) &&
        Objects.equals(this.limit, accountHierarchyDto.limit) &&
        Objects.equals(this.sortField, accountHierarchyDto.sortField) &&
        Objects.equals(this.index, accountHierarchyDto.index) &&
        Objects.equals(this.paymentMethods, accountHierarchyDto.paymentMethods) &&
        Objects.equals(this.paymentMethod, accountHierarchyDto.paymentMethod) &&
        Objects.equals(this.jobTitle, accountHierarchyDto.jobTitle) &&
        Objects.equals(this.registrationNo, accountHierarchyDto.registrationNo) &&
        Objects.equals(this.vatNo, accountHierarchyDto.vatNo) &&
        Objects.equals(this.mailingType, accountHierarchyDto.mailingType) &&
        Objects.equals(this.emailTemplate, accountHierarchyDto.emailTemplate) &&
        Objects.equals(this.ccedEmails, accountHierarchyDto.ccedEmails);
  }

  @Override
  public int hashCode() {
    return Objects.hash(email, customerId, customerCode, sellerCode, customerBrandCode, customerCategoryCode, currencyCode, countryCode, languageCode, titleCode, firstName, lastName, birthDate, phoneNumber, billingCycleCode, address1, address2, address3, zipCode, state, city, usePrefix, invoicingThreshold, discountPlansForInstantiation, discountPlansForTermination, customFields, limit, sortField, index, paymentMethods, paymentMethod, jobTitle, registrationNo, vatNo, mailingType, emailTemplate, ccedEmails);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AccountHierarchyDto {\n");
    sb.append("    email: ").append(toIndentedString(email)).append("\n");
    sb.append("    customerId: ").append(toIndentedString(customerId)).append("\n");
    sb.append("    customerCode: ").append(toIndentedString(customerCode)).append("\n");
    sb.append("    sellerCode: ").append(toIndentedString(sellerCode)).append("\n");
    sb.append("    customerBrandCode: ").append(toIndentedString(customerBrandCode)).append("\n");
    sb.append("    customerCategoryCode: ").append(toIndentedString(customerCategoryCode)).append("\n");
    sb.append("    currencyCode: ").append(toIndentedString(currencyCode)).append("\n");
    sb.append("    countryCode: ").append(toIndentedString(countryCode)).append("\n");
    sb.append("    languageCode: ").append(toIndentedString(languageCode)).append("\n");
    sb.append("    titleCode: ").append(toIndentedString(titleCode)).append("\n");
    sb.append("    firstName: ").append(toIndentedString(firstName)).append("\n");
    sb.append("    lastName: ").append(toIndentedString(lastName)).append("\n");
    sb.append("    birthDate: ").append(toIndentedString(birthDate)).append("\n");
    sb.append("    phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n");
    sb.append("    billingCycleCode: ").append(toIndentedString(billingCycleCode)).append("\n");
    sb.append("    address1: ").append(toIndentedString(address1)).append("\n");
    sb.append("    address2: ").append(toIndentedString(address2)).append("\n");
    sb.append("    address3: ").append(toIndentedString(address3)).append("\n");
    sb.append("    zipCode: ").append(toIndentedString(zipCode)).append("\n");
    sb.append("    state: ").append(toIndentedString(state)).append("\n");
    sb.append("    city: ").append(toIndentedString(city)).append("\n");
    sb.append("    usePrefix: ").append(toIndentedString(usePrefix)).append("\n");
    sb.append("    invoicingThreshold: ").append(toIndentedString(invoicingThreshold)).append("\n");
    sb.append("    discountPlansForInstantiation: ").append(toIndentedString(discountPlansForInstantiation)).append("\n");
    sb.append("    discountPlansForTermination: ").append(toIndentedString(discountPlansForTermination)).append("\n");
    sb.append("    customFields: ").append(toIndentedString(customFields)).append("\n");
    sb.append("    limit: ").append(toIndentedString(limit)).append("\n");
    sb.append("    sortField: ").append(toIndentedString(sortField)).append("\n");
    sb.append("    index: ").append(toIndentedString(index)).append("\n");
    sb.append("    paymentMethods: ").append(toIndentedString(paymentMethods)).append("\n");
    sb.append("    paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n");
    sb.append("    jobTitle: ").append(toIndentedString(jobTitle)).append("\n");
    sb.append("    registrationNo: ").append(toIndentedString(registrationNo)).append("\n");
    sb.append("    vatNo: ").append(toIndentedString(vatNo)).append("\n");
    sb.append("    mailingType: ").append(toIndentedString(mailingType)).append("\n");
    sb.append("    emailTemplate: ").append(toIndentedString(emailTemplate)).append("\n");
    sb.append("    ccedEmails: ").append(toIndentedString(ccedEmails)).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    ");
  }

}

