package com.bailuntec.domain.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Data
public class DcBaseFinanceWish {
    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.id
     *
     * @mbg.generated
     */
    private Integer id;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.account_id
     *
     * @mbg.generated
     */
    private Integer accountId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.company_id
     *
     * @mbg.generated
     */
    private Integer companyId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.other_to_cny_exchange_rate
     *
     * @mbg.generated
     */
    private BigDecimal otherToCnyExchangeRate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.other_to_usd_exchange_rate
     *
     * @mbg.generated
     */
    private BigDecimal otherToUsdExchangeRate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.gmt_create_time
     *
     * @mbg.generated
     */
    private LocalDateTime gmtCreateTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.gmt_modify_time
     *
     * @mbg.generated
     */
    private LocalDateTime gmtModifyTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.campaign_max_budget
     *
     * @mbg.generated
     */
    private BigDecimal campaignMaxBudget;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.is_automated_campaign
     *
     * @mbg.generated
     */
    private Boolean isAutomatedCampaign;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.auto_renew
     *
     * @mbg.generated
     */
    private Boolean autoRenew;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.scheduled_add_budget_amount
     *
     * @mbg.generated
     */
    private BigDecimal scheduledAddBudgetAmount;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.total_impressions
     *
     * @mbg.generated
     */
    private Integer totalImpressions;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.start_time
     *
     * @mbg.generated
     */
    private LocalDateTime startTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.sales
     *
     * @mbg.generated
     */
    private Integer sales;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.campaign_id
     *
     * @mbg.generated
     */
    private String campaignId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.total_impression_fees_charged
     *
     * @mbg.generated
     */
    private BigDecimal totalImpressionFeesCharged;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.scheduled_add_budget_enabled
     *
     * @mbg.generated
     */
    private Boolean scheduledAddBudgetEnabled;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.campaign_name
     *
     * @mbg.generated
     */
    private String campaignName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.merchant_id
     *
     * @mbg.generated
     */
    private String merchantId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.impression_fees_breakdown
     *
     * @mbg.generated
     */
    private String impressionFeesBreakdown;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.campaign_state
     *
     * @mbg.generated
     */
    private String campaignState;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.can_edit
     *
     * @mbg.generated
     */
    private Boolean canEdit;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.discount_ratio
     *
     * @mbg.generated
     */
    private BigDecimal discountRatio;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.is_simple_boost
     *
     * @mbg.generated
     */
    private Boolean isSimpleBoost;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.total_campaign_spend
     *
     * @mbg.generated
     */
    private BigDecimal totalCampaignSpend;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.scheduled_add_budget_days
     *
     * @mbg.generated
     */
    private String scheduledAddBudgetDays;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.last_updated_time
     *
     * @mbg.generated
     */
    private LocalDateTime lastUpdatedTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.end_time
     *
     * @mbg.generated
     */
    private LocalDateTime endTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.total_enrollment_fees_charged
     *
     * @mbg.generated
     */
    private BigDecimal totalEnrollmentFeesCharged;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_wish.gmv
     *
     * @mbg.generated
     */
    private BigDecimal gmv;


    @JSONField(name = "products")
    private List<Map<String, DcBaseFinanceWishProduct>> listWishProduct;

