package com.inkasso.factoring.financingmanagement.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.inkasso.factoring.dict.entity.Dictionary;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description : 应收账款信息
 * @Author : L.Jia
 * @Date: 2024-04-09 13:51
 */
public class PaymentCollectionPlanReceivable {

    private Long id;

    /**
     * 基础交易合同名称
     **/
    private String basicTradeContractName;
    /**
     * 基础交易合同编号
     **/
    private String basicTradeContractNo;
    /**
     * 三方协议合同编号
     **/
    private String tripartiteAgreementNo;
    /**
     * 到期日
     **/
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expireDate;
    /**
     * 应收账款到期日
     **/
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    /**
     * 应收账款金额
     **/
    private BigDecimal accountReceivableAmount;
    /**
     * 应收账款净额
     **/
    private BigDecimal accountReceivableNetAmount;
    /**
     * 债务人
     **/
    private String debtor;
    /**
     * 是否豁免，默认false表示否，true表示已豁免
     **/
    private boolean notNeed;
    /**
     * 合同信息应收账款ID
     **/
    private Long contractAccountReceivableId;
    /**
     * 底层资产ID
     **/
    private Long underlyingAssetsId;
    /**
     * 底层资产应收账款的ID
     **/
    private Long underlyingAccountReceivableId;

    /**
     * 币种
     */
    private Dictionary currencyType;

    public String getBasicTradeContractName() {
        return basicTradeContractName;
    }

    public void setBasicTradeContractName(String basicTradeContractName) {
        this.basicTradeContractName = basicTradeContractName;
    }

    public String getBasicTradeContractNo() {
        return basicTradeContractNo;
    }

    public void setBasicTradeContractNo(String basicTradeContractNo) {
        this.basicTradeContractNo = basicTradeContractNo;
    }

    public String getTripartiteAgreementNo() {
        return tripartiteAgreementNo;
    }

    public void setTripartiteAgreementNo(String tripartiteAgreementNo) {
        this.tripartiteAgreementNo = tripartiteAgreementNo;
    }

    public Date getExpireDate() {
        return expireDate;
    }

    public void setExpireDate(Date expireDate) {
        this.expireDate = expireDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public BigDecimal getAccountReceivableAmount() {
        return accountReceivableAmount;
    }

    public void setAccountReceivableAmount(BigDecimal accountReceivableAmount) {
        this.accountReceivableAmount = accountReceivableAmount;
    }

    public BigDecimal getAccountReceivableNetAmount() {
        return accountReceivableNetAmount;
    }

    public void setAccountReceivableNetAmount(BigDecimal accountReceivableNetAmount) {
        this.accountReceivableNetAmount = accountReceivableNetAmount;
    }

    public String getDebtor() {
        return debtor;
    }

    public void setDebtor(String debtor) {
        this.debtor = debtor;
    }

    public boolean isNotNeed() {
        return notNeed;
    }

    public void setNotNeed(boolean notNeed) {
        this.notNeed = notNeed;
    }

    public Long getContractAccountReceivableId() {
        return contractAccountReceivableId;
    }

    public void setContractAccountReceivableId(Long contractAccountReceivableId) {
        this.contractAccountReceivableId = contractAccountReceivableId;
    }

    public Long getUnderlyingAssetsId() {
        return underlyingAssetsId;
    }

    public void setUnderlyingAssetsId(Long underlyingAssetsId) {
        this.underlyingAssetsId = underlyingAssetsId;
    }

    public Long getUnderlyingAccountReceivableId() {
        return underlyingAccountReceivableId;
    }

    public void setUnderlyingAccountReceivableId(Long underlyingAccountReceivableId) {
        this.underlyingAccountReceivableId = underlyingAccountReceivableId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Dictionary getCurrencyType() {
        return currencyType;
    }

    public void setCurrencyType(Dictionary currencyType) {
        this.currencyType = currencyType;
    }
}
