/*
 * Oceanengine Open Api
 * 巨量引擎开放平台 Open Api
 *
 * The version of the OpenAPI document: 1.1.19
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package com.bytedance.ads.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 java.io.IOException;
import org.openapitools.jackson.nullable.JsonNullable;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.bytedance.ads.JSON;

/**
 * AccountFundGetV30ResponseDataListInner
 */
@javax.annotation.Generated(value = "com.org.bytedance.ad_open_sdk.JavacusGenerator", date = "2024-09-10T15:29:00.246104612+08:00[Asia/Shanghai]")
public class AccountFundGetV30ResponseDataListInner {
  public static final String SERIALIZED_NAME_ACCOUNT_ID = "account_id";
  @SerializedName(SERIALIZED_NAME_ACCOUNT_ID)
  private Long accountId = null;

  public static final String SERIALIZED_NAME_BALANCE = "balance";
  @SerializedName(SERIALIZED_NAME_BALANCE)
  private Long balance = null;

  public static final String SERIALIZED_NAME_BIDDING_CASH = "bidding_cash";
  @SerializedName(SERIALIZED_NAME_BIDDING_CASH)
  private Long biddingCash = null;

  public static final String SERIALIZED_NAME_BIDDING_CREDIT_BALANCE = "bidding_credit_balance";
  @SerializedName(SERIALIZED_NAME_BIDDING_CREDIT_BALANCE)
  private Long biddingCreditBalance = null;

  public static final String SERIALIZED_NAME_BIDDING_CREDIT_VALID_BALANCE = "bidding_credit_valid_balance";
  @SerializedName(SERIALIZED_NAME_BIDDING_CREDIT_VALID_BALANCE)
  private Long biddingCreditValidBalance = null;

  public static final String SERIALIZED_NAME_BIDDING_PREPAY_BALANCE = "bidding_prepay_balance";
  @SerializedName(SERIALIZED_NAME_BIDDING_PREPAY_BALANCE)
  private Long biddingPrepayBalance = null;

  public static final String SERIALIZED_NAME_BIDDING_PREPAY_VALID_BALANCE = "bidding_prepay_valid_balance";
  @SerializedName(SERIALIZED_NAME_BIDDING_PREPAY_VALID_BALANCE)
  private Long biddingPrepayValidBalance = null;

  public static final String SERIALIZED_NAME_BIDDING_VALID_GRANT = "bidding_valid_grant";
  @SerializedName(SERIALIZED_NAME_BIDDING_VALID_GRANT)
  private Long biddingValidGrant = null;

  public static final String SERIALIZED_NAME_BRAND_CASH = "brand_cash";
  @SerializedName(SERIALIZED_NAME_BRAND_CASH)
  private Long brandCash = null;

  public static final String SERIALIZED_NAME_BRAND_CREDIT_BALANCE = "brand_credit_balance";
  @SerializedName(SERIALIZED_NAME_BRAND_CREDIT_BALANCE)
  private Long brandCreditBalance = null;

  public static final String SERIALIZED_NAME_BRAND_CREDIT_VALID_BALANCE = "brand_credit_valid_balance";
  @SerializedName(SERIALIZED_NAME_BRAND_CREDIT_VALID_BALANCE)
  private Long brandCreditValidBalance = null;

  public static final String SERIALIZED_NAME_BRAND_PREPAY_BALANCE = "brand_prepay_balance";
  @SerializedName(SERIALIZED_NAME_BRAND_PREPAY_BALANCE)
  private Long brandPrepayBalance = null;

  public static final String SERIALIZED_NAME_BRAND_PREPAY_VALID_BALANCE = "brand_prepay_valid_balance";
  @SerializedName(SERIALIZED_NAME_BRAND_PREPAY_VALID_BALANCE)
  private Long brandPrepayValidBalance = null;

  public static final String SERIALIZED_NAME_BRAND_VALID_GRANT = "brand_valid_grant";
  @SerializedName(SERIALIZED_NAME_BRAND_VALID_GRANT)
  private Long brandValidGrant = null;

  public static final String SERIALIZED_NAME_CASH = "cash";
  @SerializedName(SERIALIZED_NAME_CASH)
  private Long cash = null;

  public static final String SERIALIZED_NAME_COMMON_GRANT = "common_grant";
  @SerializedName(SERIALIZED_NAME_COMMON_GRANT)
  private Long commonGrant = null;

  public static final String SERIALIZED_NAME_COMPENSATION_GRANT = "compensation_grant";
  @SerializedName(SERIALIZED_NAME_COMPENSATION_GRANT)
  private Long compensationGrant = null;

  public static final String SERIALIZED_NAME_COMPENSATION_VALID_GRANT = "compensation_valid_grant";
  @SerializedName(SERIALIZED_NAME_COMPENSATION_VALID_GRANT)
  private Long compensationValidGrant = null;

  public static final String SERIALIZED_NAME_CREDIT_BALANCE = "credit_balance";
  @SerializedName(SERIALIZED_NAME_CREDIT_BALANCE)
  private Long creditBalance = null;

  public static final String SERIALIZED_NAME_CREDIT_TRANSFER_BALANCE = "credit_transfer_balance";
  @SerializedName(SERIALIZED_NAME_CREDIT_TRANSFER_BALANCE)
  private Long creditTransferBalance = null;

  public static final String SERIALIZED_NAME_CREDIT_VALID_BALANCE = "credit_valid_balance";
  @SerializedName(SERIALIZED_NAME_CREDIT_VALID_BALANCE)
  private Long creditValidBalance = null;

