package com.sunxung.factoring.entity.financing.contract;

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.customerinformation.ElectronicSignaturePersonal;
import com.sunxung.factoring.entity.sys.FileStorage;

import java.util.Date;

/**
 * <p>
 * 企业信息管理表
 * </p>
 *
 * @author liutao
 * @since 2022-06-20
 */
@TableName("sys_customer")
public class SysCustomer extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 企业工商信息表id  或者  电子签个人表id
     */
    @TableField("ent_business_id")
    private Long entBusinessId;

    /**
     * 贸易平台id
     */
    @TableField("platform_id")
    private Long platformId;

    /**
     * 企业认证状态 0：未认证 1：已认证
     */
    @TableField("auth_status")
    private Boolean authStatus;

    /**
     * 授权自动签署状态 0：未认证 1：已认证
     */
    @TableField("auto_sign_status")
    private Integer autoSignStatus;

    /**
     * 企业认证链接
     */
    @TableField("auth_url")
    private String authUrl;

    /**
     * 企业认证短链接
     */
    @TableField("short_auth_url")
    private String shortAuthUrl;

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

    /**
     * 自动签署链接
     */
    @TableField("auto_sign_url")
    private String autoSignUrl;

    /**
     * 自动签署短链接
     */
    @TableField("short_auto_sign_url")
    private String shortAutoSignUrl;

    /**
     * 自动签署创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField("short_auto_sign_url_create")
    private Date shortAutoSignUrlCreate;

    /**
     * 在法大大上的客户编号
     */
    @TableField("fdd_customer_id")
    private String fddCustomerId;

    /**
     * 法大大上的交易号
     */
    @TableField("transaction_id")
    private String transactionId;

    /**
     * 开启自动签附件的ID
     */
    @TableField("file_id")
    private Long fileId;

    /**
     * 客户类型 1个人 2公司
     */
    @TableField("account_type")
    private String accountType;

    /**
     * 授权书签署链接
     */
    private String certificateSignUrl;
    /**
     * 授权书签署短链接
     */
    private String certificateShortSignUrl;
    /**
     * 授权书签署短链接创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField("certificate_short_sign_url_create")
    private Date certificateShortSignUrlCreate;
    /**
     * 企业在法大大上签署授权书的交易号
     */
    private String certificateTransactionId;
    /**
     * 企业授权授权书签署状态 0：未签署 1：已签署
     */
    @TableField("certificate_sign_status")
    private Integer certificateSignStatus;
    /**
     * 已经签署的授权书的附件的ID
     */
    private Long certificateFileId;
    @TableField(exist = false)
    private FileStorage certificateFile;

    /**
     * 授权书出征文件附件ID
     */
    @TableField("certificate_supplement_report_file")
    private Long certificateSupplementReportFile;

    /**
     * 授权书合同ID
     */
    @TableField("certificate_contract_id")
    private String certificateContractId;
    /**
     * 授权书下载链接
     */
    @TableField(exist = false)
    private String downloadCertificateFileUrl;

