package com.sunxung.factoring.entity.refundsManagement;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.ledger.LedgerAccountBasicInfo;
import com.sunxung.factoring.entity.ledger.LedgerFundGoodsAssign;
import com.sunxung.factoring.entity.project.Project;
import com.sunxung.factoring.entity.underlying.sop.PaymentCollectionPlanFactoring;

import java.util.List;

/**
 * <p>
 * 退款管理表
 * </p>
 *
 * @author yafan
 * @since 2024-03-04
 */
@TableName("refund_management")
public class RefundManagement extends Project {

    private static final long serialVersionUID = 1L;

    /**
     * 分账管理-货款分配表Id
     */
    @TableField("ledger_fund_goods_assign_id")
    private Long ledgerFundGoodsAssignId;

    /**
     * 业务编号
     */
    @TableField("business_number")
    private String businessNumber;

    /**
     * 对应SOP合同编号
     */
    @TableField("contract_no")
    private String contractNo;

    /**
     * 额度支用批次
     */
    @TableField("quota_disburse_batch")
    private Integer quotaDisburseBatch;

    /**
     * 贸易平台Id
     */
    @TableField("trading_platform_id")
    private Long tradingPlatformId;

    /**
     * 退款编号
     */
    @TableField("refund_number")
    private String refundNumber;

    /**
     * 状态
     */
    @TableField("refund_status")
    private String refundStatus;

    /** 当前阶段 **/
    @TableField("stage")
    private String stage;


    /**
     * 资产状态
     */
    @TableField(exist = false)
    private String coreStatusStr;

    /** 收支计划 **/
    @TableField(exist = false)
    private List<PaymentCollectionPlanFactoring> paymentCollectionPlanFactorings;

    @TableField(exist = false)
    private String taskId;

    public RefundManagement() {

    }

    public RefundManagement(LedgerFundGoodsAssign ledgerFundGoodsAssign) {
        this.businessNumber = ledgerFundGoodsAssign.getBusinessNumber();
        this.contractNo = ledgerFundGoodsAssign.getContractNo();
        this.quotaDisburseBatch = ledgerFundGoodsAssign.getQuotaDisburseBatch();
        this.ledgerFundGoodsAssignId = ledgerFundGoodsAssign.getId();
    }

    public Long getLedgerFundGoodsAssignId() {
        return ledgerFundGoodsAssignId;
    }

    public void setLedgerFundGoodsAssignId(Long ledgerFundGoodsAssignId) {
        this.ledgerFundGoodsAssignId = ledgerFundGoodsAssignId;
    }

    public String getBusinessNumber() {
        return businessNumber;
    }

    public void setBusinessNumber(String businessNumber) {
        this.businessNumber = businessNumber;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public Integer getQuotaDisburseBatch() {
        return quotaDisburseBatch;
    }

    public void setQuotaDisburseBatch(Integer quotaDisburseBatch) {
        this.quotaDisburseBatch = quotaDisburseBatch;
    }

    public Long getTradingPlatformId() {
        return tradingPlatformId;
    }

    public void setTradingPlatformId(Long tradingPlatformId) {
        this.tradingPlatformId = tradingPlatformId;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getRefundNumber() {
        return refundNumber;
    }

    public void setRefundNumber(String refundNumber) {
        this.refundNumber = refundNumber;
    }

    public List<PaymentCollectionPlanFactoring> getPaymentCollectionPlanFactorings() {
        return paymentCollectionPlanFactorings;
    }

    public void setPaymentCollectionPlanFactorings(List<PaymentCollectionPlanFactoring> paymentCollectionPlanFactorings) {
        this.paymentCollectionPlanFactorings = paymentCollectionPlanFactorings;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public String getStage() {
        return stage;
    }

    public void setStage(String stage) {
        this.stage = stage;
    }

    public String getCoreStatusStr() {
        return coreStatusStr;
    }

    public void setCoreStatusStr(String coreStatusStr) {
        this.coreStatusStr = coreStatusStr;
    }
}
