package com.sunxung.factoring.entity.refundsManagement.vo;

import com.sunxung.factoring.entity.refundsManagement.RefundManagement;
import com.sunxung.factoring.entity.refundsManagement.RefundsApplyDetails;
import com.sunxung.factoring.entity.underlying.sop.PaymentCollectionPlanFactoring;
import org.hibernate.validator.constraints.NotEmpty;

import java.util.List;

/**
 * @Description 退款管理vo类
 * @Author Yafan Wang
 * @Date 2024/3/7 20:34
 */
public class RefundManagementVo {

    private Long id;
    /** 项目名称 **/
    private String projectName;
    /** 核心企业名称 **/
    private String customerName;
    /** 供应商（主体）名称 **/
    private String supplierName;
    /** 贸易平台 **/
    private String platformName;
    /** 业务编号 **/
    private String businessNumber;
    /** 合同编号 **/
    private String contractNumber;
    /** 批次号 **/
    private Integer quotaDisburseBatch;
    /** 资产状态 **/
    private String businessStatus;
    /** 应退明细 **/
    private List<List<LedgerDetailsVo>> ledgerDetails;
    /** 收支计划 **/
    private List<PaymentCollectionPlanFactoring> paymentCollectionPlanFactorings;
    /** 申请内容 **/
    @NotEmpty(message = "申请内容不能为空！")
    private List<RefundsApplyDetails> refundsApplyDetails;

    private Long businessKey;

    private String taskId;

    public RefundManagementVo() {

    }

    public RefundManagementVo(RefundManagement refundManagement) {
        this.id = refundManagement.getId();
        this.businessNumber = refundManagement.getBusinessNumber();
        this.projectName = refundManagement.getProjectName();
        this.customerName = refundManagement.getCustomerName();
        this.supplierName = refundManagement.getSupplierName();
        this.platformName = refundManagement.getTradingPlatformName();
        this.contractNumber = refundManagement.getContractNumber();
        this.quotaDisburseBatch = refundManagement.getQuotaDisburseBatch();
    }

    public String getProjectName() {
        return projectName;
    }

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

    public String getCustomerName() {
        return customerName;
    }

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

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getPlatformName() {
        return platformName;
    }

    public void setPlatformName(String platformName) {
        this.platformName = platformName;
    }

    public String getBusinessNumber() {
        return businessNumber;
    }

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

    public String getContractNumber() {
        return contractNumber;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public Integer getQuotaDisburseBatch() {
        return quotaDisburseBatch;
    }

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

    public Long getId() {
        return id;
    }

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

    public List<List<LedgerDetailsVo>> getLedgerDetails() {
        return ledgerDetails;
    }

    public void setLedgerDetails(List<List<LedgerDetailsVo>> ledgerDetails) {
        this.ledgerDetails = ledgerDetails;
    }

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

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

    public List<RefundsApplyDetails> getRefundsApplyDetails() {
        return refundsApplyDetails;
    }

    public void setRefundsApplyDetails(List<RefundsApplyDetails> refundsApplyDetails) {
        this.refundsApplyDetails = refundsApplyDetails;
    }

    public String getBusinessStatus() {
        return businessStatus;
    }

    public void setBusinessStatus(String businessStatus) {
        this.businessStatus = businessStatus;
    }

    public Long getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(Long businessKey) {
        this.businessKey = businessKey;
    }

    public String getTaskId() {
        return taskId;
    }

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