package com.sunxung.factoring.entity.settlement;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.sys.FileStorage;
import com.sunxung.factoring.entity.sys.FileStorageDO;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 结算单-电子合同信息表
 * @author liutao
 * @date 2022.3.9
 */
@TableName("c_settlement_electronic_info")
public class SettlementElectronicInfo extends BaseEntity {
    /**
     * 结算单基础信息表id
     */
    @TableField("c_settlement_basic_info_id")
    private Long settlementBasicInfoId;
    /**
     * 认证链接
     */
    @TableField("certify_link")
    private String certifyLink;
    /**
     * 认证状态
     */
    @TableField("certify_status")
    private Integer certifyStatus;
    /**
     * 合同链接
     */
    @TableField("contract_link")
    private String contractLink;
    /**
     * 签署状态
     */
    @TableField("sign_status")
    private Integer signStatus;
    /**
     * 二网认证短链接
     */
    @TableField("short_contract_link")
    private String shortContractLink;

    /**
     * 客户合同交易id
     */
    @TableField("transaction_id")
    private String transactionId;

    /**
     * 短连接的生成日期
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField("short_contract_link_create")
    private Date shortContractLinkCreate;

    /**
     * 结算单（已签署）附件
     */
    @TableField(exist = false)
    private FileStorageDO settlementSignedFile;

    /**
     * 签署意见
     */
    @TableField("sign_comment")
    private String signComment;

    /**
     * '签署结论
     */
    @NotNull(message = "请选择审核结论")
    @TableField("sign_conclusion")
    private String signConclusion;
    /**
     * 结算单（已签署）附件
     */
    @TableField(exist = false)
    private String supplierName;

    public SettlementElectronicInfo() {
    }

    public Long getSettlementBasicInfoId() {
        return settlementBasicInfoId;
    }

    public void setSettlementBasicInfoId(Long settlementBasicInfoId) {
        this.settlementBasicInfoId = settlementBasicInfoId;
    }

    public String getCertifyLink() {
        return certifyLink;
    }

    public void setCertifyLink(String certifyLink) {
        this.certifyLink = certifyLink;
    }

    public Integer getCertifyStatus() {
        return certifyStatus;
    }

    public void setCertifyStatus(Integer certifyStatus) {
        this.certifyStatus = certifyStatus;
    }

    public Integer getSignStatus() {
        return signStatus;
    }

    public void setSignStatus(Integer signStatus) {
        this.signStatus = signStatus;
    }

    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 void setShortContractLinkCreate(Date shortContractLinkCreate) {
        this.shortContractLinkCreate = shortContractLinkCreate;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public FileStorageDO getSettlementSignedFile() {
        return settlementSignedFile;
    }

    public void setSettlementSignedFile(FileStorageDO settlementSignedFile) {
        this.settlementSignedFile = settlementSignedFile;
    }

    public String getSignComment() {
        return signComment;
    }

    public void setSignComment(String signComment) {
        this.signComment = signComment;
    }

    public String getSignConclusion() {
        return signConclusion;
    }

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

    public String getSupplierName() {
        return supplierName;
    }

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

    @Override
    public String toString() {
        return "SettlementElectronicInfo{" +
                "settlementBasicInfoId=" + settlementBasicInfoId +
                ", certifyLink='" + certifyLink + '\'' +
                ", certifyStatus=" + certifyStatus +
                ", contractLink='" + contractLink + '\'' +
                ", signStatus=" + signStatus +
                '}';
    }
}
