/*
 * 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 org.threeten.bp.OffsetDateTime;

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

  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_UNITY_DESCRIPTION = "unityDescription";
  @SerializedName(SERIALIZED_NAME_UNITY_DESCRIPTION)
  private String unityDescription;

  public static final String SERIALIZED_NAME_UNIT_AMOUNT_WITHOUT_TAX = "unitAmountWithoutTax";
  @SerializedName(SERIALIZED_NAME_UNIT_AMOUNT_WITHOUT_TAX)
  private BigDecimal unitAmountWithoutTax;

  public static final String SERIALIZED_NAME_QUANTITY = "quantity";
  @SerializedName(SERIALIZED_NAME_QUANTITY)
  private BigDecimal quantity;

  public static final String SERIALIZED_NAME_AMOUNT_WITHOUT_TAX = "amountWithoutTax";
  @SerializedName(SERIALIZED_NAME_AMOUNT_WITHOUT_TAX)
  private BigDecimal amountWithoutTax;

  public static final String SERIALIZED_NAME_PARAMETER1 = "parameter1";
  @SerializedName(SERIALIZED_NAME_PARAMETER1)
  private String parameter1;

  public static final String SERIALIZED_NAME_PARAMETER2 = "parameter2";
  @SerializedName(SERIALIZED_NAME_PARAMETER2)
  private String parameter2;

  public static final String SERIALIZED_NAME_PARAMETER3 = "parameter3";
  @SerializedName(SERIALIZED_NAME_PARAMETER3)
  private String parameter3;

  public static final String SERIALIZED_NAME_PARAMETER_EXTRA = "parameterExtra";
  @SerializedName(SERIALIZED_NAME_PARAMETER_EXTRA)
  private String parameterExtra;

  public static final String SERIALIZED_NAME_OFFER_CODE = "offerCode";
  @SerializedName(SERIALIZED_NAME_OFFER_CODE)
  private String offerCode;

  public static final String SERIALIZED_NAME_PRICEPLAN_CODE = "priceplanCode";
  @SerializedName(SERIALIZED_NAME_PRICEPLAN_CODE)
  private String priceplanCode;


  public UsageDto dateEvent(OffsetDateTime dateEvent) {
    
    this.dateEvent = dateEvent;
    return this;
  }

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

  public OffsetDateTime getDateEvent() {
    return dateEvent;
  }



  public void setDateEvent(OffsetDateTime dateEvent) {
    this.dateEvent = dateEvent;
  }


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

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

  public String getCode() {
    return code;
  }



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


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

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

  public String getUnityDescription() {
    return unityDescription;
  }



  public void setUnityDescription(String unityDescription) {
    this.unityDescription = unityDescription;
  }


  public UsageDto unitAmountWithoutTax(BigDecimal unitAmountWithoutTax) {
    
    this.unitAmountWithoutTax = unitAmountWithoutTax;
    return this;
  }

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

  public BigDecimal getUnitAmountWithoutTax() {
    return unitAmountWithoutTax;
  }



  public void setUnitAmountWithoutTax(BigDecimal unitAmountWithoutTax) {
    this.unitAmountWithoutTax = unitAmountWithoutTax;
  }


  public UsageDto quantity(BigDecimal quantity) {
    
    this.quantity = quantity;
    return this;
  }

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

  public BigDecimal getQuantity() {
    return quantity;
  }



  public void setQuantity(BigDecimal quantity) {
    this.quantity = quantity;
  }


  public UsageDto amountWithoutTax(BigDecimal amountWithoutTax) {
    
    this.amountWithoutTax = amountWithoutTax;
    return this;
  }

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

  public BigDecimal getAmountWithoutTax() {
    return amountWithoutTax;
  }



  public void setAmountWithoutTax(BigDecimal amountWithoutTax) {
    this.amountWithoutTax = amountWithoutTax;
  }


  public UsageDto parameter1(String parameter1) {
    
    this.parameter1 = parameter1;
    return this;
  }

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

  public String getParameter1() {
    return parameter1;
  }



  public void setParameter1(String parameter1) {
    this.parameter1 = parameter1;
  }


  public UsageDto parameter2(String parameter2) {
    
    this.parameter2 = parameter2;
    return this;
  }

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

  public String getParameter2() {
    return parameter2;
  }



  public void setParameter2(String parameter2) {
    this.parameter2 = parameter2;
  }


  public UsageDto parameter3(String parameter3) {
    
    this.parameter3 = parameter3;
    return this;
  }

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

  public String getParameter3() {
    return parameter3;
  }



  public void setParameter3(String parameter3) {
    this.parameter3 = parameter3;
  }


  public UsageDto parameterExtra(String parameterExtra) {
    
    this.parameterExtra = parameterExtra;
    return this;
  }

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

  public String getParameterExtra() {
    return parameterExtra;
  }



  public void setParameterExtra(String parameterExtra) {
    this.parameterExtra = parameterExtra;
  }


  public UsageDto offerCode(String offerCode) {
    
    this.offerCode = offerCode;
    return this;
  }

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

  public String getOfferCode() {
    return offerCode;
  }



  public void setOfferCode(String offerCode) {
    this.offerCode = offerCode;
  }


  public UsageDto priceplanCode(String priceplanCode) {
    
    this.priceplanCode = priceplanCode;
    return this;
  }

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

  public String getPriceplanCode() {
    return priceplanCode;
  }



  public void setPriceplanCode(String priceplanCode) {
    this.priceplanCode = priceplanCode;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    UsageDto usageDto = (UsageDto) o;
    return Objects.equals(this.dateEvent, usageDto.dateEvent) &&
        Objects.equals(this.code, usageDto.code) &&
        Objects.equals(this.description, usageDto.description) &&
        Objects.equals(this.unityDescription, usageDto.unityDescription) &&
        Objects.equals(this.unitAmountWithoutTax, usageDto.unitAmountWithoutTax) &&
        Objects.equals(this.quantity, usageDto.quantity) &&
        Objects.equals(this.amountWithoutTax, usageDto.amountWithoutTax) &&
        Objects.equals(this.parameter1, usageDto.parameter1) &&
        Objects.equals(this.parameter2, usageDto.parameter2) &&
        Objects.equals(this.parameter3, usageDto.parameter3) &&
        Objects.equals(this.parameterExtra, usageDto.parameterExtra) &&
        Objects.equals(this.offerCode, usageDto.offerCode) &&
        Objects.equals(this.priceplanCode, usageDto.priceplanCode);
  }

  @Override
  public int hashCode() {
    return Objects.hash(dateEvent, code, description, unityDescription, unitAmountWithoutTax, quantity, amountWithoutTax, parameter1, parameter2, parameter3, parameterExtra, offerCode, priceplanCode);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class UsageDto {\n");
    sb.append("    dateEvent: ").append(toIndentedString(dateEvent)).append("\n");
    sb.append("    code: ").append(toIndentedString(code)).append("\n");
    sb.append("    description: ").append(toIndentedString(description)).append("\n");
    sb.append("    unityDescription: ").append(toIndentedString(unityDescription)).append("\n");
    sb.append("    unitAmountWithoutTax: ").append(toIndentedString(unitAmountWithoutTax)).append("\n");
    sb.append("    quantity: ").append(toIndentedString(quantity)).append("\n");
    sb.append("    amountWithoutTax: ").append(toIndentedString(amountWithoutTax)).append("\n");
    sb.append("    parameter1: ").append(toIndentedString(parameter1)).append("\n");
    sb.append("    parameter2: ").append(toIndentedString(parameter2)).append("\n");
    sb.append("    parameter3: ").append(toIndentedString(parameter3)).append("\n");
    sb.append("    parameterExtra: ").append(toIndentedString(parameterExtra)).append("\n");
    sb.append("    offerCode: ").append(toIndentedString(offerCode)).append("\n");
    sb.append("    priceplanCode: ").append(toIndentedString(priceplanCode)).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    ");
  }

}

