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

import com.baomidou.mybatisplus.annotation.TableField;
import com.sunxung.factoring.entity.BaseEntity;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;

import java.util.List;

/**
 * @Description : 额度支用-主合同历史信息
 * @Author : L.Jia
 * @Date: 2023-12-12 21:27
 */
public class ReviewMasterContractHis extends BaseEntity {

    /**
     * 对应额度支用信息历史Id
     */
    private Long reviewQuotaDisburseHisId;

    @Length(max = 50, message = "合同名称不能超过50个字符")
    private String contractName;
    @Length(max = 50, message = "合同编号不能超过50个字符")
    private String contractNo;
    /**
     * 保理商ID
     */
    private Long factoringId;
    @Length(max = 50, message = "保理商名称不能超过50个字符")
    private String factoringName;
    @Length(max = 18, message = "保理商统一社会信用码不能超过18个字符")
    private String factoringSocialCreditCode;
    @Length(max = 100, message = "保理商注册地址不能超过100个字符")
    private String factoringAddress;
    @Length(max = 50, message = "保理商法人不能超过50个字符")
    private String factoringLegalPerson;
    /***
     * 保理申请人统一社会信用码
     */
    private String applicantSocialCreditCode;

    /**
     * 保理申请人公司ID
     **/
    private Long applicantCompanyId;
    @Length(max = 50, message = "保理申请人联系人不能超过50个字符")
    private String applicantContact;
    @Length(max = 50, message = "保理申请人联系电话不能超过50个字符")
    private String applicantContactNumber;
    @Length(max = 100, message = "保理申请人公司名称不能超过100个字符")
    private String applicantCompanyName;

    /**
     * 保理申请人邮箱
     **/
    private String applicantEmail;

    @Length(max = 500, message = "保理申请人公司注册地址不能超过500个字符")
    private String applicantCompanyAddress;
    @Length(max = 500, message = "保理申请人公司法人不能超过500个字符")
    private String applicantCompanyLegalPerson;
    @Length(max = 500, message = "保理专户户名不能超过500个字符")
    private String factoringAccountName;
    @Length(max = 500, message = "保理专户账户不能超过500个字符")
    private String factoringAccount;
    @Length(max = 500, message = "保理专户开户行不能超过500个字符")
    private String factoringAccountBank;
    @Length(max = 500, message = "保理专户户名2不能超过500个字符")
    private String factoringAccountName2;
    @Length(max = 500, message = "保理专户账户2不能超过500个字符")
    private String factoringAccount2;
    @Length(max = 500, message = "保理专户开户行2不能超过500个字符")
    private String factoringAccountBank2;
    @Length(max = 500, message = "我司指定账户户名不能超过500个字符")
    private String ourAccountName;
    @Length(max = 500, message = "我司指定账户不能超过500个字符")
    private String ourAccount;
    @Length(max = 500, message = "我司指定账户开户行不能超过500个字符")
    private String ourAccountBank;
    @Length(max = 500, message = "保理申请人指定账户户名不能超过500个字符")
    private String applicantDesignatedAccountName;
    @Length(max = 500, message = "保理申请人指定账户不能超过500个字符")
    private String applicantDesignatedAccount;
    @Length(max = 500, message = "保理申请人指定账户开户行不能超过500个字符")
    private String applicantDesignatedBank;
    /**
     * 池保理融资确认书编号
     **/
    private String poolFactoringFinancingConfirmNo;

    //保理商联系人
    private String factoringAgentName;
    //保理商联系人电话
    private String factoringAgentPhone;
    //保理商联系人邮箱
    @Email(message = "保理商联系人邮箱格式不正确")
    private String factoringAgentEmail;
    //是否双保理： 0：否 1：是
    private int doubleFactoringType;
    //贸易平台Id
    private Long platformId;
    //贸易平台名称
    private String platformName;
    //贸易平台法定代表人
    private String platformLegal;
    //贸易平台注册地址
    private String platformAddress;
    //贸易平台联系人
    private String platformContact;
    //贸易平台联系人电话
    private String platformContactPhone;
    //贸易平台联系人邮箱
    private String platformContactEmail;

