/**
 * Bybit API
 * ## REST API for the Bybit Exchange. Base URI: [https://api.bybit.com]  
 *
 * OpenAPI spec version: 0.2.10
 * Contact: support@bybit.com
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package io.swagger.client.model;

import io.swagger.annotations.*;
import com.google.gson.annotations.SerializedName;

/**
 * Get wallet balance response
 **/
@ApiModel(description = "Get wallet balance response")
public class WalletBalance {
  
  @SerializedName("equity")
  private Double equity = null;
  @SerializedName("available_balance")
  private Double availableBalance = null;
  @SerializedName("used_margin")
  private Double usedMargin = null;
  @SerializedName("order_margin")
  private Double orderMargin = null;
  @SerializedName("position_margin")
  private Double positionMargin = null;
  @SerializedName("occ_closing_fee")
  private Double occClosingFee = null;
  @SerializedName("occ_funding_fee")
  private Double occFundingFee = null;
  @SerializedName("wallet_balance")
  private Double walletBalance = null;
  @SerializedName("realised_pnl")
  private Double realisedPnl = null;
  @SerializedName("unrealised_pnl")
  private Double unrealisedPnl = null;
  @SerializedName("cum_realised_pnl")
  private Double cumRealisedPnl = null;
  @SerializedName("given_cash")
  private Double givenCash = null;
  @SerializedName("service_cash")
  private Double serviceCash = null;

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getEquity() {
    return equity;
  }
  public void setEquity(Double equity) {
    this.equity = equity;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getAvailableBalance() {
    return availableBalance;
  }
  public void setAvailableBalance(Double availableBalance) {
    this.availableBalance = availableBalance;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getUsedMargin() {
    return usedMargin;
  }
  public void setUsedMargin(Double usedMargin) {
    this.usedMargin = usedMargin;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getOrderMargin() {
    return orderMargin;
  }
  public void setOrderMargin(Double orderMargin) {
    this.orderMargin = orderMargin;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getPositionMargin() {
    return positionMargin;
  }
  public void setPositionMargin(Double positionMargin) {
    this.positionMargin = positionMargin;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getOccClosingFee() {
    return occClosingFee;
  }
  public void setOccClosingFee(Double occClosingFee) {
    this.occClosingFee = occClosingFee;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getOccFundingFee() {
    return occFundingFee;
  }
  public void setOccFundingFee(Double occFundingFee) {
    this.occFundingFee = occFundingFee;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getWalletBalance() {
    return walletBalance;
  }
  public void setWalletBalance(Double walletBalance) {
    this.walletBalance = walletBalance;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getRealisedPnl() {
    return realisedPnl;
  }
  public void setRealisedPnl(Double realisedPnl) {
    this.realisedPnl = realisedPnl;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getUnrealisedPnl() {
    return unrealisedPnl;
  }
  public void setUnrealisedPnl(Double unrealisedPnl) {
    this.unrealisedPnl = unrealisedPnl;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getCumRealisedPnl() {
    return cumRealisedPnl;
  }
  public void setCumRealisedPnl(Double cumRealisedPnl) {
    this.cumRealisedPnl = cumRealisedPnl;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getGivenCash() {
    return givenCash;
  }
  public void setGivenCash(Double givenCash) {
    this.givenCash = givenCash;
  }

  /**
   **/
  @ApiModelProperty(value = "")
  public Double getServiceCash() {
    return serviceCash;
  }
  public void setServiceCash(Double serviceCash) {
    this.serviceCash = serviceCash;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    WalletBalance walletBalance = (WalletBalance) o;
    return (this.equity == null ? walletBalance.equity == null : this.equity.equals(walletBalance.equity)) &&
        (this.availableBalance == null ? walletBalance.availableBalance == null : this.availableBalance.equals(walletBalance.availableBalance)) &&
        (this.usedMargin == null ? walletBalance.usedMargin == null : this.usedMargin.equals(walletBalance.usedMargin)) &&
        (this.orderMargin == null ? walletBalance.orderMargin == null : this.orderMargin.equals(walletBalance.orderMargin)) &&
        (this.positionMargin == null ? walletBalance.positionMargin == null : this.positionMargin.equals(walletBalance.positionMargin)) &&
        (this.occClosingFee == null ? walletBalance.occClosingFee == null : this.occClosingFee.equals(walletBalance.occClosingFee)) &&
        (this.occFundingFee == null ? walletBalance.occFundingFee == null : this.occFundingFee.equals(walletBalance.occFundingFee)) &&
        (this.walletBalance == null ? walletBalance.walletBalance == null : this.walletBalance.equals(walletBalance.walletBalance)) &&
        (this.realisedPnl == null ? walletBalance.realisedPnl == null : this.realisedPnl.equals(walletBalance.realisedPnl)) &&
        (this.unrealisedPnl == null ? walletBalance.unrealisedPnl == null : this.unrealisedPnl.equals(walletBalance.unrealisedPnl)) &&
        (this.cumRealisedPnl == null ? walletBalance.cumRealisedPnl == null : this.cumRealisedPnl.equals(walletBalance.cumRealisedPnl)) &&
        (this.givenCash == null ? walletBalance.givenCash == null : this.givenCash.equals(walletBalance.givenCash)) &&
        (this.serviceCash == null ? walletBalance.serviceCash == null : this.serviceCash.equals(walletBalance.serviceCash));
  }

  @Override
  public int hashCode() {
    int result = 17;
    result = 31 * result + (this.equity == null ? 0: this.equity.hashCode());
    result = 31 * result + (this.availableBalance == null ? 0: this.availableBalance.hashCode());
    result = 31 * result + (this.usedMargin == null ? 0: this.usedMargin.hashCode());
    result = 31 * result + (this.orderMargin == null ? 0: this.orderMargin.hashCode());
    result = 31 * result + (this.positionMargin == null ? 0: this.positionMargin.hashCode());
    result = 31 * result + (this.occClosingFee == null ? 0: this.occClosingFee.hashCode());
    result = 31 * result + (this.occFundingFee == null ? 0: this.occFundingFee.hashCode());
    result = 31 * result + (this.walletBalance == null ? 0: this.walletBalance.hashCode());
    result = 31 * result + (this.realisedPnl == null ? 0: this.realisedPnl.hashCode());
    result = 31 * result + (this.unrealisedPnl == null ? 0: this.unrealisedPnl.hashCode());
    result = 31 * result + (this.cumRealisedPnl == null ? 0: this.cumRealisedPnl.hashCode());
    result = 31 * result + (this.givenCash == null ? 0: this.givenCash.hashCode());
    result = 31 * result + (this.serviceCash == null ? 0: this.serviceCash.hashCode());
    return result;
  }

  @Override
  public String toString()  {
    StringBuilder sb = new StringBuilder();
    sb.append("class WalletBalance {\n");
    
    sb.append("  equity: ").append(equity).append("\n");
    sb.append("  availableBalance: ").append(availableBalance).append("\n");
    sb.append("  usedMargin: ").append(usedMargin).append("\n");
    sb.append("  orderMargin: ").append(orderMargin).append("\n");
    sb.append("  positionMargin: ").append(positionMargin).append("\n");
    sb.append("  occClosingFee: ").append(occClosingFee).append("\n");
    sb.append("  occFundingFee: ").append(occFundingFee).append("\n");
    sb.append("  walletBalance: ").append(walletBalance).append("\n");
    sb.append("  realisedPnl: ").append(realisedPnl).append("\n");
    sb.append("  unrealisedPnl: ").append(unrealisedPnl).append("\n");
    sb.append("  cumRealisedPnl: ").append(cumRealisedPnl).append("\n");
    sb.append("  givenCash: ").append(givenCash).append("\n");
    sb.append("  serviceCash: ").append(serviceCash).append("\n");
    sb.append("}\n");
    return sb.toString();
  }
}
