package com.inkasso.factoring.salesManagement.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inkasso.factoring.common.entity.BaseEntity;
import com.inkasso.factoring.creditmanagement.entity.Enterprise;
import com.inkasso.factoring.electronicSignature.entity.ElectronicSignaturePersonal;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 销售合同销售-签署确认表
 * </p>
 *
 * @author yafan
 * @since 2023-11-28
 */
@TableName("c_sales_sign_confirmation")
public class CSalesSignConfirmation extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 销售合同管理Id
     */
    @TableField("c_sales_contract_management_id")
    private Long cSalesContractManagementId;

    /**
     * 合同链接
     */
    @TableField("contract_link")
    private String contractLink;

    /**
     * 客户合同链接短连接
     */
    @TableField("short_contract_link")
    private String shortContractLink;

    /**
     * 短链接创建时间
     */
    @TableField("short_contract_link_create")
    private Date shortContractLinkCreate;

    /**
     * 签署结论 1完成
     */
    @NotEmpty(message = "签署确认不能为空！")
    @TableField("sign_conclusion")
    private Integer signConclusion;

    /**
     * 说明
     */
    @TableField("remark")
    private String remark;

    /**
     * 签署确认合同信息
     */
    @TableField(exist = false)
    private List<CSalesSignConfirmationElectronicInfo> signConfirmationElectronicInfos;

    @TableField(exist = false)
    private ElectronicSignaturePersonal electronicSignaturePersonal;

    @TableField(exist = false)
    private Enterprise enterprise;

    @TableField(exist = false)
    private String taskId;

    @TableField(exist = false)
    private Long businessKey;

    public Long getcSalesContractManagementId() {
        return cSalesContractManagementId;
    }

    public void setcSalesContractManagementId(Long cSalesContractManagementId) {
        this.cSalesContractManagementId = cSalesContractManagementId;
    }

    public String getContractLink() {
        return contractLink;
    }

    public void setContractLink(String contractLink) {
        this.contractLink = contractLink;
    }

    public String getShortContractLink() {
        return shortContractLink;
    }

    public void setShortContractLink(String shortContractLink) {
        this.shortContractLink = shortContractLink;
    }

    public Date getShortContractLinkCreate() {
        return shortContractLinkCreate;
    }

    public Integer getSignConclusion() {
        return signConclusion;
    }

    public void setSignConclusion(Integer signConclusion) {
        this.signConclusion = signConclusion;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<CSalesSignConfirmationElectronicInfo> getSignConfirmationElectronicInfos() {
        return signConfirmationElectronicInfos;
    }

    public void setSignConfirmationElectronicInfos(List<CSalesSignConfirmationElectronicInfo> signConfirmationElectronicInfos) {
        this.signConfirmationElectronicInfos = signConfirmationElectronicInfos;
    }

    public String getTaskId() {
        return taskId;
    }

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

    public Enterprise getEnterprise() {
        return enterprise;
    }

    public void setEnterprise(Enterprise enterprise) {
        this.enterprise = enterprise;
    }

    public ElectronicSignaturePersonal getElectronicSignaturePersonal() {
        return electronicSignaturePersonal;
    }

    public void setElectronicSignaturePersonal(ElectronicSignaturePersonal electronicSignaturePersonal) {
        this.electronicSignaturePersonal = electronicSignaturePersonal;
    }

    public void setShortContractLinkCreate(Date shortContractLinkCreate) {
        this.shortContractLinkCreate = shortContractLinkCreate;
    }

    public Long getBusinessKey() {
        return businessKey;
    }

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

    @Override
    public String toString() {
        return "CSalesSignConfirmation{" +
                ", cSalesContractManagementId=" + cSalesContractManagementId +
                ", contractLink=" + contractLink +
                ", shortContractLink=" + shortContractLink +
                ", shortContractLinkCreate=" + shortContractLinkCreate +
                ", signConclusion=" + signConclusion +
                ", remark=" + remark +
                "}";
    }
}
