/*
 * 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.bytedance.ads.model.QianchuanFinanceWalletGetV10ResponseDataShareExpiringDetailListInner;
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 java.util.ArrayList;
import java.util.List;
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;

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

  public static final String SERIALIZED_NAME_BRAND_BALANCE_INVALID = "brand_balance_invalid";
  @SerializedName(SERIALIZED_NAME_BRAND_BALANCE_INVALID)
  private Long brandBalanceInvalid = null;

  public static final String SERIALIZED_NAME_BRAND_BALANCE_INVALID_FROZEN = "brand_balance_invalid_frozen";
  @SerializedName(SERIALIZED_NAME_BRAND_BALANCE_INVALID_FROZEN)
  private Long brandBalanceInvalidFrozen = null;

  public static final String SERIALIZED_NAME_BRAND_BALANCE_VALID = "brand_balance_valid";
  @SerializedName(SERIALIZED_NAME_BRAND_BALANCE_VALID)
  private Long brandBalanceValid = null;

  public static final String SERIALIZED_NAME_BRAND_BALANCE_VALID_GRANT = "brand_balance_valid_grant";
  @SerializedName(SERIALIZED_NAME_BRAND_BALANCE_VALID_GRANT)
  private Long brandBalanceValidGrant = null;

  public static final String SERIALIZED_NAME_BRAND_BALANCE_VALID_NON_GRANT = "brand_balance_valid_non_grant";
  @SerializedName(SERIALIZED_NAME_BRAND_BALANCE_VALID_NON_GRANT)
  private Long brandBalanceValidNonGrant = null;

  public static final String SERIALIZED_NAME_COMMON_VALID_GRANT_BALANCE = "common_valid_grant_balance";
  @SerializedName(SERIALIZED_NAME_COMMON_VALID_GRANT_BALANCE)
  private Long commonValidGrantBalance = null;

  public static final String SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE = "deduction_coupon_balance";
  @SerializedName(SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE)
  private Long deductionCouponBalance = null;

  public static final String SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE_ALL = "deduction_coupon_balance_all";
  @SerializedName(SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE_ALL)
  private Long deductionCouponBalanceAll = null;

  public static final String SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE_OTHER = "deduction_coupon_balance_other";
  @SerializedName(SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE_OTHER)
  private Long deductionCouponBalanceOther = null;

  public static final String SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE_SELF = "deduction_coupon_balance_self";
  @SerializedName(SERIALIZED_NAME_DEDUCTION_COUPON_BALANCE_SELF)
  private Long deductionCouponBalanceSelf = null;

  public static final String SERIALIZED_NAME_DEFAULT_VALID_GRANT_BALANCE = "default_valid_grant_balance";
  @SerializedName(SERIALIZED_NAME_DEFAULT_VALID_GRANT_BALANCE)
  private Long defaultValidGrantBalance = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_INVALID = "general_balance_invalid";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_INVALID)
  private Long generalBalanceInvalid = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_INVALID_FROZEN = "general_balance_invalid_frozen";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_INVALID_FROZEN)
  private Long generalBalanceInvalidFrozen = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_INVALID_ORDER = "general_balance_invalid_order";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_INVALID_ORDER)
  private Long generalBalanceInvalidOrder = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_VALID = "general_balance_valid";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_VALID)
  private Long generalBalanceValid = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_COMMON = "general_balance_valid_grant_common";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_COMMON)
  private Long generalBalanceValidGrantCommon = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_DEFAULT = "general_balance_valid_grant_default";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_DEFAULT)
  private Long generalBalanceValidGrantDefault = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_SEARCH = "general_balance_valid_grant_search";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_SEARCH)
  private Long generalBalanceValidGrantSearch = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_UNION = "general_balance_valid_grant_union";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_VALID_GRANT_UNION)
  private Long generalBalanceValidGrantUnion = null;

  public static final String SERIALIZED_NAME_GENERAL_BALANCE_VALID_NON_GRANT = "general_balance_valid_non_grant";
  @SerializedName(SERIALIZED_NAME_GENERAL_BALANCE_VALID_NON_GRANT)
  private Long generalBalanceValidNonGrant = null;

  public static final String SERIALIZED_NAME_GENERAL_TOTAL_BALANCE = "general_total_balance";
  @SerializedName(SERIALIZED_NAME_GENERAL_TOTAL_BALANCE)
  private Long generalTotalBalance = null;

  public static final String SERIALIZED_NAME_GRANT_BALANCE = "grant_balance";
  @SerializedName(SERIALIZED_NAME_GRANT_BALANCE)
  private Long grantBalance = null;

  public static final String SERIALIZED_NAME_GRANT_EXPIRING = "grant_expiring";
  @SerializedName(SERIALIZED_NAME_GRANT_EXPIRING)
  private Long grantExpiring = null;

  public static final String SERIALIZED_NAME_SEARCH_VALID_GRANT_BALANCE = "search_valid_grant_balance";
  @SerializedName(SERIALIZED_NAME_SEARCH_VALID_GRANT_BALANCE)
  private Long searchValidGrantBalance = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE = "share_balance";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE)
  private Long shareBalance = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE_EXPIRING = "share_balance_expiring";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE_EXPIRING)
  private Long shareBalanceExpiring = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE_VALID = "share_balance_valid";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE_VALID)
  private Long shareBalanceValid = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_COMMON = "share_balance_valid_grant_common";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_COMMON)
  private Long shareBalanceValidGrantCommon = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_DEFAULT = "share_balance_valid_grant_default";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_DEFAULT)
  private Long shareBalanceValidGrantDefault = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_SEARCH = "share_balance_valid_grant_search";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_SEARCH)
  private Long shareBalanceValidGrantSearch = null;

  public static final String SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_UNION = "share_balance_valid_grant_union";
  @SerializedName(SERIALIZED_NAME_SHARE_BALANCE_VALID_GRANT_UNION)
  private Long shareBalanceValidGrantUnion = null;

  public static final String SERIALIZED_NAME_SHARE_EXPIRING_DETAIL_LIST = "share_expiring_detail_list";
  @SerializedName(SERIALIZED_NAME_SHARE_EXPIRING_DETAIL_LIST)
  private List<QianchuanFinanceWalletGetV10ResponseDataShareExpiringDetailListInner> shareExpiringDetailList = null;

  public static final String SERIALIZED_NAME_TOTAL_BALANCE_ABS = "total_balance_abs";
  @SerializedName(SERIALIZED_NAME_TOTAL_BALANCE_ABS)
  private Long totalBalanceAbs = null;

  public static final String SERIALIZED_NAME_UNION_VALID_GRANT_BALANCE = "union_valid_grant_balance";
  @SerializedName(SERIALIZED_NAME_UNION_VALID_GRANT_BALANCE)
  private Long unionValidGrantBalance = null;

  public QianchuanFinanceWalletGetV10ResponseData() {
  }

  public QianchuanFinanceWalletGetV10ResponseData brandBalance(Long brandBalance) {
    
    this.brandBalance = brandBalance;
    return this;
  }

   /**
   * 品牌余额
   * @return brandBalance
  **/
  @javax.annotation.Nullable
  public Long getBrandBalance() {
    return brandBalance;
  }


  public void setBrandBalance(Long brandBalance) {
    this.brandBalance = brandBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData brandBalanceInvalid(Long brandBalanceInvalid) {
    
    this.brandBalanceInvalid = brandBalanceInvalid;
    return this;
  }

   /**
   * 品牌余额-不可用余额
   * @return brandBalanceInvalid
  **/
  @javax.annotation.Nullable
  public Long getBrandBalanceInvalid() {
    return brandBalanceInvalid;
  }


  public void setBrandBalanceInvalid(Long brandBalanceInvalid) {
    this.brandBalanceInvalid = brandBalanceInvalid;
  }


  public QianchuanFinanceWalletGetV10ResponseData brandBalanceInvalidFrozen(Long brandBalanceInvalidFrozen) {
    
    this.brandBalanceInvalidFrozen = brandBalanceInvalidFrozen;
    return this;
  }

   /**
   * 品牌余额-不可用余额-冻结
   * @return brandBalanceInvalidFrozen
  **/
  @javax.annotation.Nullable
  public Long getBrandBalanceInvalidFrozen() {
    return brandBalanceInvalidFrozen;
  }


  public void setBrandBalanceInvalidFrozen(Long brandBalanceInvalidFrozen) {
    this.brandBalanceInvalidFrozen = brandBalanceInvalidFrozen;
  }


  public QianchuanFinanceWalletGetV10ResponseData brandBalanceValid(Long brandBalanceValid) {
    
    this.brandBalanceValid = brandBalanceValid;
    return this;
  }

   /**
   * 品牌余额-可用余额
   * @return brandBalanceValid
  **/
  @javax.annotation.Nullable
  public Long getBrandBalanceValid() {
    return brandBalanceValid;
  }


  public void setBrandBalanceValid(Long brandBalanceValid) {
    this.brandBalanceValid = brandBalanceValid;
  }


  public QianchuanFinanceWalletGetV10ResponseData brandBalanceValidGrant(Long brandBalanceValidGrant) {
    
    this.brandBalanceValidGrant = brandBalanceValidGrant;
    return this;
  }

   /**
   * 品牌余额-可用余额-赠款
   * @return brandBalanceValidGrant
  **/
  @javax.annotation.Nullable
  public Long getBrandBalanceValidGrant() {
    return brandBalanceValidGrant;
  }


  public void setBrandBalanceValidGrant(Long brandBalanceValidGrant) {
    this.brandBalanceValidGrant = brandBalanceValidGrant;
  }


  public QianchuanFinanceWalletGetV10ResponseData brandBalanceValidNonGrant(Long brandBalanceValidNonGrant) {
    
    this.brandBalanceValidNonGrant = brandBalanceValidNonGrant;
    return this;
  }

   /**
   * 品牌余额-可用余额-非赠款
   * @return brandBalanceValidNonGrant
  **/
  @javax.annotation.Nullable
  public Long getBrandBalanceValidNonGrant() {
    return brandBalanceValidNonGrant;
  }


  public void setBrandBalanceValidNonGrant(Long brandBalanceValidNonGrant) {
    this.brandBalanceValidNonGrant = brandBalanceValidNonGrant;
  }


  public QianchuanFinanceWalletGetV10ResponseData commonValidGrantBalance(Long commonValidGrantBalance) {
    
    this.commonValidGrantBalance = commonValidGrantBalance;
    return this;
  }

   /**
   * 赠款余额-巨量信息流广告-可用 
   * @return commonValidGrantBalance
  **/
  @javax.annotation.Nullable
  public Long getCommonValidGrantBalance() {
    return commonValidGrantBalance;
  }


  public void setCommonValidGrantBalance(Long commonValidGrantBalance) {
    this.commonValidGrantBalance = commonValidGrantBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData deductionCouponBalance(Long deductionCouponBalance) {
    
    this.deductionCouponBalance = deductionCouponBalance;
    return this;
  }

   /**
   * 消返红包余额 
   * @return deductionCouponBalance
  **/
  @javax.annotation.Nullable
  public Long getDeductionCouponBalance() {
    return deductionCouponBalance;
  }


  public void setDeductionCouponBalance(Long deductionCouponBalance) {
    this.deductionCouponBalance = deductionCouponBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData deductionCouponBalanceAll(Long deductionCouponBalanceAll) {
    
    this.deductionCouponBalanceAll = deductionCouponBalanceAll;
    return this;
  }

   /**
   * 消返红包余额（通用） 
   * @return deductionCouponBalanceAll
  **/
  @javax.annotation.Nullable
  public Long getDeductionCouponBalanceAll() {
    return deductionCouponBalanceAll;
  }


  public void setDeductionCouponBalanceAll(Long deductionCouponBalanceAll) {
    this.deductionCouponBalanceAll = deductionCouponBalanceAll;
  }


  public QianchuanFinanceWalletGetV10ResponseData deductionCouponBalanceOther(Long deductionCouponBalanceOther) {
    
    this.deductionCouponBalanceOther = deductionCouponBalanceOther;
    return this;
  }

   /**
   * 消返红包余额（代投）
   * @return deductionCouponBalanceOther
  **/
  @javax.annotation.Nullable
  public Long getDeductionCouponBalanceOther() {
    return deductionCouponBalanceOther;
  }


  public void setDeductionCouponBalanceOther(Long deductionCouponBalanceOther) {
    this.deductionCouponBalanceOther = deductionCouponBalanceOther;
  }


  public QianchuanFinanceWalletGetV10ResponseData deductionCouponBalanceSelf(Long deductionCouponBalanceSelf) {
    
    this.deductionCouponBalanceSelf = deductionCouponBalanceSelf;
    return this;
  }

   /**
   * 消返红包余额（自投）
   * @return deductionCouponBalanceSelf
  **/
  @javax.annotation.Nullable
  public Long getDeductionCouponBalanceSelf() {
    return deductionCouponBalanceSelf;
  }


  public void setDeductionCouponBalanceSelf(Long deductionCouponBalanceSelf) {
    this.deductionCouponBalanceSelf = deductionCouponBalanceSelf;
  }


  public QianchuanFinanceWalletGetV10ResponseData defaultValidGrantBalance(Long defaultValidGrantBalance) {
    
    this.defaultValidGrantBalance = defaultValidGrantBalance;
    return this;
  }

   /**
   * 赠款余额-通用-可用
   * @return defaultValidGrantBalance
  **/
  @javax.annotation.Nullable
  public Long getDefaultValidGrantBalance() {
    return defaultValidGrantBalance;
  }


  public void setDefaultValidGrantBalance(Long defaultValidGrantBalance) {
    this.defaultValidGrantBalance = defaultValidGrantBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceInvalid(Long generalBalanceInvalid) {
    
    this.generalBalanceInvalid = generalBalanceInvalid;
    return this;
  }

   /**
   * 通用余额-不可用余额
   * @return generalBalanceInvalid
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceInvalid() {
    return generalBalanceInvalid;
  }


  public void setGeneralBalanceInvalid(Long generalBalanceInvalid) {
    this.generalBalanceInvalid = generalBalanceInvalid;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceInvalidFrozen(Long generalBalanceInvalidFrozen) {
    
    this.generalBalanceInvalidFrozen = generalBalanceInvalidFrozen;
    return this;
  }

   /**
   * 通用余额-不可用余额-冻结
   * @return generalBalanceInvalidFrozen
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceInvalidFrozen() {
    return generalBalanceInvalidFrozen;
  }


  public void setGeneralBalanceInvalidFrozen(Long generalBalanceInvalidFrozen) {
    this.generalBalanceInvalidFrozen = generalBalanceInvalidFrozen;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceInvalidOrder(Long generalBalanceInvalidOrder) {
    
    this.generalBalanceInvalidOrder = generalBalanceInvalidOrder;
    return this;
  }

   /**
   * 通用余额-不可用余额-随心推已下单
   * @return generalBalanceInvalidOrder
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceInvalidOrder() {
    return generalBalanceInvalidOrder;
  }


  public void setGeneralBalanceInvalidOrder(Long generalBalanceInvalidOrder) {
    this.generalBalanceInvalidOrder = generalBalanceInvalidOrder;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceValid(Long generalBalanceValid) {
    
    this.generalBalanceValid = generalBalanceValid;
    return this;
  }

   /**
   * 通用余额-可用余额 
   * @return generalBalanceValid
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceValid() {
    return generalBalanceValid;
  }


  public void setGeneralBalanceValid(Long generalBalanceValid) {
    this.generalBalanceValid = generalBalanceValid;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceValidGrantCommon(Long generalBalanceValidGrantCommon) {
    
    this.generalBalanceValidGrantCommon = generalBalanceValidGrantCommon;
    return this;
  }

   /**
   * 通用余额-可用余额-赠款-巨量信息流广告
   * @return generalBalanceValidGrantCommon
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceValidGrantCommon() {
    return generalBalanceValidGrantCommon;
  }


  public void setGeneralBalanceValidGrantCommon(Long generalBalanceValidGrantCommon) {
    this.generalBalanceValidGrantCommon = generalBalanceValidGrantCommon;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceValidGrantDefault(Long generalBalanceValidGrantDefault) {
    
    this.generalBalanceValidGrantDefault = generalBalanceValidGrantDefault;
    return this;
  }

   /**
   * 通用余额-可用余额-赠款-通用
   * @return generalBalanceValidGrantDefault
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceValidGrantDefault() {
    return generalBalanceValidGrantDefault;
  }


  public void setGeneralBalanceValidGrantDefault(Long generalBalanceValidGrantDefault) {
    this.generalBalanceValidGrantDefault = generalBalanceValidGrantDefault;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceValidGrantSearch(Long generalBalanceValidGrantSearch) {
    
    this.generalBalanceValidGrantSearch = generalBalanceValidGrantSearch;
    return this;
  }

   /**
   * 通用余额-可用余额-赠款-巨量搜索广告
   * @return generalBalanceValidGrantSearch
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceValidGrantSearch() {
    return generalBalanceValidGrantSearch;
  }


  public void setGeneralBalanceValidGrantSearch(Long generalBalanceValidGrantSearch) {
    this.generalBalanceValidGrantSearch = generalBalanceValidGrantSearch;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceValidGrantUnion(Long generalBalanceValidGrantUnion) {
    
    this.generalBalanceValidGrantUnion = generalBalanceValidGrantUnion;
    return this;
  }

   /**
   * 通用余额-可用余额-赠款-穿山甲
   * @return generalBalanceValidGrantUnion
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceValidGrantUnion() {
    return generalBalanceValidGrantUnion;
  }


  public void setGeneralBalanceValidGrantUnion(Long generalBalanceValidGrantUnion) {
    this.generalBalanceValidGrantUnion = generalBalanceValidGrantUnion;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalBalanceValidNonGrant(Long generalBalanceValidNonGrant) {
    
    this.generalBalanceValidNonGrant = generalBalanceValidNonGrant;
    return this;
  }

   /**
   * 通用余额-可用余额-非赠款
   * @return generalBalanceValidNonGrant
  **/
  @javax.annotation.Nullable
  public Long getGeneralBalanceValidNonGrant() {
    return generalBalanceValidNonGrant;
  }


  public void setGeneralBalanceValidNonGrant(Long generalBalanceValidNonGrant) {
    this.generalBalanceValidNonGrant = generalBalanceValidNonGrant;
  }


  public QianchuanFinanceWalletGetV10ResponseData generalTotalBalance(Long generalTotalBalance) {
    
    this.generalTotalBalance = generalTotalBalance;
    return this;
  }

   /**
   * 通用余额
   * @return generalTotalBalance
  **/
  @javax.annotation.Nullable
  public Long getGeneralTotalBalance() {
    return generalTotalBalance;
  }


  public void setGeneralTotalBalance(Long generalTotalBalance) {
    this.generalTotalBalance = generalTotalBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData grantBalance(Long grantBalance) {
    
    this.grantBalance = grantBalance;
    return this;
  }

   /**
   * 赠款余额
   * @return grantBalance
  **/
  @javax.annotation.Nullable
  public Long getGrantBalance() {
    return grantBalance;
  }


  public void setGrantBalance(Long grantBalance) {
    this.grantBalance = grantBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData grantExpiring(Long grantExpiring) {
    
    this.grantExpiring = grantExpiring;
    return this;
  }

   /**
   * 15天内赠款到期金额 
   * @return grantExpiring
  **/
  @javax.annotation.Nullable
  public Long getGrantExpiring() {
    return grantExpiring;
  }


  public void setGrantExpiring(Long grantExpiring) {
    this.grantExpiring = grantExpiring;
  }


  public QianchuanFinanceWalletGetV10ResponseData searchValidGrantBalance(Long searchValidGrantBalance) {
    
    this.searchValidGrantBalance = searchValidGrantBalance;
    return this;
  }

   /**
   * 赠款余额-穿山甲-可用
   * @return searchValidGrantBalance
  **/
  @javax.annotation.Nullable
  public Long getSearchValidGrantBalance() {
    return searchValidGrantBalance;
  }


  public void setSearchValidGrantBalance(Long searchValidGrantBalance) {
    this.searchValidGrantBalance = searchValidGrantBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalance(Long shareBalance) {
    
    this.shareBalance = shareBalance;
    return this;
  }

   /**
   * 共享赠款余额
   * @return shareBalance
  **/
  @javax.annotation.Nullable
  public Long getShareBalance() {
    return shareBalance;
  }


  public void setShareBalance(Long shareBalance) {
    this.shareBalance = shareBalance;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalanceExpiring(Long shareBalanceExpiring) {
    
    this.shareBalanceExpiring = shareBalanceExpiring;
    return this;
  }

   /**
   * 共享赠款余额-30天内到期余额
   * @return shareBalanceExpiring
  **/
  @javax.annotation.Nullable
  public Long getShareBalanceExpiring() {
    return shareBalanceExpiring;
  }


  public void setShareBalanceExpiring(Long shareBalanceExpiring) {
    this.shareBalanceExpiring = shareBalanceExpiring;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalanceValid(Long shareBalanceValid) {
    
    this.shareBalanceValid = shareBalanceValid;
    return this;
  }

   /**
   * 共享赠款余额-可用余额
   * @return shareBalanceValid
  **/
  @javax.annotation.Nullable
  public Long getShareBalanceValid() {
    return shareBalanceValid;
  }


  public void setShareBalanceValid(Long shareBalanceValid) {
    this.shareBalanceValid = shareBalanceValid;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalanceValidGrantCommon(Long shareBalanceValidGrantCommon) {
    
    this.shareBalanceValidGrantCommon = shareBalanceValidGrantCommon;
    return this;
  }

   /**
   * 共享赠款余额-可用余额-赠款-巨量信息流广告
   * @return shareBalanceValidGrantCommon
  **/
  @javax.annotation.Nullable
  public Long getShareBalanceValidGrantCommon() {
    return shareBalanceValidGrantCommon;
  }


  public void setShareBalanceValidGrantCommon(Long shareBalanceValidGrantCommon) {
    this.shareBalanceValidGrantCommon = shareBalanceValidGrantCommon;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalanceValidGrantDefault(Long shareBalanceValidGrantDefault) {
    
    this.shareBalanceValidGrantDefault = shareBalanceValidGrantDefault;
    return this;
  }

   /**
   * 共享赠款余额-可用余额-赠款-通用
   * @return shareBalanceValidGrantDefault
  **/
  @javax.annotation.Nullable
  public Long getShareBalanceValidGrantDefault() {
    return shareBalanceValidGrantDefault;
  }


  public void setShareBalanceValidGrantDefault(Long shareBalanceValidGrantDefault) {
    this.shareBalanceValidGrantDefault = shareBalanceValidGrantDefault;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalanceValidGrantSearch(Long shareBalanceValidGrantSearch) {
    
    this.shareBalanceValidGrantSearch = shareBalanceValidGrantSearch;
    return this;
  }

   /**
   * 共享赠款余额-可用余额-赠款-巨量搜索广告
   * @return shareBalanceValidGrantSearch
  **/
  @javax.annotation.Nullable
  public Long getShareBalanceValidGrantSearch() {
    return shareBalanceValidGrantSearch;
  }


  public void setShareBalanceValidGrantSearch(Long shareBalanceValidGrantSearch) {
    this.shareBalanceValidGrantSearch = shareBalanceValidGrantSearch;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareBalanceValidGrantUnion(Long shareBalanceValidGrantUnion) {
    
    this.shareBalanceValidGrantUnion = shareBalanceValidGrantUnion;
    return this;
  }

   /**
   * 共享赠款余额-可用余额-赠款-穿山甲
   * @return shareBalanceValidGrantUnion
  **/
  @javax.annotation.Nullable
  public Long getShareBalanceValidGrantUnion() {
    return shareBalanceValidGrantUnion;
  }


  public void setShareBalanceValidGrantUnion(Long shareBalanceValidGrantUnion) {
    this.shareBalanceValidGrantUnion = shareBalanceValidGrantUnion;
  }


  public QianchuanFinanceWalletGetV10ResponseData shareExpiringDetailList(List<QianchuanFinanceWalletGetV10ResponseDataShareExpiringDetailListInner> shareExpiringDetailList) {
    
    this.shareExpiringDetailList = shareExpiringDetailList;
    return this;
  }

  public QianchuanFinanceWalletGetV10ResponseData addShareExpiringDetailListItem(QianchuanFinanceWalletGetV10ResponseDataShareExpiringDetailListInner shareExpiringDetailListItem) {
    if (this.shareExpiringDetailList == null) {
      this.shareExpiringDetailList = new ArrayList<>();
    }
    this.shareExpiringDetailList.add(shareExpiringDetailListItem);
    return this;
  }

   /**
   * 共享赠款余额到期详情
   * @return shareExpiringDetailList
  **/
  @javax.annotation.Nullable
  public List<QianchuanFinanceWalletGetV10ResponseDataShareExpiringDetailListInner> getShareExpiringDetailList() {
    return shareExpiringDetailList;
  }


  public void setShareExpiringDetailList(List<QianchuanFinanceWalletGetV10ResponseDataShareExpiringDetailListInner> shareExpiringDetailList) {
    this.shareExpiringDetailList = shareExpiringDetailList;
  }


  public QianchuanFinanceWalletGetV10ResponseData totalBalanceAbs(Long totalBalanceAbs) {
    
    this.totalBalanceAbs = totalBalanceAbs;
    return this;
  }

   /**
   * 账户总余额 
   * @return totalBalanceAbs
  **/
  @javax.annotation.Nullable
  public Long getTotalBalanceAbs() {
    return totalBalanceAbs;
  }


  public void setTotalBalanceAbs(Long totalBalanceAbs) {
    this.totalBalanceAbs = totalBalanceAbs;
  }


  public QianchuanFinanceWalletGetV10ResponseData unionValidGrantBalance(Long unionValidGrantBalance) {
    
    this.unionValidGrantBalance = unionValidGrantBalance;
    return this;
  }

   /**
   * 赠款余额-穿山甲-可用
   * @return unionValidGrantBalance
  **/
  @javax.annotation.Nullable
  public Long getUnionValidGrantBalance() {
    return unionValidGrantBalance;
  }


  public void setUnionValidGrantBalance(Long unionValidGrantBalance) {
    this.unionValidGrantBalance = unionValidGrantBalance;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    QianchuanFinanceWalletGetV10ResponseData qianchuanFinanceWalletGetV10ResponseData = (QianchuanFinanceWalletGetV10ResponseData) o;
    return Objects.equals(this.brandBalance, qianchuanFinanceWalletGetV10ResponseData.brandBalance) &&
        Objects.equals(this.brandBalanceInvalid, qianchuanFinanceWalletGetV10ResponseData.brandBalanceInvalid) &&
        Objects.equals(this.brandBalanceInvalidFrozen, qianchuanFinanceWalletGetV10ResponseData.brandBalanceInvalidFrozen) &&
        Objects.equals(this.brandBalanceValid, qianchuanFinanceWalletGetV10ResponseData.brandBalanceValid) &&
        Objects.equals(this.brandBalanceValidGrant, qianchuanFinanceWalletGetV10ResponseData.brandBalanceValidGrant) &&
        Objects.equals(this.brandBalanceValidNonGrant, qianchuanFinanceWalletGetV10ResponseData.brandBalanceValidNonGrant) &&
        Objects.equals(this.commonValidGrantBalance, qianchuanFinanceWalletGetV10ResponseData.commonValidGrantBalance) &&
        Objects.equals(this.deductionCouponBalance, qianchuanFinanceWalletGetV10ResponseData.deductionCouponBalance) &&
        Objects.equals(this.deductionCouponBalanceAll, qianchuanFinanceWalletGetV10ResponseData.deductionCouponBalanceAll) &&
        Objects.equals(this.deductionCouponBalanceOther, qianchuanFinanceWalletGetV10ResponseData.deductionCouponBalanceOther) &&
        Objects.equals(this.deductionCouponBalanceSelf, qianchuanFinanceWalletGetV10ResponseData.deductionCouponBalanceSelf) &&
        Objects.equals(this.defaultValidGrantBalance, qianchuanFinanceWalletGetV10ResponseData.defaultValidGrantBalance) &&
        Objects.equals(this.generalBalanceInvalid, qianchuanFinanceWalletGetV10ResponseData.generalBalanceInvalid) &&
        Objects.equals(this.generalBalanceInvalidFrozen, qianchuanFinanceWalletGetV10ResponseData.generalBalanceInvalidFrozen) &&
        Objects.equals(this.generalBalanceInvalidOrder, qianchuanFinanceWalletGetV10ResponseData.generalBalanceInvalidOrder) &&
        Objects.equals(this.generalBalanceValid, qianchuanFinanceWalletGetV10ResponseData.generalBalanceValid) &&
        Objects.equals(this.generalBalanceValidGrantCommon, qianchuanFinanceWalletGetV10ResponseData.generalBalanceValidGrantCommon) &&
        Objects.equals(this.generalBalanceValidGrantDefault, qianchuanFinanceWalletGetV10ResponseData.generalBalanceValidGrantDefault) &&
        Objects.equals(this.generalBalanceValidGrantSearch, qianchuanFinanceWalletGetV10ResponseData.generalBalanceValidGrantSearch) &&
        Objects.equals(this.generalBalanceValidGrantUnion, qianchuanFinanceWalletGetV10ResponseData.generalBalanceValidGrantUnion) &&
        Objects.equals(this.generalBalanceValidNonGrant, qianchuanFinanceWalletGetV10ResponseData.generalBalanceValidNonGrant) &&
        Objects.equals(this.generalTotalBalance, qianchuanFinanceWalletGetV10ResponseData.generalTotalBalance) &&
        Objects.equals(this.grantBalance, qianchuanFinanceWalletGetV10ResponseData.grantBalance) &&
        Objects.equals(this.grantExpiring, qianchuanFinanceWalletGetV10ResponseData.grantExpiring) &&
        Objects.equals(this.searchValidGrantBalance, qianchuanFinanceWalletGetV10ResponseData.searchValidGrantBalance) &&
        Objects.equals(this.shareBalance, qianchuanFinanceWalletGetV10ResponseData.shareBalance) &&
        Objects.equals(this.shareBalanceExpiring, qianchuanFinanceWalletGetV10ResponseData.shareBalanceExpiring) &&
        Objects.equals(this.shareBalanceValid, qianchuanFinanceWalletGetV10ResponseData.shareBalanceValid) &&
        Objects.equals(this.shareBalanceValidGrantCommon, qianchuanFinanceWalletGetV10ResponseData.shareBalanceValidGrantCommon) &&
        Objects.equals(this.shareBalanceValidGrantDefault, qianchuanFinanceWalletGetV10ResponseData.shareBalanceValidGrantDefault) &&
        Objects.equals(this.shareBalanceValidGrantSearch, qianchuanFinanceWalletGetV10ResponseData.shareBalanceValidGrantSearch) &&
        Objects.equals(this.shareBalanceValidGrantUnion, qianchuanFinanceWalletGetV10ResponseData.shareBalanceValidGrantUnion) &&
        Objects.equals(this.shareExpiringDetailList, qianchuanFinanceWalletGetV10ResponseData.shareExpiringDetailList) &&
        Objects.equals(this.totalBalanceAbs, qianchuanFinanceWalletGetV10ResponseData.totalBalanceAbs) &&
        Objects.equals(this.unionValidGrantBalance, qianchuanFinanceWalletGetV10ResponseData.unionValidGrantBalance);
  }

  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(brandBalance, brandBalanceInvalid, brandBalanceInvalidFrozen, brandBalanceValid, brandBalanceValidGrant, brandBalanceValidNonGrant, commonValidGrantBalance, deductionCouponBalance, deductionCouponBalanceAll, deductionCouponBalanceOther, deductionCouponBalanceSelf, defaultValidGrantBalance, generalBalanceInvalid, generalBalanceInvalidFrozen, generalBalanceInvalidOrder, generalBalanceValid, generalBalanceValidGrantCommon, generalBalanceValidGrantDefault, generalBalanceValidGrantSearch, generalBalanceValidGrantUnion, generalBalanceValidNonGrant, generalTotalBalance, grantBalance, grantExpiring, searchValidGrantBalance, shareBalance, shareBalanceExpiring, shareBalanceValid, shareBalanceValidGrantCommon, shareBalanceValidGrantDefault, shareBalanceValidGrantSearch, shareBalanceValidGrantUnion, shareExpiringDetailList, totalBalanceAbs, unionValidGrantBalance);
  }

  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 QianchuanFinanceWalletGetV10ResponseData {\n");
    sb.append("    brandBalance: ").append(toIndentedString(brandBalance)).append("\n");
    sb.append("    brandBalanceInvalid: ").append(toIndentedString(brandBalanceInvalid)).append("\n");
    sb.append("    brandBalanceInvalidFrozen: ").append(toIndentedString(brandBalanceInvalidFrozen)).append("\n");
    sb.append("    brandBalanceValid: ").append(toIndentedString(brandBalanceValid)).append("\n");
    sb.append("    brandBalanceValidGrant: ").append(toIndentedString(brandBalanceValidGrant)).append("\n");
    sb.append("    brandBalanceValidNonGrant: ").append(toIndentedString(brandBalanceValidNonGrant)).append("\n");
    sb.append("    commonValidGrantBalance: ").append(toIndentedString(commonValidGrantBalance)).append("\n");
    sb.append("    deductionCouponBalance: ").append(toIndentedString(deductionCouponBalance)).append("\n");
    sb.append("    deductionCouponBalanceAll: ").append(toIndentedString(deductionCouponBalanceAll)).append("\n");
    sb.append("    deductionCouponBalanceOther: ").append(toIndentedString(deductionCouponBalanceOther)).append("\n");
    sb.append("    deductionCouponBalanceSelf: ").append(toIndentedString(deductionCouponBalanceSelf)).append("\n");
    sb.append("    defaultValidGrantBalance: ").append(toIndentedString(defaultValidGrantBalance)).append("\n");
    sb.append("    generalBalanceInvalid: ").append(toIndentedString(generalBalanceInvalid)).append("\n");
    sb.append("    generalBalanceInvalidFrozen: ").append(toIndentedString(generalBalanceInvalidFrozen)).append("\n");
    sb.append("    generalBalanceInvalidOrder: ").append(toIndentedString(generalBalanceInvalidOrder)).append("\n");
    sb.append("    generalBalanceValid: ").append(toIndentedString(generalBalanceValid)).append("\n");
    sb.append("    generalBalanceValidGrantCommon: ").append(toIndentedString(generalBalanceValidGrantCommon)).append("\n");
    sb.append("    generalBalanceValidGrantDefault: ").append(toIndentedString(generalBalanceValidGrantDefault)).append("\n");
    sb.append("    generalBalanceValidGrantSearch: ").append(toIndentedString(generalBalanceValidGrantSearch)).append("\n");
    sb.append("    generalBalanceValidGrantUnion: ").append(toIndentedString(generalBalanceValidGrantUnion)).append("\n");
    sb.append("    generalBalanceValidNonGrant: ").append(toIndentedString(generalBalanceValidNonGrant)).append("\n");
    sb.append("    generalTotalBalance: ").append(toIndentedString(generalTotalBalance)).append("\n");
    sb.append("    grantBalance: ").append(toIndentedString(grantBalance)).append("\n");
    sb.append("    grantExpiring: ").append(toIndentedString(grantExpiring)).append("\n");
    sb.append("    searchValidGrantBalance: ").append(toIndentedString(searchValidGrantBalance)).append("\n");
    sb.append("    shareBalance: ").append(toIndentedString(shareBalance)).append("\n");
    sb.append("    shareBalanceExpiring: ").append(toIndentedString(shareBalanceExpiring)).append("\n");
    sb.append("    shareBalanceValid: ").append(toIndentedString(shareBalanceValid)).append("\n");
    sb.append("    shareBalanceValidGrantCommon: ").append(toIndentedString(shareBalanceValidGrantCommon)).append("\n");
    sb.append("    shareBalanceValidGrantDefault: ").append(toIndentedString(shareBalanceValidGrantDefault)).append("\n");
    sb.append("    shareBalanceValidGrantSearch: ").append(toIndentedString(shareBalanceValidGrantSearch)).append("\n");
    sb.append("    shareBalanceValidGrantUnion: ").append(toIndentedString(shareBalanceValidGrantUnion)).append("\n");
    sb.append("    shareExpiringDetailList: ").append(toIndentedString(shareExpiringDetailList)).append("\n");
    sb.append("    totalBalanceAbs: ").append(toIndentedString(totalBalanceAbs)).append("\n");
    sb.append("    unionValidGrantBalance: ").append(toIndentedString(unionValidGrantBalance)).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("brand_balance");
    openapiFields.add("brand_balance_invalid");
    openapiFields.add("brand_balance_invalid_frozen");
    openapiFields.add("brand_balance_valid");
    openapiFields.add("brand_balance_valid_grant");
    openapiFields.add("brand_balance_valid_non_grant");
    openapiFields.add("common_valid_grant_balance");
    openapiFields.add("deduction_coupon_balance");
    openapiFields.add("deduction_coupon_balance_all");
    openapiFields.add("deduction_coupon_balance_other");
    openapiFields.add("deduction_coupon_balance_self");
    openapiFields.add("default_valid_grant_balance");
    openapiFields.add("general_balance_invalid");
    openapiFields.add("general_balance_invalid_frozen");
    openapiFields.add("general_balance_invalid_order");
    openapiFields.add("general_balance_valid");
    openapiFields.add("general_balance_valid_grant_common");
    openapiFields.add("general_balance_valid_grant_default");
    openapiFields.add("general_balance_valid_grant_search");
    openapiFields.add("general_balance_valid_grant_union");
    openapiFields.add("general_balance_valid_non_grant");
    openapiFields.add("general_total_balance");
    openapiFields.add("grant_balance");
    openapiFields.add("grant_expiring");
    openapiFields.add("search_valid_grant_balance");
    openapiFields.add("share_balance");
    openapiFields.add("share_balance_expiring");
    openapiFields.add("share_balance_valid");
    openapiFields.add("share_balance_valid_grant_common");
    openapiFields.add("share_balance_valid_grant_default");
    openapiFields.add("share_balance_valid_grant_search");
    openapiFields.add("share_balance_valid_grant_union");
    openapiFields.add("share_expiring_detail_list");
    openapiFields.add("total_balance_abs");
    openapiFields.add("union_valid_grant_balance");

    // 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 (!QianchuanFinanceWalletGetV10ResponseData.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'QianchuanFinanceWalletGetV10ResponseData' and its subtypes
       }
       final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter<QianchuanFinanceWalletGetV10ResponseData> thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(QianchuanFinanceWalletGetV10ResponseData.class));

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

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

       }.nullSafe();
    }
  }

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

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

