/*
 * 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.AgentAdvCostReportListQueryV2DataListAppName;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListBusinessType;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListCashbackType;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListCostSource;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListCpt;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListEcommerceType;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListFeedslive;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListIsMatchingProvince;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListPricingCategory;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListSettlementStatsType;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListSpuLabelName;
import com.bytedance.ads.model.AgentAdvCostReportListQueryV2DataListSystemOrigin;
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;

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

  public static final String SERIALIZED_NAME_ADV_NAME = "adv_name";
  @SerializedName(SERIALIZED_NAME_ADV_NAME)
  private String advName = null;

  public static final String SERIALIZED_NAME_AGENT_ID = "agent_id";
  @SerializedName(SERIALIZED_NAME_AGENT_ID)
  private Long agentId = null;

  public static final String SERIALIZED_NAME_AGENT_NAME = "agent_name";
  @SerializedName(SERIALIZED_NAME_AGENT_NAME)
  private String agentName = null;

  public static final String SERIALIZED_NAME_AGENT_PERFORMANCE_COST = "agent_performance_cost";
  @SerializedName(SERIALIZED_NAME_AGENT_PERFORMANCE_COST)
  private Long agentPerformanceCost = null;

  public static final String SERIALIZED_NAME_AGENT_PERFORMANCE_GRANT_COST = "agent_performance_grant_cost";
  @SerializedName(SERIALIZED_NAME_AGENT_PERFORMANCE_GRANT_COST)
  private Long agentPerformanceGrantCost = null;

  public static final String SERIALIZED_NAME_APP_NAME = "app_name";
  @SerializedName(SERIALIZED_NAME_APP_NAME)
  private AgentAdvCostReportListQueryV2DataListAppName appName = null;

  public static final String SERIALIZED_NAME_ATTRIBUTION_DATE = "attribution_date";
  @SerializedName(SERIALIZED_NAME_ATTRIBUTION_DATE)
  private String attributionDate = null;

  public static final String SERIALIZED_NAME_BRAND_PRODUCT_SECOND_TYPE = "brand_product_second_type";
  @SerializedName(SERIALIZED_NAME_BRAND_PRODUCT_SECOND_TYPE)
  private Long brandProductSecondType = null;

  public static final String SERIALIZED_NAME_BRAND_PRODUCT_SECOND_TYPE_NAME = "brand_product_second_type_name";
  @SerializedName(SERIALIZED_NAME_BRAND_PRODUCT_SECOND_TYPE_NAME)
  private String brandProductSecondTypeName = null;

  public static final String SERIALIZED_NAME_BUSINESS_TYPE = "business_type";
  @SerializedName(SERIALIZED_NAME_BUSINESS_TYPE)
  private AgentAdvCostReportListQueryV2DataListBusinessType businessType = null;

  public static final String SERIALIZED_NAME_BUSINESS_TYPE_NAME = "business_type_name";
  @SerializedName(SERIALIZED_NAME_BUSINESS_TYPE_NAME)
  private String businessTypeName = null;

  public static final String SERIALIZED_NAME_CASHBACK_TYPE = "cashback_type";
  @SerializedName(SERIALIZED_NAME_CASHBACK_TYPE)
  private AgentAdvCostReportListQueryV2DataListCashbackType cashbackType = null;

  public static final String SERIALIZED_NAME_CASHBACK_TYPE_NAME = "cashback_type_name";
  @SerializedName(SERIALIZED_NAME_CASHBACK_TYPE_NAME)
  private String cashbackTypeName = null;

  public static final String SERIALIZED_NAME_COST = "cost";
  @SerializedName(SERIALIZED_NAME_COST)
  private Long cost = null;

  public static final String SERIALIZED_NAME_COST_SOURCE = "cost_source";
  @SerializedName(SERIALIZED_NAME_COST_SOURCE)
  private AgentAdvCostReportListQueryV2DataListCostSource costSource = null;

  public static final String SERIALIZED_NAME_COST_SOURCE_NAME = "cost_source_name";
  @SerializedName(SERIALIZED_NAME_COST_SOURCE_NAME)
  private String costSourceName = null;

  public static final String SERIALIZED_NAME_CPT = "cpt";
  @SerializedName(SERIALIZED_NAME_CPT)
  private AgentAdvCostReportListQueryV2DataListCpt cpt = null;

  public static final String SERIALIZED_NAME_CPT_NAME = "cpt_name";
  @SerializedName(SERIALIZED_NAME_CPT_NAME)
  private String cptName = null;

  public static final String SERIALIZED_NAME_CREDIT_COST = "credit_cost";
  @SerializedName(SERIALIZED_NAME_CREDIT_COST)
  private Long creditCost = null;

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

  public static final String SERIALIZED_NAME_CUSTOMER_NAME = "customer_name";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_NAME)
  private String customerName = null;

  public static final String SERIALIZED_NAME_CUSTOMER_PERFORMANCE_GRANT_COST = "customer_performance_grant_cost";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_PERFORMANCE_GRANT_COST)
  private Long customerPerformanceGrantCost = null;

  public static final String SERIALIZED_NAME_ECOMMERCE_TYPE = "ecommerce_type";
  @SerializedName(SERIALIZED_NAME_ECOMMERCE_TYPE)
  private AgentAdvCostReportListQueryV2DataListEcommerceType ecommerceType = null;

  public static final String SERIALIZED_NAME_FEEDSLIVE = "feedslive";
  @SerializedName(SERIALIZED_NAME_FEEDSLIVE)
  private AgentAdvCostReportListQueryV2DataListFeedslive feedslive = null;

  public static final String SERIALIZED_NAME_FEEDSLIVE_NAME = "feedslive_name";
  @SerializedName(SERIALIZED_NAME_FEEDSLIVE_NAME)
  private String feedsliveName = null;

  public static final String SERIALIZED_NAME_FIRST_AGENT_ID = "first_agent_id";
  @SerializedName(SERIALIZED_NAME_FIRST_AGENT_ID)
  private Long firstAgentId = null;

  public static final String SERIALIZED_NAME_FIRST_AGENT_NAME = "first_agent_name";
  @SerializedName(SERIALIZED_NAME_FIRST_AGENT_NAME)
  private String firstAgentName = null;

  public static final String SERIALIZED_NAME_FIRST_INDUSTRY = "first_industry";
  @SerializedName(SERIALIZED_NAME_FIRST_INDUSTRY)
  private String firstIndustry = null;

  public static final String SERIALIZED_NAME_GRANT_COST = "grant_cost";
  @SerializedName(SERIALIZED_NAME_GRANT_COST)
  private Long grantCost = null;

  public static final String SERIALIZED_NAME_IS_MATCHING_PROVINCE = "is_matching_province";
  @SerializedName(SERIALIZED_NAME_IS_MATCHING_PROVINCE)
  private AgentAdvCostReportListQueryV2DataListIsMatchingProvince isMatchingProvince = null;

  public static final String SERIALIZED_NAME_NO_GRANT_COST = "no_grant_cost";
  @SerializedName(SERIALIZED_NAME_NO_GRANT_COST)
  private Long noGrantCost = null;

  public static final String SERIALIZED_NAME_PREPAY_COST = "prepay_cost";
  @SerializedName(SERIALIZED_NAME_PREPAY_COST)
  private Long prepayCost = null;

  public static final String SERIALIZED_NAME_PRICING_CATEGORY = "pricing_category";
  @SerializedName(SERIALIZED_NAME_PRICING_CATEGORY)
  private AgentAdvCostReportListQueryV2DataListPricingCategory pricingCategory = null;

  public static final String SERIALIZED_NAME_PRICING_CATEGORY_NAME = "pricing_category_name";
  @SerializedName(SERIALIZED_NAME_PRICING_CATEGORY_NAME)
  private String pricingCategoryName = null;

  public static final String SERIALIZED_NAME_PROJECT_NAME = "project_name";
  @SerializedName(SERIALIZED_NAME_PROJECT_NAME)
  private String projectName = null;

  public static final String SERIALIZED_NAME_PROJECT_SERIAL = "project_serial";
  @SerializedName(SERIALIZED_NAME_PROJECT_SERIAL)
  private String projectSerial = null;

  public static final String SERIALIZED_NAME_PROMOTION_TYPE = "promotion_type";
  @SerializedName(SERIALIZED_NAME_PROMOTION_TYPE)
  private Long promotionType = null;

  public static final String SERIALIZED_NAME_REGISTER_TIME = "register_time";
  @SerializedName(SERIALIZED_NAME_REGISTER_TIME)
  private String registerTime = null;

  public static final String SERIALIZED_NAME_SALE_ID = "sale_id";
  @SerializedName(SERIALIZED_NAME_SALE_ID)
  private Long saleId = null;

  public static final String SERIALIZED_NAME_SALE_NAME = "sale_name";
  @SerializedName(SERIALIZED_NAME_SALE_NAME)
  private String saleName = null;

  public static final String SERIALIZED_NAME_SECOND_AGENT_ID = "second_agent_id";
  @SerializedName(SERIALIZED_NAME_SECOND_AGENT_ID)
  private Long secondAgentId = null;

  public static final String SERIALIZED_NAME_SECOND_AGENT_NAME = "second_agent_name";
  @SerializedName(SERIALIZED_NAME_SECOND_AGENT_NAME)
  private String secondAgentName = null;

  public static final String SERIALIZED_NAME_SECOND_INDUSTRY = "second_industry";
  @SerializedName(SERIALIZED_NAME_SECOND_INDUSTRY)
  private String secondIndustry = null;

  public static final String SERIALIZED_NAME_SETTLEMENT_FIRST_INDUSTRY_NAME = "settlement_first_industry_name";
  @SerializedName(SERIALIZED_NAME_SETTLEMENT_FIRST_INDUSTRY_NAME)
  private String settlementFirstIndustryName = null;

  public static final String SERIALIZED_NAME_SETTLEMENT_INTERNAL_INDUSTRY_CATEGORY = "settlement_internal_industry_category";
  @SerializedName(SERIALIZED_NAME_SETTLEMENT_INTERNAL_INDUSTRY_CATEGORY)
  private String settlementInternalIndustryCategory = null;

  public static final String SERIALIZED_NAME_SETTLEMENT_SECOND_INDUSTRY_NAME = "settlement_second_industry_name";
  @SerializedName(SERIALIZED_NAME_SETTLEMENT_SECOND_INDUSTRY_NAME)
  private String settlementSecondIndustryName = null;

  public static final String SERIALIZED_NAME_SETTLEMENT_STATS_TYPE = "settlement_stats_type";
  @SerializedName(SERIALIZED_NAME_SETTLEMENT_STATS_TYPE)
  private AgentAdvCostReportListQueryV2DataListSettlementStatsType settlementStatsType = null;

  public static final String SERIALIZED_NAME_SPU_ID = "spu_id";
  @SerializedName(SERIALIZED_NAME_SPU_ID)
  private Long spuId = null;

  public static final String SERIALIZED_NAME_SPU_LABEL_NAME = "spu_label_name";
  @SerializedName(SERIALIZED_NAME_SPU_LABEL_NAME)
  private AgentAdvCostReportListQueryV2DataListSpuLabelName spuLabelName = null;

  public static final String SERIALIZED_NAME_SPU_NAME = "spu_name";
  @SerializedName(SERIALIZED_NAME_SPU_NAME)
  private String spuName = null;

  public static final String SERIALIZED_NAME_SUB_SHARED_WALLET_COST = "sub_shared_wallet_cost";
  @SerializedName(SERIALIZED_NAME_SUB_SHARED_WALLET_COST)
  private Long subSharedWalletCost = null;

  public static final String SERIALIZED_NAME_SUB_SHARED_WALLET_CREDIT_COST = "sub_shared_wallet_credit_cost";
  @SerializedName(SERIALIZED_NAME_SUB_SHARED_WALLET_CREDIT_COST)
  private Long subSharedWalletCreditCost = null;

  public static final String SERIALIZED_NAME_SUB_SHARED_WALLET_ID = "sub_shared_wallet_id";
  @SerializedName(SERIALIZED_NAME_SUB_SHARED_WALLET_ID)
  private Long subSharedWalletId = null;

  public static final String SERIALIZED_NAME_SUB_SHARED_WALLET_NAME = "sub_shared_wallet_name";
  @SerializedName(SERIALIZED_NAME_SUB_SHARED_WALLET_NAME)
  private String subSharedWalletName = null;

  public static final String SERIALIZED_NAME_SUB_SHARED_WALLET_PREPAY_COST = "sub_shared_wallet_prepay_cost";
  @SerializedName(SERIALIZED_NAME_SUB_SHARED_WALLET_PREPAY_COST)
  private Long subSharedWalletPrepayCost = null;

  public static final String SERIALIZED_NAME_SYSTEM_ORIGIN = "system_origin";
  @SerializedName(SERIALIZED_NAME_SYSTEM_ORIGIN)
  private AgentAdvCostReportListQueryV2DataListSystemOrigin systemOrigin = null;

  public AgentAdvCostReportListQueryV2ResponseDataListInner() {
  }

  public AgentAdvCostReportListQueryV2ResponseDataListInner advId(Long advId) {
    
    this.advId = advId;
    return this;
  }

   /**
   * 账户ID
   * @return advId
  **/
  @javax.annotation.Nullable
  public Long getAdvId() {
    return advId;
  }


  public void setAdvId(Long advId) {
    this.advId = advId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner advName(String advName) {
    
    this.advName = advName;
    return this;
  }

   /**
   * 账户名称
   * @return advName
  **/
  @javax.annotation.Nullable
  public String getAdvName() {
    return advName;
  }


  public void setAdvName(String advName) {
    this.advName = advName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner agentId(Long agentId) {
    
    this.agentId = agentId;
    return this;
  }

   /**
   * 代理商客户ID
   * @return agentId
  **/
  @javax.annotation.Nullable
  public Long getAgentId() {
    return agentId;
  }


  public void setAgentId(Long agentId) {
    this.agentId = agentId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner agentName(String agentName) {
    
    this.agentName = agentName;
    return this;
  }

   /**
   * 代理商客户名称
   * @return agentName
  **/
  @javax.annotation.Nullable
  public String getAgentName() {
    return agentName;
  }


  public void setAgentName(String agentName) {
    this.agentName = agentName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner agentPerformanceCost(Long agentPerformanceCost) {
    
    this.agentPerformanceCost = agentPerformanceCost;
    return this;
  }

   /**
   * 代理商业绩消耗(单位：千分之一分)
   * @return agentPerformanceCost
  **/
  @javax.annotation.Nullable
  public Long getAgentPerformanceCost() {
    return agentPerformanceCost;
  }


  public void setAgentPerformanceCost(Long agentPerformanceCost) {
    this.agentPerformanceCost = agentPerformanceCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner agentPerformanceGrantCost(Long agentPerformanceGrantCost) {
    
    this.agentPerformanceGrantCost = agentPerformanceGrantCost;
    return this;
  }

   /**
   * 赠款消耗（计返点）(单位：千分之一分)
   * @return agentPerformanceGrantCost
  **/
  @javax.annotation.Nullable
  public Long getAgentPerformanceGrantCost() {
    return agentPerformanceGrantCost;
  }


  public void setAgentPerformanceGrantCost(Long agentPerformanceGrantCost) {
    this.agentPerformanceGrantCost = agentPerformanceGrantCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner appName(AgentAdvCostReportListQueryV2DataListAppName appName) {
    
    this.appName = appName;
    return this;
  }

   /**
   * Get appName
   * @return appName
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListAppName getAppName() {
    return appName;
  }


  public void setAppName(AgentAdvCostReportListQueryV2DataListAppName appName) {
    this.appName = appName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner attributionDate(String attributionDate) {
    
    this.attributionDate = attributionDate;
    return this;
  }

   /**
   * 时间(格式：YYYY-MM-DD)
   * @return attributionDate
  **/
  @javax.annotation.Nullable
  public String getAttributionDate() {
    return attributionDate;
  }


  public void setAttributionDate(String attributionDate) {
    this.attributionDate = attributionDate;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner brandProductSecondType(Long brandProductSecondType) {
    
    this.brandProductSecondType = brandProductSecondType;
    return this;
  }

   /**
   * 品牌二级类别code
   * @return brandProductSecondType
  **/
  @javax.annotation.Nullable
  public Long getBrandProductSecondType() {
    return brandProductSecondType;
  }


  public void setBrandProductSecondType(Long brandProductSecondType) {
    this.brandProductSecondType = brandProductSecondType;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner brandProductSecondTypeName(String brandProductSecondTypeName) {
    
    this.brandProductSecondTypeName = brandProductSecondTypeName;
    return this;
  }

   /**
   * 品牌二级类别名称
   * @return brandProductSecondTypeName
  **/
  @javax.annotation.Nullable
  public String getBrandProductSecondTypeName() {
    return brandProductSecondTypeName;
  }


  public void setBrandProductSecondTypeName(String brandProductSecondTypeName) {
    this.brandProductSecondTypeName = brandProductSecondTypeName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner businessType(AgentAdvCostReportListQueryV2DataListBusinessType businessType) {
    
    this.businessType = businessType;
    return this;
  }

   /**
   * Get businessType
   * @return businessType
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListBusinessType getBusinessType() {
    return businessType;
  }


  public void setBusinessType(AgentAdvCostReportListQueryV2DataListBusinessType businessType) {
    this.businessType = businessType;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner businessTypeName(String businessTypeName) {
    
    this.businessTypeName = businessTypeName;
    return this;
  }

   /**
   * 业务来源名称
   * @return businessTypeName
  **/
  @javax.annotation.Nullable
  public String getBusinessTypeName() {
    return businessTypeName;
  }


  public void setBusinessTypeName(String businessTypeName) {
    this.businessTypeName = businessTypeName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner cashbackType(AgentAdvCostReportListQueryV2DataListCashbackType cashbackType) {
    
    this.cashbackType = cashbackType;
    return this;
  }

   /**
   * Get cashbackType
   * @return cashbackType
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListCashbackType getCashbackType() {
    return cashbackType;
  }


  public void setCashbackType(AgentAdvCostReportListQueryV2DataListCashbackType cashbackType) {
    this.cashbackType = cashbackType;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner cashbackTypeName(String cashbackTypeName) {
    
    this.cashbackTypeName = cashbackTypeName;
    return this;
  }

   /**
   * 资源包类型名称
   * @return cashbackTypeName
  **/
  @javax.annotation.Nullable
  public String getCashbackTypeName() {
    return cashbackTypeName;
  }


  public void setCashbackTypeName(String cashbackTypeName) {
    this.cashbackTypeName = cashbackTypeName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner cost(Long cost) {
    
    this.cost = cost;
    return this;
  }

   /**
   * 总消耗(单位：千分之一分)
   * @return cost
  **/
  @javax.annotation.Nullable
  public Long getCost() {
    return cost;
  }


  public void setCost(Long cost) {
    this.cost = cost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner costSource(AgentAdvCostReportListQueryV2DataListCostSource costSource) {
    
    this.costSource = costSource;
    return this;
  }

   /**
   * Get costSource
   * @return costSource
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListCostSource getCostSource() {
    return costSource;
  }


  public void setCostSource(AgentAdvCostReportListQueryV2DataListCostSource costSource) {
    this.costSource = costSource;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner costSourceName(String costSourceName) {
    
    this.costSourceName = costSourceName;
    return this;
  }

   /**
   * 消耗来源名称
   * @return costSourceName
  **/
  @javax.annotation.Nullable
  public String getCostSourceName() {
    return costSourceName;
  }


  public void setCostSourceName(String costSourceName) {
    this.costSourceName = costSourceName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner cpt(AgentAdvCostReportListQueryV2DataListCpt cpt) {
    
    this.cpt = cpt;
    return this;
  }

   /**
   * Get cpt
   * @return cpt
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListCpt getCpt() {
    return cpt;
  }


  public void setCpt(AgentAdvCostReportListQueryV2DataListCpt cpt) {
    this.cpt = cpt;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner cptName(String cptName) {
    
    this.cptName = cptName;
    return this;
  }

   /**
   * 是否CPT描述
   * @return cptName
  **/
  @javax.annotation.Nullable
  public String getCptName() {
    return cptName;
  }


  public void setCptName(String cptName) {
    this.cptName = cptName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner creditCost(Long creditCost) {
    
    this.creditCost = creditCost;
    return this;
  }

   /**
   * 授信消耗(单位：千分之一分)
   * @return creditCost
  **/
  @javax.annotation.Nullable
  public Long getCreditCost() {
    return creditCost;
  }


  public void setCreditCost(Long creditCost) {
    this.creditCost = creditCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner customerId(Long customerId) {
    
    this.customerId = customerId;
    return this;
  }

   /**
   * 广告主客户ID
   * @return customerId
  **/
  @javax.annotation.Nullable
  public Long getCustomerId() {
    return customerId;
  }


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


  public AgentAdvCostReportListQueryV2ResponseDataListInner customerName(String customerName) {
    
    this.customerName = customerName;
    return this;
  }

   /**
   * 广告主客户名称
   * @return customerName
  **/
  @javax.annotation.Nullable
  public String getCustomerName() {
    return customerName;
  }


  public void setCustomerName(String customerName) {
    this.customerName = customerName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner customerPerformanceGrantCost(Long customerPerformanceGrantCost) {
    
    this.customerPerformanceGrantCost = customerPerformanceGrantCost;
    return this;
  }

   /**
   * 赠款消耗（计返货）(单位：千分之一分)
   * @return customerPerformanceGrantCost
  **/
  @javax.annotation.Nullable
  public Long getCustomerPerformanceGrantCost() {
    return customerPerformanceGrantCost;
  }


  public void setCustomerPerformanceGrantCost(Long customerPerformanceGrantCost) {
    this.customerPerformanceGrantCost = customerPerformanceGrantCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner ecommerceType(AgentAdvCostReportListQueryV2DataListEcommerceType ecommerceType) {
    
    this.ecommerceType = ecommerceType;
    return this;
  }

   /**
   * Get ecommerceType
   * @return ecommerceType
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListEcommerceType getEcommerceType() {
    return ecommerceType;
  }


  public void setEcommerceType(AgentAdvCostReportListQueryV2DataListEcommerceType ecommerceType) {
    this.ecommerceType = ecommerceType;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner feedslive(AgentAdvCostReportListQueryV2DataListFeedslive feedslive) {
    
    this.feedslive = feedslive;
    return this;
  }

   /**
   * Get feedslive
   * @return feedslive
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListFeedslive getFeedslive() {
    return feedslive;
  }


  public void setFeedslive(AgentAdvCostReportListQueryV2DataListFeedslive feedslive) {
    this.feedslive = feedslive;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner feedsliveName(String feedsliveName) {
    
    this.feedsliveName = feedsliveName;
    return this;
  }

   /**
   * 是否FeedsLive描述
   * @return feedsliveName
  **/
  @javax.annotation.Nullable
  public String getFeedsliveName() {
    return feedsliveName;
  }


  public void setFeedsliveName(String feedsliveName) {
    this.feedsliveName = feedsliveName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner firstAgentId(Long firstAgentId) {
    
    this.firstAgentId = firstAgentId;
    return this;
  }

   /**
   * 一级代理商账户ID
   * @return firstAgentId
  **/
  @javax.annotation.Nullable
  public Long getFirstAgentId() {
    return firstAgentId;
  }


  public void setFirstAgentId(Long firstAgentId) {
    this.firstAgentId = firstAgentId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner firstAgentName(String firstAgentName) {
    
    this.firstAgentName = firstAgentName;
    return this;
  }

   /**
   * 一级代理商账户名称
   * @return firstAgentName
  **/
  @javax.annotation.Nullable
  public String getFirstAgentName() {
    return firstAgentName;
  }


  public void setFirstAgentName(String firstAgentName) {
    this.firstAgentName = firstAgentName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner firstIndustry(String firstIndustry) {
    
    this.firstIndustry = firstIndustry;
    return this;
  }

   /**
   * 客户一级行业
   * @return firstIndustry
  **/
  @javax.annotation.Nullable
  public String getFirstIndustry() {
    return firstIndustry;
  }


  public void setFirstIndustry(String firstIndustry) {
    this.firstIndustry = firstIndustry;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner grantCost(Long grantCost) {
    
    this.grantCost = grantCost;
    return this;
  }

   /**
   * 赠款消耗(单位：千分之一分)
   * @return grantCost
  **/
  @javax.annotation.Nullable
  public Long getGrantCost() {
    return grantCost;
  }


  public void setGrantCost(Long grantCost) {
    this.grantCost = grantCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner isMatchingProvince(AgentAdvCostReportListQueryV2DataListIsMatchingProvince isMatchingProvince) {
    
    this.isMatchingProvince = isMatchingProvince;
    return this;
  }

   /**
   * Get isMatchingProvince
   * @return isMatchingProvince
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListIsMatchingProvince getIsMatchingProvince() {
    return isMatchingProvince;
  }


  public void setIsMatchingProvince(AgentAdvCostReportListQueryV2DataListIsMatchingProvince isMatchingProvince) {
    this.isMatchingProvince = isMatchingProvince;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner noGrantCost(Long noGrantCost) {
    
    this.noGrantCost = noGrantCost;
    return this;
  }

   /**
   * 非赠款消耗(单位：千分之一分)
   * @return noGrantCost
  **/
  @javax.annotation.Nullable
  public Long getNoGrantCost() {
    return noGrantCost;
  }


  public void setNoGrantCost(Long noGrantCost) {
    this.noGrantCost = noGrantCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner prepayCost(Long prepayCost) {
    
    this.prepayCost = prepayCost;
    return this;
  }

   /**
   * 预付消耗(单位：千分之一分)
   * @return prepayCost
  **/
  @javax.annotation.Nullable
  public Long getPrepayCost() {
    return prepayCost;
  }


  public void setPrepayCost(Long prepayCost) {
    this.prepayCost = prepayCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner pricingCategory(AgentAdvCostReportListQueryV2DataListPricingCategory pricingCategory) {
    
    this.pricingCategory = pricingCategory;
    return this;
  }

   /**
   * Get pricingCategory
   * @return pricingCategory
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListPricingCategory getPricingCategory() {
    return pricingCategory;
  }


  public void setPricingCategory(AgentAdvCostReportListQueryV2DataListPricingCategory pricingCategory) {
    this.pricingCategory = pricingCategory;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner pricingCategoryName(String pricingCategoryName) {
    
    this.pricingCategoryName = pricingCategoryName;
    return this;
  }

   /**
   * 广告类型名称
   * @return pricingCategoryName
  **/
  @javax.annotation.Nullable
  public String getPricingCategoryName() {
    return pricingCategoryName;
  }


  public void setPricingCategoryName(String pricingCategoryName) {
    this.pricingCategoryName = pricingCategoryName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner projectName(String projectName) {
    
    this.projectName = projectName;
    return this;
  }

   /**
   * 项目名称
   * @return projectName
  **/
  @javax.annotation.Nullable
  public String getProjectName() {
    return projectName;
  }


  public void setProjectName(String projectName) {
    this.projectName = projectName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner projectSerial(String projectSerial) {
    
    this.projectSerial = projectSerial;
    return this;
  }

   /**
   * 项目编号
   * @return projectSerial
  **/
  @javax.annotation.Nullable
  public String getProjectSerial() {
    return projectSerial;
  }


  public void setProjectSerial(String projectSerial) {
    this.projectSerial = projectSerial;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner promotionType(Long promotionType) {
    
    this.promotionType = promotionType;
    return this;
  }

   /**
   * 推广形式(1: 直播计划, 2: 非直播计划)
   * @return promotionType
  **/
  @javax.annotation.Nullable
  public Long getPromotionType() {
    return promotionType;
  }


  public void setPromotionType(Long promotionType) {
    this.promotionType = promotionType;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner registerTime(String registerTime) {
    
    this.registerTime = registerTime;
    return this;
  }

   /**
   * 注册时间(格式：YYYY-MM-DD HH:MM:SS)
   * @return registerTime
  **/
  @javax.annotation.Nullable
  public String getRegisterTime() {
    return registerTime;
  }


  public void setRegisterTime(String registerTime) {
    this.registerTime = registerTime;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner saleId(Long saleId) {
    
    this.saleId = saleId;
    return this;
  }

   /**
   * 销售ID
   * @return saleId
  **/
  @javax.annotation.Nullable
  public Long getSaleId() {
    return saleId;
  }


  public void setSaleId(Long saleId) {
    this.saleId = saleId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner saleName(String saleName) {
    
    this.saleName = saleName;
    return this;
  }

   /**
   * 销售名称
   * @return saleName
  **/
  @javax.annotation.Nullable
  public String getSaleName() {
    return saleName;
  }


  public void setSaleName(String saleName) {
    this.saleName = saleName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner secondAgentId(Long secondAgentId) {
    
    this.secondAgentId = secondAgentId;
    return this;
  }

   /**
   * 代理商子账户ID
   * @return secondAgentId
  **/
  @javax.annotation.Nullable
  public Long getSecondAgentId() {
    return secondAgentId;
  }


  public void setSecondAgentId(Long secondAgentId) {
    this.secondAgentId = secondAgentId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner secondAgentName(String secondAgentName) {
    
    this.secondAgentName = secondAgentName;
    return this;
  }

   /**
   * 代理商子账户名称
   * @return secondAgentName
  **/
  @javax.annotation.Nullable
  public String getSecondAgentName() {
    return secondAgentName;
  }


  public void setSecondAgentName(String secondAgentName) {
    this.secondAgentName = secondAgentName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner secondIndustry(String secondIndustry) {
    
    this.secondIndustry = secondIndustry;
    return this;
  }

   /**
   * 客户二级行业
   * @return secondIndustry
  **/
  @javax.annotation.Nullable
  public String getSecondIndustry() {
    return secondIndustry;
  }


  public void setSecondIndustry(String secondIndustry) {
    this.secondIndustry = secondIndustry;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner settlementFirstIndustryName(String settlementFirstIndustryName) {
    
    this.settlementFirstIndustryName = settlementFirstIndustryName;
    return this;
  }

   /**
   * 当月结算一级行业
   * @return settlementFirstIndustryName
  **/
  @javax.annotation.Nullable
  public String getSettlementFirstIndustryName() {
    return settlementFirstIndustryName;
  }


  public void setSettlementFirstIndustryName(String settlementFirstIndustryName) {
    this.settlementFirstIndustryName = settlementFirstIndustryName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner settlementInternalIndustryCategory(String settlementInternalIndustryCategory) {
    
    this.settlementInternalIndustryCategory = settlementInternalIndustryCategory;
    return this;
  }

   /**
   * 结算行业内部行业分类
   * @return settlementInternalIndustryCategory
  **/
  @javax.annotation.Nullable
  public String getSettlementInternalIndustryCategory() {
    return settlementInternalIndustryCategory;
  }


  public void setSettlementInternalIndustryCategory(String settlementInternalIndustryCategory) {
    this.settlementInternalIndustryCategory = settlementInternalIndustryCategory;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner settlementSecondIndustryName(String settlementSecondIndustryName) {
    
    this.settlementSecondIndustryName = settlementSecondIndustryName;
    return this;
  }

   /**
   * 当月结算二级行业
   * @return settlementSecondIndustryName
  **/
  @javax.annotation.Nullable
  public String getSettlementSecondIndustryName() {
    return settlementSecondIndustryName;
  }


  public void setSettlementSecondIndustryName(String settlementSecondIndustryName) {
    this.settlementSecondIndustryName = settlementSecondIndustryName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner settlementStatsType(AgentAdvCostReportListQueryV2DataListSettlementStatsType settlementStatsType) {
    
    this.settlementStatsType = settlementStatsType;
    return this;
  }

   /**
   * Get settlementStatsType
   * @return settlementStatsType
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListSettlementStatsType getSettlementStatsType() {
    return settlementStatsType;
  }


  public void setSettlementStatsType(AgentAdvCostReportListQueryV2DataListSettlementStatsType settlementStatsType) {
    this.settlementStatsType = settlementStatsType;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner spuId(Long spuId) {
    
    this.spuId = spuId;
    return this;
  }

   /**
   * 商品ID
   * @return spuId
  **/
  @javax.annotation.Nullable
  public Long getSpuId() {
    return spuId;
  }


  public void setSpuId(Long spuId) {
    this.spuId = spuId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner spuLabelName(AgentAdvCostReportListQueryV2DataListSpuLabelName spuLabelName) {
    
    this.spuLabelName = spuLabelName;
    return this;
  }

   /**
   * Get spuLabelName
   * @return spuLabelName
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListSpuLabelName getSpuLabelName() {
    return spuLabelName;
  }


  public void setSpuLabelName(AgentAdvCostReportListQueryV2DataListSpuLabelName spuLabelName) {
    this.spuLabelName = spuLabelName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner spuName(String spuName) {
    
    this.spuName = spuName;
    return this;
  }

   /**
   * 商品名称
   * @return spuName
  **/
  @javax.annotation.Nullable
  public String getSpuName() {
    return spuName;
  }


  public void setSpuName(String spuName) {
    this.spuName = spuName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner subSharedWalletCost(Long subSharedWalletCost) {
    
    this.subSharedWalletCost = subSharedWalletCost;
    return this;
  }

   /**
   * 共享钱包消耗(单位：千分之一分)
   * @return subSharedWalletCost
  **/
  @javax.annotation.Nullable
  public Long getSubSharedWalletCost() {
    return subSharedWalletCost;
  }


  public void setSubSharedWalletCost(Long subSharedWalletCost) {
    this.subSharedWalletCost = subSharedWalletCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner subSharedWalletCreditCost(Long subSharedWalletCreditCost) {
    
    this.subSharedWalletCreditCost = subSharedWalletCreditCost;
    return this;
  }

   /**
   * 共享授信消耗(单位：千分之一分)
   * @return subSharedWalletCreditCost
  **/
  @javax.annotation.Nullable
  public Long getSubSharedWalletCreditCost() {
    return subSharedWalletCreditCost;
  }


  public void setSubSharedWalletCreditCost(Long subSharedWalletCreditCost) {
    this.subSharedWalletCreditCost = subSharedWalletCreditCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner subSharedWalletId(Long subSharedWalletId) {
    
    this.subSharedWalletId = subSharedWalletId;
    return this;
  }

   /**
   * 共享子钱包ID
   * @return subSharedWalletId
  **/
  @javax.annotation.Nullable
  public Long getSubSharedWalletId() {
    return subSharedWalletId;
  }


  public void setSubSharedWalletId(Long subSharedWalletId) {
    this.subSharedWalletId = subSharedWalletId;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner subSharedWalletName(String subSharedWalletName) {
    
    this.subSharedWalletName = subSharedWalletName;
    return this;
  }

   /**
   * 共享子钱包名称
   * @return subSharedWalletName
  **/
  @javax.annotation.Nullable
  public String getSubSharedWalletName() {
    return subSharedWalletName;
  }


  public void setSubSharedWalletName(String subSharedWalletName) {
    this.subSharedWalletName = subSharedWalletName;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner subSharedWalletPrepayCost(Long subSharedWalletPrepayCost) {
    
    this.subSharedWalletPrepayCost = subSharedWalletPrepayCost;
    return this;
  }

   /**
   * 共享预付消耗(单位：千分之一分)
   * @return subSharedWalletPrepayCost
  **/
  @javax.annotation.Nullable
  public Long getSubSharedWalletPrepayCost() {
    return subSharedWalletPrepayCost;
  }


  public void setSubSharedWalletPrepayCost(Long subSharedWalletPrepayCost) {
    this.subSharedWalletPrepayCost = subSharedWalletPrepayCost;
  }


  public AgentAdvCostReportListQueryV2ResponseDataListInner systemOrigin(AgentAdvCostReportListQueryV2DataListSystemOrigin systemOrigin) {
    
    this.systemOrigin = systemOrigin;
    return this;
  }

   /**
   * Get systemOrigin
   * @return systemOrigin
  **/
  @javax.annotation.Nullable
  public AgentAdvCostReportListQueryV2DataListSystemOrigin getSystemOrigin() {
    return systemOrigin;
  }


  public void setSystemOrigin(AgentAdvCostReportListQueryV2DataListSystemOrigin systemOrigin) {
    this.systemOrigin = systemOrigin;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AgentAdvCostReportListQueryV2ResponseDataListInner agentAdvCostReportListQueryV2ResponseDataListInner = (AgentAdvCostReportListQueryV2ResponseDataListInner) o;
    return Objects.equals(this.advId, agentAdvCostReportListQueryV2ResponseDataListInner.advId) &&
        Objects.equals(this.advName, agentAdvCostReportListQueryV2ResponseDataListInner.advName) &&
        Objects.equals(this.agentId, agentAdvCostReportListQueryV2ResponseDataListInner.agentId) &&
        Objects.equals(this.agentName, agentAdvCostReportListQueryV2ResponseDataListInner.agentName) &&
        Objects.equals(this.agentPerformanceCost, agentAdvCostReportListQueryV2ResponseDataListInner.agentPerformanceCost) &&
        Objects.equals(this.agentPerformanceGrantCost, agentAdvCostReportListQueryV2ResponseDataListInner.agentPerformanceGrantCost) &&
        Objects.equals(this.appName, agentAdvCostReportListQueryV2ResponseDataListInner.appName) &&
        Objects.equals(this.attributionDate, agentAdvCostReportListQueryV2ResponseDataListInner.attributionDate) &&
        Objects.equals(this.brandProductSecondType, agentAdvCostReportListQueryV2ResponseDataListInner.brandProductSecondType) &&
        Objects.equals(this.brandProductSecondTypeName, agentAdvCostReportListQueryV2ResponseDataListInner.brandProductSecondTypeName) &&
        Objects.equals(this.businessType, agentAdvCostReportListQueryV2ResponseDataListInner.businessType) &&
        Objects.equals(this.businessTypeName, agentAdvCostReportListQueryV2ResponseDataListInner.businessTypeName) &&
        Objects.equals(this.cashbackType, agentAdvCostReportListQueryV2ResponseDataListInner.cashbackType) &&
        Objects.equals(this.cashbackTypeName, agentAdvCostReportListQueryV2ResponseDataListInner.cashbackTypeName) &&
        Objects.equals(this.cost, agentAdvCostReportListQueryV2ResponseDataListInner.cost) &&
        Objects.equals(this.costSource, agentAdvCostReportListQueryV2ResponseDataListInner.costSource) &&
        Objects.equals(this.costSourceName, agentAdvCostReportListQueryV2ResponseDataListInner.costSourceName) &&
        Objects.equals(this.cpt, agentAdvCostReportListQueryV2ResponseDataListInner.cpt) &&
        Objects.equals(this.cptName, agentAdvCostReportListQueryV2ResponseDataListInner.cptName) &&
        Objects.equals(this.creditCost, agentAdvCostReportListQueryV2ResponseDataListInner.creditCost) &&
        Objects.equals(this.customerId, agentAdvCostReportListQueryV2ResponseDataListInner.customerId) &&
        Objects.equals(this.customerName, agentAdvCostReportListQueryV2ResponseDataListInner.customerName) &&
        Objects.equals(this.customerPerformanceGrantCost, agentAdvCostReportListQueryV2ResponseDataListInner.customerPerformanceGrantCost) &&
        Objects.equals(this.ecommerceType, agentAdvCostReportListQueryV2ResponseDataListInner.ecommerceType) &&
        Objects.equals(this.feedslive, agentAdvCostReportListQueryV2ResponseDataListInner.feedslive) &&
        Objects.equals(this.feedsliveName, agentAdvCostReportListQueryV2ResponseDataListInner.feedsliveName) &&
        Objects.equals(this.firstAgentId, agentAdvCostReportListQueryV2ResponseDataListInner.firstAgentId) &&
        Objects.equals(this.firstAgentName, agentAdvCostReportListQueryV2ResponseDataListInner.firstAgentName) &&
        Objects.equals(this.firstIndustry, agentAdvCostReportListQueryV2ResponseDataListInner.firstIndustry) &&
        Objects.equals(this.grantCost, agentAdvCostReportListQueryV2ResponseDataListInner.grantCost) &&
        Objects.equals(this.isMatchingProvince, agentAdvCostReportListQueryV2ResponseDataListInner.isMatchingProvince) &&
        Objects.equals(this.noGrantCost, agentAdvCostReportListQueryV2ResponseDataListInner.noGrantCost) &&
        Objects.equals(this.prepayCost, agentAdvCostReportListQueryV2ResponseDataListInner.prepayCost) &&
        Objects.equals(this.pricingCategory, agentAdvCostReportListQueryV2ResponseDataListInner.pricingCategory) &&
        Objects.equals(this.pricingCategoryName, agentAdvCostReportListQueryV2ResponseDataListInner.pricingCategoryName) &&
        Objects.equals(this.projectName, agentAdvCostReportListQueryV2ResponseDataListInner.projectName) &&
        Objects.equals(this.projectSerial, agentAdvCostReportListQueryV2ResponseDataListInner.projectSerial) &&
        Objects.equals(this.promotionType, agentAdvCostReportListQueryV2ResponseDataListInner.promotionType) &&
        Objects.equals(this.registerTime, agentAdvCostReportListQueryV2ResponseDataListInner.registerTime) &&
        Objects.equals(this.saleId, agentAdvCostReportListQueryV2ResponseDataListInner.saleId) &&
        Objects.equals(this.saleName, agentAdvCostReportListQueryV2ResponseDataListInner.saleName) &&
        Objects.equals(this.secondAgentId, agentAdvCostReportListQueryV2ResponseDataListInner.secondAgentId) &&
        Objects.equals(this.secondAgentName, agentAdvCostReportListQueryV2ResponseDataListInner.secondAgentName) &&
        Objects.equals(this.secondIndustry, agentAdvCostReportListQueryV2ResponseDataListInner.secondIndustry) &&
        Objects.equals(this.settlementFirstIndustryName, agentAdvCostReportListQueryV2ResponseDataListInner.settlementFirstIndustryName) &&
        Objects.equals(this.settlementInternalIndustryCategory, agentAdvCostReportListQueryV2ResponseDataListInner.settlementInternalIndustryCategory) &&
        Objects.equals(this.settlementSecondIndustryName, agentAdvCostReportListQueryV2ResponseDataListInner.settlementSecondIndustryName) &&
        Objects.equals(this.settlementStatsType, agentAdvCostReportListQueryV2ResponseDataListInner.settlementStatsType) &&
        Objects.equals(this.spuId, agentAdvCostReportListQueryV2ResponseDataListInner.spuId) &&
        Objects.equals(this.spuLabelName, agentAdvCostReportListQueryV2ResponseDataListInner.spuLabelName) &&
        Objects.equals(this.spuName, agentAdvCostReportListQueryV2ResponseDataListInner.spuName) &&
        Objects.equals(this.subSharedWalletCost, agentAdvCostReportListQueryV2ResponseDataListInner.subSharedWalletCost) &&
        Objects.equals(this.subSharedWalletCreditCost, agentAdvCostReportListQueryV2ResponseDataListInner.subSharedWalletCreditCost) &&
        Objects.equals(this.subSharedWalletId, agentAdvCostReportListQueryV2ResponseDataListInner.subSharedWalletId) &&
        Objects.equals(this.subSharedWalletName, agentAdvCostReportListQueryV2ResponseDataListInner.subSharedWalletName) &&
        Objects.equals(this.subSharedWalletPrepayCost, agentAdvCostReportListQueryV2ResponseDataListInner.subSharedWalletPrepayCost) &&
        Objects.equals(this.systemOrigin, agentAdvCostReportListQueryV2ResponseDataListInner.systemOrigin);
  }

  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(advId, advName, agentId, agentName, agentPerformanceCost, agentPerformanceGrantCost, appName, attributionDate, brandProductSecondType, brandProductSecondTypeName, businessType, businessTypeName, cashbackType, cashbackTypeName, cost, costSource, costSourceName, cpt, cptName, creditCost, customerId, customerName, customerPerformanceGrantCost, ecommerceType, feedslive, feedsliveName, firstAgentId, firstAgentName, firstIndustry, grantCost, isMatchingProvince, noGrantCost, prepayCost, pricingCategory, pricingCategoryName, projectName, projectSerial, promotionType, registerTime, saleId, saleName, secondAgentId, secondAgentName, secondIndustry, settlementFirstIndustryName, settlementInternalIndustryCategory, settlementSecondIndustryName, settlementStatsType, spuId, spuLabelName, spuName, subSharedWalletCost, subSharedWalletCreditCost, subSharedWalletId, subSharedWalletName, subSharedWalletPrepayCost, systemOrigin);
  }

  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 AgentAdvCostReportListQueryV2ResponseDataListInner {\n");
    sb.append("    advId: ").append(toIndentedString(advId)).append("\n");
    sb.append("    advName: ").append(toIndentedString(advName)).append("\n");
    sb.append("    agentId: ").append(toIndentedString(agentId)).append("\n");
    sb.append("    agentName: ").append(toIndentedString(agentName)).append("\n");
    sb.append("    agentPerformanceCost: ").append(toIndentedString(agentPerformanceCost)).append("\n");
    sb.append("    agentPerformanceGrantCost: ").append(toIndentedString(agentPerformanceGrantCost)).append("\n");
    sb.append("    appName: ").append(toIndentedString(appName)).append("\n");
    sb.append("    attributionDate: ").append(toIndentedString(attributionDate)).append("\n");
    sb.append("    brandProductSecondType: ").append(toIndentedString(brandProductSecondType)).append("\n");
    sb.append("    brandProductSecondTypeName: ").append(toIndentedString(brandProductSecondTypeName)).append("\n");
    sb.append("    businessType: ").append(toIndentedString(businessType)).append("\n");
    sb.append("    businessTypeName: ").append(toIndentedString(businessTypeName)).append("\n");
    sb.append("    cashbackType: ").append(toIndentedString(cashbackType)).append("\n");
    sb.append("    cashbackTypeName: ").append(toIndentedString(cashbackTypeName)).append("\n");
    sb.append("    cost: ").append(toIndentedString(cost)).append("\n");
    sb.append("    costSource: ").append(toIndentedString(costSource)).append("\n");
    sb.append("    costSourceName: ").append(toIndentedString(costSourceName)).append("\n");
    sb.append("    cpt: ").append(toIndentedString(cpt)).append("\n");
    sb.append("    cptName: ").append(toIndentedString(cptName)).append("\n");
    sb.append("    creditCost: ").append(toIndentedString(creditCost)).append("\n");
    sb.append("    customerId: ").append(toIndentedString(customerId)).append("\n");
    sb.append("    customerName: ").append(toIndentedString(customerName)).append("\n");
    sb.append("    customerPerformanceGrantCost: ").append(toIndentedString(customerPerformanceGrantCost)).append("\n");
    sb.append("    ecommerceType: ").append(toIndentedString(ecommerceType)).append("\n");
    sb.append("    feedslive: ").append(toIndentedString(feedslive)).append("\n");
    sb.append("    feedsliveName: ").append(toIndentedString(feedsliveName)).append("\n");
    sb.append("    firstAgentId: ").append(toIndentedString(firstAgentId)).append("\n");
    sb.append("    firstAgentName: ").append(toIndentedString(firstAgentName)).append("\n");
    sb.append("    firstIndustry: ").append(toIndentedString(firstIndustry)).append("\n");
    sb.append("    grantCost: ").append(toIndentedString(grantCost)).append("\n");
    sb.append("    isMatchingProvince: ").append(toIndentedString(isMatchingProvince)).append("\n");
    sb.append("    noGrantCost: ").append(toIndentedString(noGrantCost)).append("\n");
    sb.append("    prepayCost: ").append(toIndentedString(prepayCost)).append("\n");
    sb.append("    pricingCategory: ").append(toIndentedString(pricingCategory)).append("\n");
    sb.append("    pricingCategoryName: ").append(toIndentedString(pricingCategoryName)).append("\n");
    sb.append("    projectName: ").append(toIndentedString(projectName)).append("\n");
    sb.append("    projectSerial: ").append(toIndentedString(projectSerial)).append("\n");
    sb.append("    promotionType: ").append(toIndentedString(promotionType)).append("\n");
    sb.append("    registerTime: ").append(toIndentedString(registerTime)).append("\n");
    sb.append("    saleId: ").append(toIndentedString(saleId)).append("\n");
    sb.append("    saleName: ").append(toIndentedString(saleName)).append("\n");
    sb.append("    secondAgentId: ").append(toIndentedString(secondAgentId)).append("\n");
    sb.append("    secondAgentName: ").append(toIndentedString(secondAgentName)).append("\n");
    sb.append("    secondIndustry: ").append(toIndentedString(secondIndustry)).append("\n");
    sb.append("    settlementFirstIndustryName: ").append(toIndentedString(settlementFirstIndustryName)).append("\n");
    sb.append("    settlementInternalIndustryCategory: ").append(toIndentedString(settlementInternalIndustryCategory)).append("\n");
    sb.append("    settlementSecondIndustryName: ").append(toIndentedString(settlementSecondIndustryName)).append("\n");
    sb.append("    settlementStatsType: ").append(toIndentedString(settlementStatsType)).append("\n");
    sb.append("    spuId: ").append(toIndentedString(spuId)).append("\n");
    sb.append("    spuLabelName: ").append(toIndentedString(spuLabelName)).append("\n");
    sb.append("    spuName: ").append(toIndentedString(spuName)).append("\n");
    sb.append("    subSharedWalletCost: ").append(toIndentedString(subSharedWalletCost)).append("\n");
    sb.append("    subSharedWalletCreditCost: ").append(toIndentedString(subSharedWalletCreditCost)).append("\n");
    sb.append("    subSharedWalletId: ").append(toIndentedString(subSharedWalletId)).append("\n");
    sb.append("    subSharedWalletName: ").append(toIndentedString(subSharedWalletName)).append("\n");
    sb.append("    subSharedWalletPrepayCost: ").append(toIndentedString(subSharedWalletPrepayCost)).append("\n");
    sb.append("    systemOrigin: ").append(toIndentedString(systemOrigin)).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("adv_id");
    openapiFields.add("adv_name");
    openapiFields.add("agent_id");
    openapiFields.add("agent_name");
    openapiFields.add("agent_performance_cost");
    openapiFields.add("agent_performance_grant_cost");
    openapiFields.add("app_name");
    openapiFields.add("attribution_date");
    openapiFields.add("brand_product_second_type");
    openapiFields.add("brand_product_second_type_name");
    openapiFields.add("business_type");
    openapiFields.add("business_type_name");
    openapiFields.add("cashback_type");
    openapiFields.add("cashback_type_name");
    openapiFields.add("cost");
    openapiFields.add("cost_source");
    openapiFields.add("cost_source_name");
    openapiFields.add("cpt");
    openapiFields.add("cpt_name");
    openapiFields.add("credit_cost");
    openapiFields.add("customer_id");
    openapiFields.add("customer_name");
    openapiFields.add("customer_performance_grant_cost");
    openapiFields.add("ecommerce_type");
    openapiFields.add("feedslive");
    openapiFields.add("feedslive_name");
    openapiFields.add("first_agent_id");
    openapiFields.add("first_agent_name");
    openapiFields.add("first_industry");
    openapiFields.add("grant_cost");
    openapiFields.add("is_matching_province");
    openapiFields.add("no_grant_cost");
    openapiFields.add("prepay_cost");
    openapiFields.add("pricing_category");
    openapiFields.add("pricing_category_name");
    openapiFields.add("project_name");
    openapiFields.add("project_serial");
    openapiFields.add("promotion_type");
    openapiFields.add("register_time");
    openapiFields.add("sale_id");
    openapiFields.add("sale_name");
    openapiFields.add("second_agent_id");
    openapiFields.add("second_agent_name");
    openapiFields.add("second_industry");
    openapiFields.add("settlement_first_industry_name");
    openapiFields.add("settlement_internal_industry_category");
    openapiFields.add("settlement_second_industry_name");
    openapiFields.add("settlement_stats_type");
    openapiFields.add("spu_id");
    openapiFields.add("spu_label_name");
    openapiFields.add("spu_name");
    openapiFields.add("sub_shared_wallet_cost");
    openapiFields.add("sub_shared_wallet_credit_cost");
    openapiFields.add("sub_shared_wallet_id");
    openapiFields.add("sub_shared_wallet_name");
    openapiFields.add("sub_shared_wallet_prepay_cost");
    openapiFields.add("system_origin");

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

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

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

       }.nullSafe();
    }
  }

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

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