  public static final String SERIALIZED_NAME_DEFAULT_GRANT = "default_grant";
  @SerializedName(SERIALIZED_NAME_DEFAULT_GRANT)
  private Long defaultGrant = null;

  public static final String SERIALIZED_NAME_GENERAL_CASH = "general_cash";
  @SerializedName(SERIALIZED_NAME_GENERAL_CASH)
  private Long generalCash = null;

  public static final String SERIALIZED_NAME_GENERAL_CREDIT_BALANCE = "general_credit_balance";
  @SerializedName(SERIALIZED_NAME_GENERAL_CREDIT_BALANCE)
  private Long generalCreditBalance = null;

  public static final String SERIALIZED_NAME_GENERAL_CREDIT_VALID_BALANCE = "general_credit_valid_balance";
  @SerializedName(SERIALIZED_NAME_GENERAL_CREDIT_VALID_BALANCE)
  private Long generalCreditValidBalance = null;

  public static final String SERIALIZED_NAME_GENERAL_PREPAY_BALANCE = "general_prepay_balance";
  @SerializedName(SERIALIZED_NAME_GENERAL_PREPAY_BALANCE)
  private Long generalPrepayBalance = null;

  public static final String SERIALIZED_NAME_GENERAL_PREPAY_VALID_BALANCE = "general_prepay_valid_balance";
  @SerializedName(SERIALIZED_NAME_GENERAL_PREPAY_VALID_BALANCE)
  private Long generalPrepayValidBalance = null;

  public static final String SERIALIZED_NAME_GENERAL_VALID_GRANT = "general_valid_grant";
  @SerializedName(SERIALIZED_NAME_GENERAL_VALID_GRANT)
  private Long generalValidGrant = null;

  public static final String SERIALIZED_NAME_GRANT = "grant";
  @SerializedName(SERIALIZED_NAME_GRANT)
  private Long grant = null;

  public static final String SERIALIZED_NAME_PREPAY_BALANCE = "prepay_balance";
  @SerializedName(SERIALIZED_NAME_PREPAY_BALANCE)
  private Long prepayBalance = null;

  public static final String SERIALIZED_NAME_PREPAY_TRANSFER_BALANCE = "prepay_transfer_balance";
  @SerializedName(SERIALIZED_NAME_PREPAY_TRANSFER_BALANCE)
  private Long prepayTransferBalance = null;

  public static final String SERIALIZED_NAME_PREPAY_VALID_BALANCE = "prepay_valid_balance";
  @SerializedName(SERIALIZED_NAME_PREPAY_VALID_BALANCE)
  private Long prepayValidBalance = null;

  public static final String SERIALIZED_NAME_RETURN_GOODS_ABS = "return_goods_abs";
  @SerializedName(SERIALIZED_NAME_RETURN_GOODS_ABS)
  private Long returnGoodsAbs = null;

  public static final String SERIALIZED_NAME_SEARCH_GRANT = "search_grant";
  @SerializedName(SERIALIZED_NAME_SEARCH_GRANT)
  private Long searchGrant = null;

  public static final String SERIALIZED_NAME_TRANSFER_BALANCE = "transfer_balance";
  @SerializedName(SERIALIZED_NAME_TRANSFER_BALANCE)
  private Long transferBalance = null;

  public static final String SERIALIZED_NAME_TRANSFER_CASH = "transfer_cash";
  @SerializedName(SERIALIZED_NAME_TRANSFER_CASH)
  private Long transferCash = null;

  public static final String SERIALIZED_NAME_UNION_GRANT = "union_grant";
  @SerializedName(SERIALIZED_NAME_UNION_GRANT)
  private Long unionGrant = null;

  public static final String SERIALIZED_NAME_VALID_BALANCE = "valid_balance";
  @SerializedName(SERIALIZED_NAME_VALID_BALANCE)
  private Long validBalance = null;

  public static final String SERIALIZED_NAME_VALID_CASH = "valid_cash";
  @SerializedName(SERIALIZED_NAME_VALID_CASH)
  private Long validCash = null;

  public static final String SERIALIZED_NAME_VALID_GRANT = "valid_grant";
  @SerializedName(SERIALIZED_NAME_VALID_GRANT)
  private Long validGrant = null;

  public static final String SERIALIZED_NAME_VALID_RETURN_GOODS_ABS = "valid_return_goods_abs";
  @SerializedName(SERIALIZED_NAME_VALID_RETURN_GOODS_ABS)
  private Long validReturnGoodsAbs = null;

  public static final String SERIALIZED_NAME_WALLET_ID = "wallet_id";
  @SerializedName(SERIALIZED_NAME_WALLET_ID)
  private Long walletId = null;

  public static final String SERIALIZED_NAME_WALLET_TOTAL_BALANCE_VALID = "wallet_total_balance_valid";
  @SerializedName(SERIALIZED_NAME_WALLET_TOTAL_BALANCE_VALID)
  private Long walletTotalBalanceValid = null;

  public AccountFundGetV30ResponseDataListInner() {
  }

  public AccountFundGetV30ResponseDataListInner accountId(Long accountId) {
    
    this.accountId = accountId;
    return this;
  }

   /**
   * 
   * @return accountId
  **/
  @javax.annotation.Nullable
  public Long getAccountId() {
    return accountId;
  }


  public void setAccountId(Long accountId) {
    this.accountId = accountId;
  }


  public AccountFundGetV30ResponseDataListInner balance(Long balance) {
    
    this.balance = balance;
    return this;
  }

   /**
   * 
   * @return balance
  **/
  @javax.annotation.Nullable
  public Long getBalance() {
    return balance;
  }