//    @TableField(exist = false)
//    private ElectronicPersonInfo electronicPersonInfo;

    @TableField(exist = false)
    private ElectronicSignaturePersonal electronicSignaturePersonal;

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public String getShortAutoSignUrl() {
        return shortAutoSignUrl;
    }

    public void setShortAutoSignUrl(String shortAutoSignUrl) {
        this.shortAutoSignUrl = shortAutoSignUrl;
    }

    public Date getShortAutoSignUrlCreate() {
        return shortAutoSignUrlCreate;
    }

    public void setShortAutoSignUrlCreate(Date shortAutoSignUrlCreate) {
        this.shortAutoSignUrlCreate = shortAutoSignUrlCreate;
    }

    public Long getFileId() {
        return fileId;
    }

    public void setFileId(Long fileId) {
        this.fileId = fileId;
    }

    public String getShortAuthUrl() {
        return shortAuthUrl;
    }

    public void setShortAuthUrl(String shortAuthUrl) {
        this.shortAuthUrl = shortAuthUrl;
    }

    public Date getShortAuthUrlCreate() {
        return shortAuthUrlCreate;
    }

    public void setShortAuthUrlCreate(Date shortAuthUrlCreate) {
        this.shortAuthUrlCreate = shortAuthUrlCreate;
    }

    public Long getEntBusinessId() {
        return entBusinessId;
    }

    public void setEntBusinessId(Long entBusinessId) {
        this.entBusinessId = entBusinessId;
    }

    public Boolean getAuthStatus() {
        return authStatus;
    }

    public void setAuthStatus(Boolean authStatus) {
        this.authStatus = authStatus;
    }

    public Integer getAutoSignStatus() {
        return autoSignStatus;
    }

    public void setAutoSignStatus(Integer autoSignStatus) {
        this.autoSignStatus = autoSignStatus;
    }

    public String getAuthUrl() {
        return authUrl;
    }

    public void setAuthUrl(String authUrl) {
        this.authUrl = authUrl;
    }

    public String getAutoSignUrl() {
        return autoSignUrl;
    }

    public void setAutoSignUrl(String autoSignUrl) {
        this.autoSignUrl = autoSignUrl;
    }

    public String getFddCustomerId() {
        return fddCustomerId;
    }

    public void setFddCustomerId(String fddCustomerId) {
        this.fddCustomerId = fddCustomerId;
    }

    public String getTransactionId() {
        return transactionId;
    }

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

    public String getCertificateSignUrl() {
        return certificateSignUrl;
    }

    public void setCertificateSignUrl(String certificateSignUrl) {
        this.certificateSignUrl = certificateSignUrl;
    }

    public String getCertificateShortSignUrl() {
        return certificateShortSignUrl;
    }

    public void setCertificateShortSignUrl(String certificateShortSignUrl) {
        this.certificateShortSignUrl = certificateShortSignUrl;
    }

    public Date getCertificateShortSignUrlCreate() {
        return certificateShortSignUrlCreate;
    }

    public void setCertificateShortSignUrlCreate(Date certificateShortSignUrlCreate) {
        this.certificateShortSignUrlCreate = certificateShortSignUrlCreate;
    }

    public String getCertificateTransactionId() {
        return certificateTransactionId;
    }

    public void setCertificateTransactionId(String certificateTransactionId) {
        this.certificateTransactionId = certificateTransactionId;
    }

    public Integer getCertificateSignStatus() {
        return certificateSignStatus;
    }

    public void setCertificateSignStatus(Integer certificateSignStatus) {
        this.certificateSignStatus = certificateSignStatus;
    }

    public Long getCertificateFileId() {
        return certificateFileId;
    }

    public void setCertificateFileId(Long certificateFileId) {
        this.certificateFileId = certificateFileId;
    }

    public Long getCertificateSupplementReportFile() {
        return certificateSupplementReportFile;
    }

    public void setCertificateSupplementReportFile(Long certificateSupplementReportFile) {
        this.certificateSupplementReportFile = certificateSupplementReportFile;
    }

    public String getCertificateContractId() {
        return certificateContractId;
    }

    public void setCertificateContractId(String certificateContractId) {
        this.certificateContractId = certificateContractId;
    }

    public FileStorage getCertificateFile() {
        return certificateFile;
    }

    public void setCertificateFile(FileStorage certificateFile) {
        this.certificateFile = certificateFile;
    }

    public String getDownloadCertificateFileUrl() {
        return downloadCertificateFileUrl;
    }

    public void setDownloadCertificateFileUrl(String downloadCertificateFileUrl) {
        this.downloadCertificateFileUrl = downloadCertificateFileUrl;
    }

    public ElectronicSignaturePersonal getElectronicSignaturePersonal() {
        return electronicSignaturePersonal;
    }

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

    public Long getPlatformId() {
        return platformId;
    }

    public void setPlatformId(Long platformId) {
        this.platformId = platformId;
    }
}