    /**
     * 债务人信息
     **/
    @TableField(exist = false)
    private List<ReviewMasterContractDebtorHis> debtorHisList;

    public String getContractName() {
        return contractName;
    }

    public void setContractName(String contractName) {
        this.contractName = contractName;
    }

    public String getContractNo() {
        return contractNo;
    }

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

    public Long getFactoringId() {
        return factoringId;
    }

    public void setFactoringId(Long factoringId) {
        this.factoringId = factoringId;
    }

    public String getFactoringName() {
        return factoringName;
    }

    public void setFactoringName(String factoringName) {
        this.factoringName = factoringName;
    }

    public String getFactoringSocialCreditCode() {
        return factoringSocialCreditCode;
    }

    public void setFactoringSocialCreditCode(String factoringSocialCreditCode) {
        this.factoringSocialCreditCode = factoringSocialCreditCode;
    }

    public String getFactoringAddress() {
        return factoringAddress;
    }

    public void setFactoringAddress(String factoringAddress) {
        this.factoringAddress = factoringAddress;
    }

    public String getFactoringLegalPerson() {
        return factoringLegalPerson;
    }

    public void setFactoringLegalPerson(String factoringLegalPerson) {
        this.factoringLegalPerson = factoringLegalPerson;
    }

    public String getApplicantSocialCreditCode() {
        return applicantSocialCreditCode;
    }

    public void setApplicantSocialCreditCode(String applicantSocialCreditCode) {
        this.applicantSocialCreditCode = applicantSocialCreditCode;
    }

    public Long getApplicantCompanyId() {
        return applicantCompanyId;
    }

    public void setApplicantCompanyId(Long applicantCompanyId) {
        this.applicantCompanyId = applicantCompanyId;
    }

    public String getApplicantContact() {
        return applicantContact;
    }

    public void setApplicantContact(String applicantContact) {
        this.applicantContact = applicantContact;
    }

    public String getApplicantContactNumber() {
        return applicantContactNumber;
    }

    public void setApplicantContactNumber(String applicantContactNumber) {
        this.applicantContactNumber = applicantContactNumber;
    }

    public String getApplicantCompanyName() {
        return applicantCompanyName;
    }

    public void setApplicantCompanyName(String applicantCompanyName) {
        this.applicantCompanyName = applicantCompanyName;
    }

    public String getApplicantEmail() {
        return applicantEmail;
    }

    public void setApplicantEmail(String applicantEmail) {
        this.applicantEmail = applicantEmail;
    }

    public String getApplicantCompanyAddress() {
        return applicantCompanyAddress;
    }

    public void setApplicantCompanyAddress(String applicantCompanyAddress) {
        this.applicantCompanyAddress = applicantCompanyAddress;
    }

    public String getApplicantCompanyLegalPerson() {
        return applicantCompanyLegalPerson;
    }

    public void setApplicantCompanyLegalPerson(String applicantCompanyLegalPerson) {
        this.applicantCompanyLegalPerson = applicantCompanyLegalPerson;
    }

    public String getFactoringAccountName() {
        return factoringAccountName;
    }

    public void setFactoringAccountName(String factoringAccountName) {
        this.factoringAccountName = factoringAccountName;
    }

    public String getFactoringAccount() {
        return factoringAccount;
    }

    public void setFactoringAccount(String factoringAccount) {
        this.factoringAccount = factoringAccount;
    }

    public String getFactoringAccountBank() {
        return factoringAccountBank;
    }

    public void setFactoringAccountBank(String factoringAccountBank) {
        this.factoringAccountBank = factoringAccountBank;
    }

    public String getFactoringAccountName2() {
        return factoringAccountName2;
    }

    public void setFactoringAccountName2(String factoringAccountName2) {
        this.factoringAccountName2 = factoringAccountName2;
    }

    public String getFactoringAccount2() {
        return factoringAccount2;
    }

    public void setFactoringAccount2(String factoringAccount2) {
        this.factoringAccount2 = factoringAccount2;
    }

    public String getFactoringAccountBank2() {
        return factoringAccountBank2;
    }

