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.Date;

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

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.transaction_id
     *
     * @mbg.generated
     */
    private String transactionId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.parent_transaction_id
     *
     * @mbg.generated
     */
    private String parentTransactionId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.receipt_id
     *
     * @mbg.generated
     */
    private String receiptId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.transaction_type
     *
     * @mbg.generated
     */
    private String transactionType;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.payment_type
     *
     * @mbg.generated
     */
    private String paymentType;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.payment_date
     *
     * @mbg.generated
     */
    @JSONField(name = "paymentDate")
    private Date paymentDate;

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

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

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

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

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.exchange_rate
     *
     * @mbg.generated
     */
    private String exchangeRate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.payment_status
     *
     * @mbg.generated
     */
    private String paymentStatus;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.pending_reason
     *
     * @mbg.generated
     */
    private String pendingReason;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.reason_code
     *
     * @mbg.generated
     */
    private String reasonCode;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.create_time
     *
     * @mbg.generated
     */
    @JSONField(name = "createTime")
    private Date createTime;

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

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.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_paypal.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_paypal.business
     *
     * @mbg.generated
     */
    private String business;

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

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.receiver_id
     *
     * @mbg.generated
     */
    private String receiverId;

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

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.payer_id
     *
     * @mbg.generated
     */
    private String payerId;

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

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

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

    private String sourceJson;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_finance_paypal.type
     *
     * @mbg.generated
     */
    @JSONField(name = "Type")
    private String type;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_finance_paypal
     *
     * @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(", transactionId=").append(transactionId);
        sb.append(", parentTransactionId=").append(parentTransactionId);
        sb.append(", receiptId=").append(receiptId);
        sb.append(", transactionType=").append(transactionType);
        sb.append(", paymentType=").append(paymentType);
        sb.append(", paymentDate=").append(paymentDate);
        sb.append(", grossAmount=").append(grossAmount);
        sb.append(", feeAmount=").append(feeAmount);
        sb.append(", settleAmount=").append(settleAmount);
        sb.append(", taxAmount=").append(taxAmount);
        sb.append(", exchangeRate=").append(exchangeRate);
        sb.append(", paymentStatus=").append(paymentStatus);
        sb.append(", pendingReason=").append(pendingReason);
        sb.append(", reasonCode=").append(reasonCode);
        sb.append(", createTime=").append(createTime);
        sb.append(", saasCompanyId=").append(saasCompanyId);
        sb.append(", gmtCreateTime=").append(gmtCreateTime);
        sb.append(", gmtModifyTime=").append(gmtModifyTime);
        sb.append(", business=").append(business);
        sb.append(", receiver=").append(receiver);
        sb.append(", receiverId=").append(receiverId);
        sb.append(", payer=").append(payer);
        sb.append(", payerId=").append(payerId);
        sb.append(", currency=").append(currency);
        sb.append(", currencyId=").append(currencyId);
        sb.append(", otherToCnyExchangeRate=").append(otherToCnyExchangeRate);
        sb.append(", type=").append(type);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_finance_paypal
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DcBaseFinancePaypal other = (DcBaseFinancePaypal) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getTransactionId() == null ? other.getTransactionId() == null : this.getTransactionId().equals(other.getTransactionId()))
            && (this.getParentTransactionId() == null ? other.getParentTransactionId() == null : this.getParentTransactionId().equals(other.getParentTransactionId()))
            && (this.getReceiptId() == null ? other.getReceiptId() == null : this.getReceiptId().equals(other.getReceiptId()))
            && (this.getTransactionType() == null ? other.getTransactionType() == null : this.getTransactionType().equals(other.getTransactionType()))
            && (this.getPaymentType() == null ? other.getPaymentType() == null : this.getPaymentType().equals(other.getPaymentType()))
            && (this.getPaymentDate() == null ? other.getPaymentDate() == null : this.getPaymentDate().equals(other.getPaymentDate()))
            && (this.getGrossAmount() == null ? other.getGrossAmount() == null : this.getGrossAmount().equals(other.getGrossAmount()))
            && (this.getFeeAmount() == null ? other.getFeeAmount() == null : this.getFeeAmount().equals(other.getFeeAmount()))
            && (this.getSettleAmount() == null ? other.getSettleAmount() == null : this.getSettleAmount().equals(other.getSettleAmount()))
            && (this.getTaxAmount() == null ? other.getTaxAmount() == null : this.getTaxAmount().equals(other.getTaxAmount()))
            && (this.getExchangeRate() == null ? other.getExchangeRate() == null : this.getExchangeRate().equals(other.getExchangeRate()))
            && (this.getPaymentStatus() == null ? other.getPaymentStatus() == null : this.getPaymentStatus().equals(other.getPaymentStatus()))
            && (this.getPendingReason() == null ? other.getPendingReason() == null : this.getPendingReason().equals(other.getPendingReason()))
            && (this.getReasonCode() == null ? other.getReasonCode() == null : this.getReasonCode().equals(other.getReasonCode()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getSaasCompanyId() == null ? other.getSaasCompanyId() == null : this.getSaasCompanyId().equals(other.getSaasCompanyId()))
            && (this.getGmtCreateTime() == null ? other.getGmtCreateTime() == null : this.getGmtCreateTime().equals(other.getGmtCreateTime()))
            && (this.getGmtModifyTime() == null ? other.getGmtModifyTime() == null : this.getGmtModifyTime().equals(other.getGmtModifyTime()))
            && (this.getBusiness() == null ? other.getBusiness() == null : this.getBusiness().equals(other.getBusiness()))
            && (this.getReceiver() == null ? other.getReceiver() == null : this.getReceiver().equals(other.getReceiver()))
            && (this.getReceiverId() == null ? other.getReceiverId() == null : this.getReceiverId().equals(other.getReceiverId()))
            && (this.getPayer() == null ? other.getPayer() == null : this.getPayer().equals(other.getPayer()))
            && (this.getPayerId() == null ? other.getPayerId() == null : this.getPayerId().equals(other.getPayerId()))
            && (this.getCurrency() == null ? other.getCurrency() == null : this.getCurrency().equals(other.getCurrency()))
            && (this.getCurrencyId() == null ? other.getCurrencyId() == null : this.getCurrencyId().equals(other.getCurrencyId()))
            && (this.getOtherToCnyExchangeRate() == null ? other.getOtherToCnyExchangeRate() == null : this.getOtherToCnyExchangeRate().equals(other.getOtherToCnyExchangeRate()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()));
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_finance_paypal
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getTransactionId() == null) ? 0 : getTransactionId().hashCode());
        result = prime * result + ((getParentTransactionId() == null) ? 0 : getParentTransactionId().hashCode());
        result = prime * result + ((getReceiptId() == null) ? 0 : getReceiptId().hashCode());
        result = prime * result + ((getTransactionType() == null) ? 0 : getTransactionType().hashCode());
        result = prime * result + ((getPaymentType() == null) ? 0 : getPaymentType().hashCode());
        result = prime * result + ((getPaymentDate() == null) ? 0 : getPaymentDate().hashCode());
        result = prime * result + ((getGrossAmount() == null) ? 0 : getGrossAmount().hashCode());
        result = prime * result + ((getFeeAmount() == null) ? 0 : getFeeAmount().hashCode());
        result = prime * result + ((getSettleAmount() == null) ? 0 : getSettleAmount().hashCode());
        result = prime * result + ((getTaxAmount() == null) ? 0 : getTaxAmount().hashCode());
        result = prime * result + ((getExchangeRate() == null) ? 0 : getExchangeRate().hashCode());
        result = prime * result + ((getPaymentStatus() == null) ? 0 : getPaymentStatus().hashCode());
        result = prime * result + ((getPendingReason() == null) ? 0 : getPendingReason().hashCode());
        result = prime * result + ((getReasonCode() == null) ? 0 : getReasonCode().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getSaasCompanyId() == null) ? 0 : getSaasCompanyId().hashCode());
        result = prime * result + ((getGmtCreateTime() == null) ? 0 : getGmtCreateTime().hashCode());
        result = prime * result + ((getGmtModifyTime() == null) ? 0 : getGmtModifyTime().hashCode());
        result = prime * result + ((getBusiness() == null) ? 0 : getBusiness().hashCode());
        result = prime * result + ((getReceiver() == null) ? 0 : getReceiver().hashCode());
        result = prime * result + ((getReceiverId() == null) ? 0 : getReceiverId().hashCode());
        result = prime * result + ((getPayer() == null) ? 0 : getPayer().hashCode());
        result = prime * result + ((getPayerId() == null) ? 0 : getPayerId().hashCode());
        result = prime * result + ((getCurrency() == null) ? 0 : getCurrency().hashCode());
        result = prime * result + ((getCurrencyId() == null) ? 0 : getCurrencyId().hashCode());
        result = prime * result + ((getOtherToCnyExchangeRate() == null) ? 0 : getOtherToCnyExchangeRate().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        return result;
    }
}