  public void setBalance(Long balance) {
    this.balance = balance;
  }


  public AccountFundGetV30ResponseDataListInner biddingCash(Long biddingCash) {
    
    this.biddingCash = biddingCash;
    return this;
  }

   /**
   * 
   * @return biddingCash
  **/
  @javax.annotation.Nullable
  public Long getBiddingCash() {
    return biddingCash;
  }


  public void setBiddingCash(Long biddingCash) {
    this.biddingCash = biddingCash;
  }


  public AccountFundGetV30ResponseDataListInner biddingCreditBalance(Long biddingCreditBalance) {
    
    this.biddingCreditBalance = biddingCreditBalance;
    return this;
  }

   /**
   * 
   * @return biddingCreditBalance
  **/
  @javax.annotation.Nullable
  public Long getBiddingCreditBalance() {
    return biddingCreditBalance;
  }


  public void setBiddingCreditBalance(Long biddingCreditBalance) {
    this.biddingCreditBalance = biddingCreditBalance;
  }


  public AccountFundGetV30ResponseDataListInner biddingCreditValidBalance(Long biddingCreditValidBalance) {
    
    this.biddingCreditValidBalance = biddingCreditValidBalance;
    return this;
  }

   /**
   * 
   * @return biddingCreditValidBalance
  **/
  @javax.annotation.Nullable
  public Long getBiddingCreditValidBalance() {
    return biddingCreditValidBalance;
  }


