package com.sunxung.factoring.entity.purchcontractmanagement;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.entprise.Enterprise;
import com.sunxung.factoring.entity.sys.FileStorage;
import com.sunxung.factoring.entity.tradingPlatform.Platform;

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

/**
 * <p>
 * 采购合同-变更审核表
 * </p>
 *
 * @author daxian
 * @since 2022-03-14
 */
@TableName("purch_contract_supplement_approval")
public class PurchContractSupplementApproval extends BaseEntity {

    private static final long serialVersionUID = 1L;

    public PurchContractSupplementApproval() {
    }

    /**
     * 采购补充合同信息表Id
     */
    @TableField("purch_contract_supplement_info_id")
    private Long purchContractSupplementInfoId;

    /**
     * 审批意见
     */
    @TableField("approval_comment")
    private String approvalComment;

    /**
     * 审批结论
     */
    @TableField("approval_conclusion")
    private String approvalConclusion;

    /**
     * 价格规则计算
     */
    @TableField("price_rule_detail")
    private String priceRuleDetail;

    /**
     * 合同生效日
     */
    @NotNull(message = "合同生效日不能为空！")
    @TableField("contract_effect_date")
    private String contractEffectDate;

    /**
     * 审核人Id
     */
    @TableField("auditor_id")
    private Long auditorId;

    /**
     * 0线下签署  1线上签署
     */
    @TableField("sign_mode")
    private Integer signMode;

    /**
     * 是否上传合同文件 0不上传  1上传
     */
    @TableField("upload")
    private Integer upload;

    /**
     * 其他约定
     */
    @TableField(exist = false)
    private List<String> comments;

    /**
     * 是否使用系统生成的合同
     * 0 不使用  1使用
     */
    @TableField("use_contract")
    private Integer useContract;

    /**
     * 是否提交 0 不提交 1 提交
     */
    @TableField("visible")
    private Integer visible;

    /**
     * 合同文件
     */
    @TableField(exist = false)
    private FileStorage fileStorage;

    /**
     * 上传的合同
     */
    @TableField(exist = false)
    public List<UploadPurchSupplementContract> uploadPurchSupplementContracts;

    @TableField(exist = false)
    private Integer online;

    @TableField(exist = false)
    private Long businessKey;

    @TableField(exist = false)
    private String taskId;

    @TableField(exist = false)
    private Platform platform;

    @TableField(exist = false)
    private Enterprise supplier;


    public Integer getUseContract() {
        return useContract;
    }

    public void setUseContract(Integer useContract) {
        this.useContract = useContract;
    }

    public Integer getOnline() {
        return online;
    }

    public void setOnline(Integer online) {
        this.online = online;
    }

    public FileStorage getFileStorage() {
        return fileStorage;
    }

    public void setFileStorage(FileStorage fileStorage) {
        this.fileStorage = fileStorage;
    }

    public List<UploadPurchSupplementContract> getUploadPurchSupplementContracts() {
        return uploadPurchSupplementContracts;
    }

    public void setUploadPurchSupplementContracts(List<UploadPurchSupplementContract> uploadPurchSupplementContracts) {
        this.uploadPurchSupplementContracts = uploadPurchSupplementContracts;
    }

    public Integer getSignMode() {
        return signMode;
    }

    public void setSignMode(Integer signMode) {
        this.signMode = signMode;
    }

    public Integer getUpload() {
        return upload;
    }

    public void setUpload(Integer upload) {
        this.upload = upload;
    }

    public List<String> getComments() {
        return comments;
    }

    public void setComments(List<String> comments) {
        this.comments = comments;
    }

    public Long getPurchContractSupplementInfoId() {
        return purchContractSupplementInfoId;
    }

    public void setPurchContractSupplementInfoId(Long purchContractSupplementInfoId) {
        this.purchContractSupplementInfoId = purchContractSupplementInfoId;
    }
    public String getApprovalComment() {
        return approvalComment;
    }

    public void setApprovalComment(String approvalComment) {
        this.approvalComment = approvalComment;
    }
    public String getApprovalConclusion() {
        return approvalConclusion;
    }

    public void setApprovalConclusion(String approvalConclusion) {
        this.approvalConclusion = approvalConclusion;
    }
    public Long getAuditorId() {
        return auditorId;
    }

    public void setAuditorId(Long auditorId) {
        this.auditorId = auditorId;
    }

    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;
    }

    public Integer getVisible() {
        return visible;
    }

    public void setVisible(Integer visible) {
        this.visible = visible;
    }

    public String getPriceRuleDetail() {
        return priceRuleDetail;
    }

    public void setPriceRuleDetail(String priceRuleDetail) {
        this.priceRuleDetail = priceRuleDetail;
    }

    public String getContractEffectDate() {
        return contractEffectDate;
    }

    public void setContractEffectDate(String contractEffectDate) {
        this.contractEffectDate = contractEffectDate;
    }

    public Platform getPlatform() {
        return platform;
    }

    public void setPlatform(Platform platform) {
        this.platform = platform;
    }

    public Enterprise getSupplier() {
        return supplier;
    }

    public void setSupplier(Enterprise supplier) {
        this.supplier = supplier;
    }

    @Override
    public String toString() {
        return "PurchContractSupplementApproval{" +
            "purchContractSupplementInfoId=" + purchContractSupplementInfoId +
            ", approvalComment=" + approvalComment +
            ", approvalConclusion=" + approvalConclusion +
            ", auditorId=" + auditorId +
        "}";
    }
}