    @JSONField(name = "impression_fees_breakdown")
    private List<Map<String, DcBaseFinanceWishImpressionFee>> listWishImpressionFee;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_finance_wish
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", accountId=").append(accountId);
        sb.append(", companyId=").append(companyId);
        sb.append(", otherToCnyExchangeRate=").append(otherToCnyExchangeRate);
        sb.append(", otherToUsdExchangeRate=").append(otherToUsdExchangeRate);
        sb.append(", gmtCreateTime=").append(gmtCreateTime);
        sb.append(", gmtModifyTime=").append(gmtModifyTime);
        sb.append(", campaignMaxBudget=").append(campaignMaxBudget);
        sb.append(", isAutomatedCampaign=").append(isAutomatedCampaign);
        sb.append(", autoRenew=").append(autoRenew);
        sb.append(", scheduledAddBudgetAmount=").append(scheduledAddBudgetAmount);
        sb.append(", totalImpressions=").append(totalImpressions);
        sb.append(", startTime=").append(startTime);
        sb.append(", sales=").append(sales);
        sb.append(", campaignId=").append(campaignId);
        sb.append(", totalImpressionFeesCharged=").append(totalImpressionFeesCharged);
        sb.append(", scheduledAddBudgetEnabled=").append(scheduledAddBudgetEnabled);
        sb.append(", campaignName=").append(campaignName);
        sb.append(", merchantId=").append(merchantId);
        sb.append(", impressionFeesBreakdown=").append(impressionFeesBreakdown);
        sb.append(", campaignState=").append(campaignState);
        sb.append(", canEdit=").append(canEdit);
        sb.append(", discountRatio=").append(discountRatio);
        sb.append(", isSimpleBoost=").append(isSimpleBoost);
        sb.append(", totalCampaignSpend=").append(totalCampaignSpend);
        sb.append(", scheduledAddBudgetDays=").append(scheduledAddBudgetDays);
        sb.append(", lastUpdatedTime=").append(lastUpdatedTime);
        sb.append(", endTime=").append(endTime);
        sb.append(", totalEnrollmentFeesCharged=").append(totalEnrollmentFeesCharged);
        sb.append(", gmv=").append(gmv);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_finance_wish
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DcBaseFinanceWish other = (DcBaseFinanceWish) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getAccountId() == null ? other.getAccountId() == null : this.getAccountId().equals(other.getAccountId()))
            && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
            && (this.getOtherToCnyExchangeRate() == null ? other.getOtherToCnyExchangeRate() == null : this.getOtherToCnyExchangeRate().equals(other.getOtherToCnyExchangeRate()))
            && (this.getOtherToUsdExchangeRate() == null ? other.getOtherToUsdExchangeRate() == null : this.getOtherToUsdExchangeRate().equals(other.getOtherToUsdExchangeRate()))
            && (this.getGmtCreateTime() == null ? other.getGmtCreateTime() == null : this.getGmtCreateTime().equals(other.getGmtCreateTime()))
            && (this.getGmtModifyTime() == null ? other.getGmtModifyTime() == null : this.getGmtModifyTime().equals(other.getGmtModifyTime()))
            && (this.getCampaignMaxBudget() == null ? other.getCampaignMaxBudget() == null : this.getCampaignMaxBudget().equals(other.getCampaignMaxBudget()))
            && (this.getIsAutomatedCampaign() == null ? other.getIsAutomatedCampaign() == null : this.getIsAutomatedCampaign().equals(other.getIsAutomatedCampaign()))
            && (this.getAutoRenew() == null ? other.getAutoRenew() == null : this.getAutoRenew().equals(other.getAutoRenew()))
            && (this.getScheduledAddBudgetAmount() == null ? other.getScheduledAddBudgetAmount() == null : this.getScheduledAddBudgetAmount().equals(other.getScheduledAddBudgetAmount()))
            && (this.getTotalImpressions() == null ? other.getTotalImpressions() == null : this.getTotalImpressions().equals(other.getTotalImpressions()))
            && (this.getStartTime() == null ? other.getStartTime() == null : this.getStartTime().equals(other.getStartTime()))
            && (this.getSales() == null ? other.getSales() == null : this.getSales().equals(other.getSales()))
            && (this.getCampaignId() == null ? other.getCampaignId() == null : this.getCampaignId().equals(other.getCampaignId()))
            && (this.getTotalImpressionFeesCharged() == null ? other.getTotalImpressionFeesCharged() == null : this.getTotalImpressionFeesCharged().equals(other.getTotalImpressionFeesCharged()))
            && (this.getScheduledAddBudgetEnabled() == null ? other.getScheduledAddBudgetEnabled() == null : this.getScheduledAddBudgetEnabled().equals(other.getScheduledAddBudgetEnabled()))
            && (this.getCampaignName() == null ? other.getCampaignName() == null : this.getCampaignName().equals(other.getCampaignName()))
            && (this.getMerchantId() == null ? other.getMerchantId() == null : this.getMerchantId().equals(other.getMerchantId()))
            && (this.getImpressionFeesBreakdown() == null ? other.getImpressionFeesBreakdown() == null : this.getImpressionFeesBreakdown().equals(other.getImpressionFeesBreakdown()))
            && (this.getCampaignState() == null ? other.getCampaignState() == null : this.getCampaignState().equals(other.getCampaignState()))
            && (this.getCanEdit() == null ? other.getCanEdit() == null : this.getCanEdit().equals(other.getCanEdit()))
            && (this.getDiscountRatio() == null ? other.getDiscountRatio() == null : this.getDiscountRatio().equals(other.getDiscountRatio()))
            && (this.getIsSimpleBoost() == null ? other.getIsSimpleBoost() == null : this.getIsSimpleBoost().equals(other.getIsSimpleBoost()))
            && (this.getTotalCampaignSpend() == null ? other.getTotalCampaignSpend() == null : this.getTotalCampaignSpend().equals(other.getTotalCampaignSpend()))
            && (this.getScheduledAddBudgetDays() == null ? other.getScheduledAddBudgetDays() == null : this.getScheduledAddBudgetDays().equals(other.getScheduledAddBudgetDays()))
            && (this.getLastUpdatedTime() == null ? other.getLastUpdatedTime() == null : this.getLastUpdatedTime().equals(other.getLastUpdatedTime()))
            && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()))
            && (this.getTotalEnrollmentFeesCharged() == null ? other.getTotalEnrollmentFeesCharged() == null : this.getTotalEnrollmentFeesCharged().equals(other.getTotalEnrollmentFeesCharged()))
            && (this.getGmv() == null ? other.getGmv() == null : this.getGmv().equals(other.getGmv()));
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_finance_wish
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getAccountId() == null) ? 0 : getAccountId().hashCode());
        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
        result = prime * result + ((getOtherToCnyExchangeRate() == null) ? 0 : getOtherToCnyExchangeRate().hashCode());
        result = prime * result + ((getOtherToUsdExchangeRate() == null) ? 0 : getOtherToUsdExchangeRate().hashCode());
        result = prime * result + ((getGmtCreateTime() == null) ? 0 : getGmtCreateTime().hashCode());
        result = prime * result + ((getGmtModifyTime() == null) ? 0 : getGmtModifyTime().hashCode());
        result = prime * result + ((getCampaignMaxBudget() == null) ? 0 : getCampaignMaxBudget().hashCode());
        result = prime * result + ((getIsAutomatedCampaign() == null) ? 0 : getIsAutomatedCampaign().hashCode());
        result = prime * result + ((getAutoRenew() == null) ? 0 : getAutoRenew().hashCode());
        result = prime * result + ((getScheduledAddBudgetAmount() == null) ? 0 : getScheduledAddBudgetAmount().hashCode());
        result = prime * result + ((getTotalImpressions() == null) ? 0 : getTotalImpressions().hashCode());
        result = prime * result + ((getStartTime() == null) ? 0 : getStartTime().hashCode());
        result = prime * result + ((getSales() == null) ? 0 : getSales().hashCode());
        result = prime * result + ((getCampaignId() == null) ? 0 : getCampaignId().hashCode());
        result = prime * result + ((getTotalImpressionFeesCharged() == null) ? 0 : getTotalImpressionFeesCharged().hashCode());
        result = prime * result + ((getScheduledAddBudgetEnabled() == null) ? 0 : getScheduledAddBudgetEnabled().hashCode());
        result = prime * result + ((getCampaignName() == null) ? 0 : getCampaignName().hashCode());
        result = prime * result + ((getMerchantId() == null) ? 0 : getMerchantId().hashCode());
        result = prime * result + ((getImpressionFeesBreakdown() == null) ? 0 : getImpressionFeesBreakdown().hashCode());
        result = prime * result + ((getCampaignState() == null) ? 0 : getCampaignState().hashCode());
        result = prime * result + ((getCanEdit() == null) ? 0 : getCanEdit().hashCode());
        result = prime * result + ((getDiscountRatio() == null) ? 0 : getDiscountRatio().hashCode());
        result = prime * result + ((getIsSimpleBoost() == null) ? 0 : getIsSimpleBoost().hashCode());
        result = prime * result + ((getTotalCampaignSpend() == null) ? 0 : getTotalCampaignSpend().hashCode());
        result = prime * result + ((getScheduledAddBudgetDays() == null) ? 0 : getScheduledAddBudgetDays().hashCode());
        result = prime * result + ((getLastUpdatedTime() == null) ? 0 : getLastUpdatedTime().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        result = prime * result + ((getTotalEnrollmentFeesCharged() == null) ? 0 : getTotalEnrollmentFeesCharged().hashCode());
        result = prime * result + ((getGmv() == null) ? 0 : getGmv().hashCode());
        return result;
    }
}