    public void setFactoringAccountBank2(String factoringAccountBank2) {
        this.factoringAccountBank2 = factoringAccountBank2;
    }

    public String getOurAccountName() {
        return ourAccountName;
    }

    public void setOurAccountName(String ourAccountName) {
        this.ourAccountName = ourAccountName;
    }

    public String getOurAccount() {
        return ourAccount;
    }

    public void setOurAccount(String ourAccount) {
        this.ourAccount = ourAccount;
    }

    public String getOurAccountBank() {
        return ourAccountBank;
    }

    public void setOurAccountBank(String ourAccountBank) {
        this.ourAccountBank = ourAccountBank;
    }

    public String getApplicantDesignatedAccountName() {
        return applicantDesignatedAccountName;
    }

    public void setApplicantDesignatedAccountName(String applicantDesignatedAccountName) {
        this.applicantDesignatedAccountName = applicantDesignatedAccountName;
    }

    public String getApplicantDesignatedAccount() {
        return applicantDesignatedAccount;
    }

    public void setApplicantDesignatedAccount(String applicantDesignatedAccount) {
        this.applicantDesignatedAccount = applicantDesignatedAccount;
    }

    public String getApplicantDesignatedBank() {
        return applicantDesignatedBank;
    }

    public void setApplicantDesignatedBank(String applicantDesignatedBank) {
        this.applicantDesignatedBank = applicantDesignatedBank;
    }

    public String getPoolFactoringFinancingConfirmNo() {
        return poolFactoringFinancingConfirmNo;
    }

    public void setPoolFactoringFinancingConfirmNo(String poolFactoringFinancingConfirmNo) {
        this.poolFactoringFinancingConfirmNo = poolFactoringFinancingConfirmNo;
    }

    public List<ReviewMasterContractDebtorHis> getDebtorHisList() {
        return debtorHisList;
    }

    public void setDebtorHisList(List<ReviewMasterContractDebtorHis> debtorHisList) {
        this.debtorHisList = debtorHisList;
    }

    public String getFactoringAgentName() {
        return factoringAgentName;
    }

    public void setFactoringAgentName(String factoringAgentName) {
        this.factoringAgentName = factoringAgentName;
    }

    public String getFactoringAgentPhone() {
        return factoringAgentPhone;
    }

    public void setFactoringAgentPhone(String factoringAgentPhone) {
        this.factoringAgentPhone = factoringAgentPhone;
    }

    public String getFactoringAgentEmail() {
        return factoringAgentEmail;
    }

    public void setFactoringAgentEmail(String factoringAgentEmail) {
        this.factoringAgentEmail = factoringAgentEmail;
    }

    public int getDoubleFactoringType() {
        return doubleFactoringType;
    }

    public void setDoubleFactoringType(int doubleFactoringType) {
        this.doubleFactoringType = doubleFactoringType;
    }

    public Long getPlatformId() {
        return platformId;
    }

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

    public String getPlatformName() {
        return platformName;
    }

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

    public String getPlatformLegal() {
        return platformLegal;
    }

    public void setPlatformLegal(String platformLegal) {
        this.platformLegal = platformLegal;
    }

    public String getPlatformAddress() {
        return platformAddress;
    }

    public void setPlatformAddress(String platformAddress) {
        this.platformAddress = platformAddress;
    }

    public String getPlatformContact() {
        return platformContact;
    }

    public void setPlatformContact(String platformContact) {
        this.platformContact = platformContact;
    }

    public String getPlatformContactPhone() {
        return platformContactPhone;
    }

    public void setPlatformContactPhone(String platformContactPhone) {
        this.platformContactPhone = platformContactPhone;
    }

    public String getPlatformContactEmail() {
        return platformContactEmail;
    }

    public void setPlatformContactEmail(String platformContactEmail) {
        this.platformContactEmail = platformContactEmail;
    }

    public Long getReviewQuotaDisburseHisId() {
        return reviewQuotaDisburseHisId;
    }

    public void setReviewQuotaDisburseHisId(Long reviewQuotaDisburseHisId) {
        this.reviewQuotaDisburseHisId = reviewQuotaDisburseHisId;
    }
}