  public void setBiddingCreditValidBalance(Long biddingCreditValidBalance) {
    this.biddingCreditValidBalance = biddingCreditValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner biddingPrepayBalance(Long biddingPrepayBalance) {
    
    this.biddingPrepayBalance = biddingPrepayBalance;
    return this;
  }

   /**
   * 
   * @return biddingPrepayBalance
  **/
  @javax.annotation.Nullable
  public Long getBiddingPrepayBalance() {
    return biddingPrepayBalance;
  }


  public void setBiddingPrepayBalance(Long biddingPrepayBalance) {
    this.biddingPrepayBalance = biddingPrepayBalance;
  }


  public AccountFundGetV30ResponseDataListInner biddingPrepayValidBalance(Long biddingPrepayValidBalance) {
    
    this.biddingPrepayValidBalance = biddingPrepayValidBalance;
    return this;
  }

   /**
   * 
   * @return biddingPrepayValidBalance
  **/
  @javax.annotation.Nullable
  public Long getBiddingPrepayValidBalance() {
    return biddingPrepayValidBalance;
  }


  public void setBiddingPrepayValidBalance(Long biddingPrepayValidBalance) {
    this.biddingPrepayValidBalance = biddingPrepayValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner biddingValidGrant(Long biddingValidGrant) {
    
    this.biddingValidGrant = biddingValidGrant;
    return this;
  }

   /**
   * 
   * @return biddingValidGrant
  **/
  @javax.annotation.Nullable
  public Long getBiddingValidGrant() {
    return biddingValidGrant;
  }


  public void setBiddingValidGrant(Long biddingValidGrant) {
    this.biddingValidGrant = biddingValidGrant;
  }


  public AccountFundGetV30ResponseDataListInner brandCash(Long brandCash) {
    
    this.brandCash = brandCash;
    return this;
  }

   /**
   * 
   * @return brandCash
  **/
  @javax.annotation.Nullable
  public Long getBrandCash() {
    return brandCash;
  }


  public void setBrandCash(Long brandCash) {
    this.brandCash = brandCash;
  }


  public AccountFundGetV30ResponseDataListInner brandCreditBalance(Long brandCreditBalance) {
    
    this.brandCreditBalance = brandCreditBalance;
    return this;
  }

   /**
   * 
   * @return brandCreditBalance
  **/
  @javax.annotation.Nullable
  public Long getBrandCreditBalance() {
    return brandCreditBalance;
  }


  public void setBrandCreditBalance(Long brandCreditBalance) {
    this.brandCreditBalance = brandCreditBalance;
  }


  public AccountFundGetV30ResponseDataListInner brandCreditValidBalance(Long brandCreditValidBalance) {
    
    this.brandCreditValidBalance = brandCreditValidBalance;
    return this;
  }

   /**
   * 
   * @return brandCreditValidBalance
  **/
  @javax.annotation.Nullable
  public Long getBrandCreditValidBalance() {
    return brandCreditValidBalance;
  }


  public void setBrandCreditValidBalance(Long brandCreditValidBalance) {
    this.brandCreditValidBalance = brandCreditValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner brandPrepayBalance(Long brandPrepayBalance) {
    
    this.brandPrepayBalance = brandPrepayBalance;
    return this;
  }

   /**
   * 
   * @return brandPrepayBalance
  **/
  @javax.annotation.Nullable
  public Long getBrandPrepayBalance() {
    return brandPrepayBalance;
  }


  public void setBrandPrepayBalance(Long brandPrepayBalance) {
    this.brandPrepayBalance = brandPrepayBalance;
  }


  public AccountFundGetV30ResponseDataListInner brandPrepayValidBalance(Long brandPrepayValidBalance) {
    
    this.brandPrepayValidBalance = brandPrepayValidBalance;
    return this;
  }

   /**
   * 
   * @return brandPrepayValidBalance
  **/
  @javax.annotation.Nullable
  public Long getBrandPrepayValidBalance() {
    return brandPrepayValidBalance;
  }


  public void setBrandPrepayValidBalance(Long brandPrepayValidBalance) {
    this.brandPrepayValidBalance = brandPrepayValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner brandValidGrant(Long brandValidGrant) {
    
    this.brandValidGrant = brandValidGrant;
    return this;
  }

   /**
   * 
   * @return brandValidGrant
  **/
  @javax.annotation.Nullable
  public Long getBrandValidGrant() {
    return brandValidGrant;
  }


  public void setBrandValidGrant(Long brandValidGrant) {
    this.brandValidGrant = brandValidGrant;
  }


  public AccountFundGetV30ResponseDataListInner cash(Long cash) {
    
    this.cash = cash;
    return this;
  }

   /**
   * 
   * @return cash
  **/
  @javax.annotation.Nullable
  public Long getCash() {
    return cash;
  }


  public void setCash(Long cash) {
    this.cash = cash;
  }


  public AccountFundGetV30ResponseDataListInner commonGrant(Long commonGrant) {
    
    this.commonGrant = commonGrant;
    return this;
  }

   /**
   * 
   * @return commonGrant
  **/
  @javax.annotation.Nullable
  public Long getCommonGrant() {
    return commonGrant;
  }


  public void setCommonGrant(Long commonGrant) {
    this.commonGrant = commonGrant;
  }


  public AccountFundGetV30ResponseDataListInner compensationGrant(Long compensationGrant) {
    
    this.compensationGrant = compensationGrant;
    return this;
  }

   /**
   * 
   * @return compensationGrant
  **/
  @javax.annotation.Nullable
  public Long getCompensationGrant() {
    return compensationGrant;
  }


  public void setCompensationGrant(Long compensationGrant) {
    this.compensationGrant = compensationGrant;
  }


  public AccountFundGetV30ResponseDataListInner compensationValidGrant(Long compensationValidGrant) {
    
    this.compensationValidGrant = compensationValidGrant;
    return this;
  }

   /**
   * 
   * @return compensationValidGrant
  **/
  @javax.annotation.Nullable
  public Long getCompensationValidGrant() {
    return compensationValidGrant;
  }


  public void setCompensationValidGrant(Long compensationValidGrant) {
    this.compensationValidGrant = compensationValidGrant;
  }


  public AccountFundGetV30ResponseDataListInner creditBalance(Long creditBalance) {
    
    this.creditBalance = creditBalance;
    return this;
  }

   /**
   * 
   * @return creditBalance
  **/
  @javax.annotation.Nullable
  public Long getCreditBalance() {
    return creditBalance;
  }


  public void setCreditBalance(Long creditBalance) {
    this.creditBalance = creditBalance;
  }


  public AccountFundGetV30ResponseDataListInner creditTransferBalance(Long creditTransferBalance) {
    
    this.creditTransferBalance = creditTransferBalance;
    return this;
  }

   /**
   * 
   * @return creditTransferBalance
  **/
  @javax.annotation.Nullable
  public Long getCreditTransferBalance() {
    return creditTransferBalance;
  }


  public void setCreditTransferBalance(Long creditTransferBalance) {
    this.creditTransferBalance = creditTransferBalance;
  }


  public AccountFundGetV30ResponseDataListInner creditValidBalance(Long creditValidBalance) {
    
    this.creditValidBalance = creditValidBalance;
    return this;
  }

   /**
   * 
   * @return creditValidBalance
  **/
  @javax.annotation.Nullable
  public Long getCreditValidBalance() {
    return creditValidBalance;
  }


  public void setCreditValidBalance(Long creditValidBalance) {
    this.creditValidBalance = creditValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner defaultGrant(Long defaultGrant) {
    
    this.defaultGrant = defaultGrant;
    return this;
  }

   /**
   * 
   * @return defaultGrant
  **/
  @javax.annotation.Nullable
  public Long getDefaultGrant() {
    return defaultGrant;
  }


  public void setDefaultGrant(Long defaultGrant) {
    this.defaultGrant = defaultGrant;
  }


  public AccountFundGetV30ResponseDataListInner generalCash(Long generalCash) {
    
    this.generalCash = generalCash;
    return this;
  }

   /**
   * 
   * @return generalCash
  **/
  @javax.annotation.Nullable
  public Long getGeneralCash() {
    return generalCash;
  }


  public void setGeneralCash(Long generalCash) {
    this.generalCash = generalCash;
  }


  public AccountFundGetV30ResponseDataListInner generalCreditBalance(Long generalCreditBalance) {
    
    this.generalCreditBalance = generalCreditBalance;
    return this;
  }

   /**
   * 
   * @return generalCreditBalance
  **/
  @javax.annotation.Nullable
  public Long getGeneralCreditBalance() {
    return generalCreditBalance;
  }


  public void setGeneralCreditBalance(Long generalCreditBalance) {
    this.generalCreditBalance = generalCreditBalance;
  }


  public AccountFundGetV30ResponseDataListInner generalCreditValidBalance(Long generalCreditValidBalance) {
    
    this.generalCreditValidBalance = generalCreditValidBalance;
    return this;
  }

   /**
   * 
   * @return generalCreditValidBalance
  **/
  @javax.annotation.Nullable
  public Long getGeneralCreditValidBalance() {
    return generalCreditValidBalance;
  }


  public void setGeneralCreditValidBalance(Long generalCreditValidBalance) {
    this.generalCreditValidBalance = generalCreditValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner generalPrepayBalance(Long generalPrepayBalance) {
    
    this.generalPrepayBalance = generalPrepayBalance;
    return this;
  }

   /**
   * 
   * @return generalPrepayBalance
  **/
  @javax.annotation.Nullable
  public Long getGeneralPrepayBalance() {
    return generalPrepayBalance;
  }


  public void setGeneralPrepayBalance(Long generalPrepayBalance) {
    this.generalPrepayBalance = generalPrepayBalance;
  }


  public AccountFundGetV30ResponseDataListInner generalPrepayValidBalance(Long generalPrepayValidBalance) {
    
    this.generalPrepayValidBalance = generalPrepayValidBalance;
    return this;
  }

   /**
   * 
   * @return generalPrepayValidBalance
  **/
  @javax.annotation.Nullable
  public Long getGeneralPrepayValidBalance() {
    return generalPrepayValidBalance;
  }


  public void setGeneralPrepayValidBalance(Long generalPrepayValidBalance) {
    this.generalPrepayValidBalance = generalPrepayValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner generalValidGrant(Long generalValidGrant) {
    
    this.generalValidGrant = generalValidGrant;
    return this;
  }

   /**
   * 
   * @return generalValidGrant
  **/
  @javax.annotation.Nullable
  public Long getGeneralValidGrant() {
    return generalValidGrant;
  }


  public void setGeneralValidGrant(Long generalValidGrant) {
    this.generalValidGrant = generalValidGrant;
  }


  public AccountFundGetV30ResponseDataListInner grant(Long grant) {
    
    this.grant = grant;
    return this;
  }

   /**
   * 
   * @return grant
  **/
  @javax.annotation.Nullable
  public Long getGrant() {
    return grant;
  }


  public void setGrant(Long grant) {
    this.grant = grant;
  }


  public AccountFundGetV30ResponseDataListInner prepayBalance(Long prepayBalance) {
    
    this.prepayBalance = prepayBalance;
    return this;
  }

   /**
   * 
   * @return prepayBalance
  **/
  @javax.annotation.Nullable
  public Long getPrepayBalance() {
    return prepayBalance;
  }


  public void setPrepayBalance(Long prepayBalance) {
    this.prepayBalance = prepayBalance;
  }


  public AccountFundGetV30ResponseDataListInner prepayTransferBalance(Long prepayTransferBalance) {
    
    this.prepayTransferBalance = prepayTransferBalance;
    return this;
  }

   /**
   * 
   * @return prepayTransferBalance
  **/
  @javax.annotation.Nullable
  public Long getPrepayTransferBalance() {
    return prepayTransferBalance;
  }


  public void setPrepayTransferBalance(Long prepayTransferBalance) {
    this.prepayTransferBalance = prepayTransferBalance;
  }


  public AccountFundGetV30ResponseDataListInner prepayValidBalance(Long prepayValidBalance) {
    
    this.prepayValidBalance = prepayValidBalance;
    return this;
  }

   /**
   * 
   * @return prepayValidBalance
  **/
  @javax.annotation.Nullable
  public Long getPrepayValidBalance() {
    return prepayValidBalance;
  }


  public void setPrepayValidBalance(Long prepayValidBalance) {
    this.prepayValidBalance = prepayValidBalance;
  }


  public AccountFundGetV30ResponseDataListInner returnGoodsAbs(Long returnGoodsAbs) {
    
    this.returnGoodsAbs = returnGoodsAbs;
    return this;
  }

   /**
   * 
   * @return returnGoodsAbs
  **/
  @javax.annotation.Nullable
  public Long getReturnGoodsAbs() {
    return returnGoodsAbs;
  }


  public void setReturnGoodsAbs(Long returnGoodsAbs) {
    this.returnGoodsAbs = returnGoodsAbs;
  }


  public AccountFundGetV30ResponseDataListInner searchGrant(Long searchGrant) {
    
    this.searchGrant = searchGrant;
    return this;
  }

   /**
   * 
   * @return searchGrant
  **/
  @javax.annotation.Nullable
  public Long getSearchGrant() {
    return searchGrant;
  }


  public void setSearchGrant(Long searchGrant) {
    this.searchGrant = searchGrant;
  }


  public AccountFundGetV30ResponseDataListInner transferBalance(Long transferBalance) {
    
    this.transferBalance = transferBalance;
    return this;
  }

   /**
   * 
   * @return transferBalance
  **/
  @javax.annotation.Nullable
  public Long getTransferBalance() {
    return transferBalance;
  }


  public void setTransferBalance(Long transferBalance) {
    this.transferBalance = transferBalance;
  }


  public AccountFundGetV30ResponseDataListInner transferCash(Long transferCash) {
    
    this.transferCash = transferCash;
    return this;
  }

   /**
   * 
   * @return transferCash
  **/
  @javax.annotation.Nullable
  public Long getTransferCash() {
    return transferCash;
  }


  public void setTransferCash(Long transferCash) {
    this.transferCash = transferCash;
  }


  public AccountFundGetV30ResponseDataListInner unionGrant(Long unionGrant) {
    
    this.unionGrant = unionGrant;
    return this;
  }

   /**
   * 
   * @return unionGrant
  **/
  @javax.annotation.Nullable
  public Long getUnionGrant() {
    return unionGrant;
  }


  public void setUnionGrant(Long unionGrant) {
    this.unionGrant = unionGrant;
  }


  public AccountFundGetV30ResponseDataListInner validBalance(Long validBalance) {
    
    this.validBalance = validBalance;
    return this;
  }

   /**
   * 
   * @return validBalance
  **/
  @javax.annotation.Nullable
  public Long getValidBalance() {
    return validBalance;
  }


  public void setValidBalance(Long validBalance) {
    this.validBalance = validBalance;
  }


  public AccountFundGetV30ResponseDataListInner validCash(Long validCash) {
    
    this.validCash = validCash;
    return this;
  }

   /**
   * 
   * @return validCash
  **/
  @javax.annotation.Nullable
  public Long getValidCash() {
    return validCash;
  }


  public void setValidCash(Long validCash) {
    this.validCash = validCash;
  }


  public AccountFundGetV30ResponseDataListInner validGrant(Long validGrant) {
    
    this.validGrant = validGrant;
    return this;
  }

   /**
   * 
   * @return validGrant
  **/
  @javax.annotation.Nullable
  public Long getValidGrant() {
    return validGrant;
  }


  public void setValidGrant(Long validGrant) {
    this.validGrant = validGrant;
  }


  public AccountFundGetV30ResponseDataListInner validReturnGoodsAbs(Long validReturnGoodsAbs) {
    
    this.validReturnGoodsAbs = validReturnGoodsAbs;
    return this;
  }

   /**
   * 
   * @return validReturnGoodsAbs
  **/
  @javax.annotation.Nullable
  public Long getValidReturnGoodsAbs() {
    return validReturnGoodsAbs;
  }


  public void setValidReturnGoodsAbs(Long validReturnGoodsAbs) {
    this.validReturnGoodsAbs = validReturnGoodsAbs;
  }


  public AccountFundGetV30ResponseDataListInner walletId(Long walletId) {
    
    this.walletId = walletId;
    return this;
  }

   /**
   * 
   * @return walletId
  **/
  @javax.annotation.Nullable
  public Long getWalletId() {
    return walletId;
  }


  public void setWalletId(Long walletId) {
    this.walletId = walletId;
  }


  public AccountFundGetV30ResponseDataListInner walletTotalBalanceValid(Long walletTotalBalanceValid) {
    
    this.walletTotalBalanceValid = walletTotalBalanceValid;
    return this;
  }

   /**
   * 
   * @return walletTotalBalanceValid
  **/
  @javax.annotation.Nullable
  public Long getWalletTotalBalanceValid() {
    return walletTotalBalanceValid;
  }


  public void setWalletTotalBalanceValid(Long walletTotalBalanceValid) {
    this.walletTotalBalanceValid = walletTotalBalanceValid;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AccountFundGetV30ResponseDataListInner accountFundGetV30ResponseDataListInner = (AccountFundGetV30ResponseDataListInner) o;
    return Objects.equals(this.accountId, accountFundGetV30ResponseDataListInner.accountId) &&
        Objects.equals(this.balance, accountFundGetV30ResponseDataListInner.balance) &&
        Objects.equals(this.biddingCash, accountFundGetV30ResponseDataListInner.biddingCash) &&
        Objects.equals(this.biddingCreditBalance, accountFundGetV30ResponseDataListInner.biddingCreditBalance) &&
        Objects.equals(this.biddingCreditValidBalance, accountFundGetV30ResponseDataListInner.biddingCreditValidBalance) &&
        Objects.equals(this.biddingPrepayBalance, accountFundGetV30ResponseDataListInner.biddingPrepayBalance) &&
        Objects.equals(this.biddingPrepayValidBalance, accountFundGetV30ResponseDataListInner.biddingPrepayValidBalance) &&
        Objects.equals(this.biddingValidGrant, accountFundGetV30ResponseDataListInner.biddingValidGrant) &&
        Objects.equals(this.brandCash, accountFundGetV30ResponseDataListInner.brandCash) &&
        Objects.equals(this.brandCreditBalance, accountFundGetV30ResponseDataListInner.brandCreditBalance) &&
        Objects.equals(this.brandCreditValidBalance, accountFundGetV30ResponseDataListInner.brandCreditValidBalance) &&
        Objects.equals(this.brandPrepayBalance, accountFundGetV30ResponseDataListInner.brandPrepayBalance) &&
        Objects.equals(this.brandPrepayValidBalance, accountFundGetV30ResponseDataListInner.brandPrepayValidBalance) &&
        Objects.equals(this.brandValidGrant, accountFundGetV30ResponseDataListInner.brandValidGrant) &&
        Objects.equals(this.cash, accountFundGetV30ResponseDataListInner.cash) &&
        Objects.equals(this.commonGrant, accountFundGetV30ResponseDataListInner.commonGrant) &&
        Objects.equals(this.compensationGrant, accountFundGetV30ResponseDataListInner.compensationGrant) &&
        Objects.equals(this.compensationValidGrant, accountFundGetV30ResponseDataListInner.compensationValidGrant) &&
        Objects.equals(this.creditBalance, accountFundGetV30ResponseDataListInner.creditBalance) &&
        Objects.equals(this.creditTransferBalance, accountFundGetV30ResponseDataListInner.creditTransferBalance) &&
        Objects.equals(this.creditValidBalance, accountFundGetV30ResponseDataListInner.creditValidBalance) &&
        Objects.equals(this.defaultGrant, accountFundGetV30ResponseDataListInner.defaultGrant) &&
        Objects.equals(this.generalCash, accountFundGetV30ResponseDataListInner.generalCash) &&
        Objects.equals(this.generalCreditBalance, accountFundGetV30ResponseDataListInner.generalCreditBalance) &&
        Objects.equals(this.generalCreditValidBalance, accountFundGetV30ResponseDataListInner.generalCreditValidBalance) &&
        Objects.equals(this.generalPrepayBalance, accountFundGetV30ResponseDataListInner.generalPrepayBalance) &&
        Objects.equals(this.generalPrepayValidBalance, accountFundGetV30ResponseDataListInner.generalPrepayValidBalance) &&
        Objects.equals(this.generalValidGrant, accountFundGetV30ResponseDataListInner.generalValidGrant) &&
        Objects.equals(this.grant, accountFundGetV30ResponseDataListInner.grant) &&
        Objects.equals(this.prepayBalance, accountFundGetV30ResponseDataListInner.prepayBalance) &&
        Objects.equals(this.prepayTransferBalance, accountFundGetV30ResponseDataListInner.prepayTransferBalance) &&
        Objects.equals(this.prepayValidBalance, accountFundGetV30ResponseDataListInner.prepayValidBalance) &&
        Objects.equals(this.returnGoodsAbs, accountFundGetV30ResponseDataListInner.returnGoodsAbs) &&
        Objects.equals(this.searchGrant, accountFundGetV30ResponseDataListInner.searchGrant) &&
        Objects.equals(this.transferBalance, accountFundGetV30ResponseDataListInner.transferBalance) &&
        Objects.equals(this.transferCash, accountFundGetV30ResponseDataListInner.transferCash) &&
        Objects.equals(this.unionGrant, accountFundGetV30ResponseDataListInner.unionGrant) &&
        Objects.equals(this.validBalance, accountFundGetV30ResponseDataListInner.validBalance) &&
        Objects.equals(this.validCash, accountFundGetV30ResponseDataListInner.validCash) &&
        Objects.equals(this.validGrant, accountFundGetV30ResponseDataListInner.validGrant) &&
        Objects.equals(this.validReturnGoodsAbs, accountFundGetV30ResponseDataListInner.validReturnGoodsAbs) &&
        Objects.equals(this.walletId, accountFundGetV30ResponseDataListInner.walletId) &&
        Objects.equals(this.walletTotalBalanceValid, accountFundGetV30ResponseDataListInner.walletTotalBalanceValid);
  }

  private static <T> boolean equalsNullable(JsonNullable<T> a, JsonNullable<T> b) {
    return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get()));
  }

  @Override
  public int hashCode() {
    return Objects.hash(accountId, balance, biddingCash, biddingCreditBalance, biddingCreditValidBalance, biddingPrepayBalance, biddingPrepayValidBalance, biddingValidGrant, brandCash, brandCreditBalance, brandCreditValidBalance, brandPrepayBalance, brandPrepayValidBalance, brandValidGrant, cash, commonGrant, compensationGrant, compensationValidGrant, creditBalance, creditTransferBalance, creditValidBalance, defaultGrant, generalCash, generalCreditBalance, generalCreditValidBalance, generalPrepayBalance, generalPrepayValidBalance, generalValidGrant, grant, prepayBalance, prepayTransferBalance, prepayValidBalance, returnGoodsAbs, searchGrant, transferBalance, transferCash, unionGrant, validBalance, validCash, validGrant, validReturnGoodsAbs, walletId, walletTotalBalanceValid);
  }

  private static <T> int hashCodeNullable(JsonNullable<T> a) {
    if (a == null) {
      return 1;
    }
    return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AccountFundGetV30ResponseDataListInner {\n");
    sb.append("    accountId: ").append(toIndentedString(accountId)).append("\n");
    sb.append("    balance: ").append(toIndentedString(balance)).append("\n");
    sb.append("    biddingCash: ").append(toIndentedString(biddingCash)).append("\n");
    sb.append("    biddingCreditBalance: ").append(toIndentedString(biddingCreditBalance)).append("\n");
    sb.append("    biddingCreditValidBalance: ").append(toIndentedString(biddingCreditValidBalance)).append("\n");
    sb.append("    biddingPrepayBalance: ").append(toIndentedString(biddingPrepayBalance)).append("\n");
    sb.append("    biddingPrepayValidBalance: ").append(toIndentedString(biddingPrepayValidBalance)).append("\n");
    sb.append("    biddingValidGrant: ").append(toIndentedString(biddingValidGrant)).append("\n");
    sb.append("    brandCash: ").append(toIndentedString(brandCash)).append("\n");
    sb.append("    brandCreditBalance: ").append(toIndentedString(brandCreditBalance)).append("\n");
    sb.append("    brandCreditValidBalance: ").append(toIndentedString(brandCreditValidBalance)).append("\n");
    sb.append("    brandPrepayBalance: ").append(toIndentedString(brandPrepayBalance)).append("\n");
    sb.append("    brandPrepayValidBalance: ").append(toIndentedString(brandPrepayValidBalance)).append("\n");
    sb.append("    brandValidGrant: ").append(toIndentedString(brandValidGrant)).append("\n");
    sb.append("    cash: ").append(toIndentedString(cash)).append("\n");
    sb.append("    commonGrant: ").append(toIndentedString(commonGrant)).append("\n");
    sb.append("    compensationGrant: ").append(toIndentedString(compensationGrant)).append("\n");
    sb.append("    compensationValidGrant: ").append(toIndentedString(compensationValidGrant)).append("\n");
    sb.append("    creditBalance: ").append(toIndentedString(creditBalance)).append("\n");
    sb.append("    creditTransferBalance: ").append(toIndentedString(creditTransferBalance)).append("\n");
    sb.append("    creditValidBalance: ").append(toIndentedString(creditValidBalance)).append("\n");
    sb.append("    defaultGrant: ").append(toIndentedString(defaultGrant)).append("\n");
    sb.append("    generalCash: ").append(toIndentedString(generalCash)).append("\n");
    sb.append("    generalCreditBalance: ").append(toIndentedString(generalCreditBalance)).append("\n");
    sb.append("    generalCreditValidBalance: ").append(toIndentedString(generalCreditValidBalance)).append("\n");
    sb.append("    generalPrepayBalance: ").append(toIndentedString(generalPrepayBalance)).append("\n");
    sb.append("    generalPrepayValidBalance: ").append(toIndentedString(generalPrepayValidBalance)).append("\n");
    sb.append("    generalValidGrant: ").append(toIndentedString(generalValidGrant)).append("\n");
    sb.append("    grant: ").append(toIndentedString(grant)).append("\n");
    sb.append("    prepayBalance: ").append(toIndentedString(prepayBalance)).append("\n");
    sb.append("    prepayTransferBalance: ").append(toIndentedString(prepayTransferBalance)).append("\n");
    sb.append("    prepayValidBalance: ").append(toIndentedString(prepayValidBalance)).append("\n");
    sb.append("    returnGoodsAbs: ").append(toIndentedString(returnGoodsAbs)).append("\n");
    sb.append("    searchGrant: ").append(toIndentedString(searchGrant)).append("\n");
    sb.append("    transferBalance: ").append(toIndentedString(transferBalance)).append("\n");
    sb.append("    transferCash: ").append(toIndentedString(transferCash)).append("\n");
    sb.append("    unionGrant: ").append(toIndentedString(unionGrant)).append("\n");
    sb.append("    validBalance: ").append(toIndentedString(validBalance)).append("\n");
    sb.append("    validCash: ").append(toIndentedString(validCash)).append("\n");
    sb.append("    validGrant: ").append(toIndentedString(validGrant)).append("\n");
    sb.append("    validReturnGoodsAbs: ").append(toIndentedString(validReturnGoodsAbs)).append("\n");
    sb.append("    walletId: ").append(toIndentedString(walletId)).append("\n");
    sb.append("    walletTotalBalanceValid: ").append(toIndentedString(walletTotalBalanceValid)).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(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }


  public static HashSet<String> openapiFields;
  public static HashSet<String> openapiRequiredFields;

  static {
    // a set of all properties/fields (JSON key names)
    openapiFields = new HashSet<String>();
    openapiFields.add("account_id");
    openapiFields.add("balance");
    openapiFields.add("bidding_cash");
    openapiFields.add("bidding_credit_balance");
    openapiFields.add("bidding_credit_valid_balance");
    openapiFields.add("bidding_prepay_balance");
    openapiFields.add("bidding_prepay_valid_balance");
    openapiFields.add("bidding_valid_grant");
    openapiFields.add("brand_cash");
    openapiFields.add("brand_credit_balance");
    openapiFields.add("brand_credit_valid_balance");
    openapiFields.add("brand_prepay_balance");
    openapiFields.add("brand_prepay_valid_balance");
    openapiFields.add("brand_valid_grant");
    openapiFields.add("cash");
    openapiFields.add("common_grant");
    openapiFields.add("compensation_grant");
    openapiFields.add("compensation_valid_grant");
    openapiFields.add("credit_balance");
    openapiFields.add("credit_transfer_balance");
    openapiFields.add("credit_valid_balance");
    openapiFields.add("default_grant");
    openapiFields.add("general_cash");
    openapiFields.add("general_credit_balance");
    openapiFields.add("general_credit_valid_balance");
    openapiFields.add("general_prepay_balance");
    openapiFields.add("general_prepay_valid_balance");
    openapiFields.add("general_valid_grant");
    openapiFields.add("grant");
    openapiFields.add("prepay_balance");
    openapiFields.add("prepay_transfer_balance");
    openapiFields.add("prepay_valid_balance");
    openapiFields.add("return_goods_abs");
    openapiFields.add("search_grant");
    openapiFields.add("transfer_balance");
    openapiFields.add("transfer_cash");
    openapiFields.add("union_grant");
    openapiFields.add("valid_balance");
    openapiFields.add("valid_cash");
    openapiFields.add("valid_grant");
    openapiFields.add("valid_return_goods_abs");
    openapiFields.add("wallet_id");
    openapiFields.add("wallet_total_balance_valid");

    // a set of required properties/fields (JSON key names)
    openapiRequiredFields = new HashSet<String>();
  }


  public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
    @SuppressWarnings("unchecked")
    @Override
    public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
       if (!AccountFundGetV30ResponseDataListInner.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'AccountFundGetV30ResponseDataListInner' and its subtypes
       }
       final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter<AccountFundGetV30ResponseDataListInner> thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(AccountFundGetV30ResponseDataListInner.class));

       return (TypeAdapter<T>) new TypeAdapter<AccountFundGetV30ResponseDataListInner>() {
           @Override
           public void write(JsonWriter out, AccountFundGetV30ResponseDataListInner value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             elementAdapter.write(out, obj);
           }

           @Override
           public AccountFundGetV30ResponseDataListInner read(JsonReader in) throws IOException {
             JsonElement jsonElement = elementAdapter.read(in);
             return thisAdapter.fromJsonTree(jsonElement);
           }

       }.nullSafe();
    }
  }

 /**
  * Create an instance of AccountFundGetV30ResponseDataListInner given an JSON string
  *
  * @param jsonString JSON string
  * @return An instance of AccountFundGetV30ResponseDataListInner
  * @throws IOException if the JSON string is invalid with respect to AccountFundGetV30ResponseDataListInner
  */
  public static AccountFundGetV30ResponseDataListInner fromJson(String jsonString) throws IOException {
    return JSON.getGson().fromJson(jsonString, AccountFundGetV30ResponseDataListInner.class);
  }

 /**
  * Convert an instance of AccountFundGetV30ResponseDataListInner to an JSON string
  *
  * @return JSON string
  */
  public String toJson() {
    return JSON.getGson().toJson(this);
  }
}

