package com.sunxung.factoring.entity.biddingManagement;

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 com.sunxung.factoring.entity.sys.FileStorageDTO;
import org.hibernate.validator.constraints.NotEmpty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 招投标管理-保证方式确认表
 * </p>
 *
 * @author yafan
 * @since 2023-11-21
 */
@TableName("bidding_guarantee_method")
public class
BiddingGuaranteeMethod extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 招投标管理基本信息表Id
     */
    @NotEmpty(message = "列表id不能为空！")
    @TableField("bidding_basic_info_id")
    private Long biddingBasicInfoId;

    /**
     * 投标方式 0线下装订 1线上上传
     */
    @TableField("tender_method")
    @NotEmpty(message = "投标方式不能为空！")
    private Integer tenderMethod;

    /**
     * 投标保证方式 0保证金 1保函 2其他
     */
    @TableField("bid_guarantee_method")
    @NotEmpty(message = "投标保证方式不能为空！")
    private Integer bidGuaranteeMethod;

    /**
     * 保证金金额
     */
    @TableField("deposit_amount")
    private BigDecimal depositAmount;

    @TableField(exist = false)
    private Long businessKey;

    /**
     * 保函文件
     */
    @TableField(exist = false)
    private List<Long> guaranteeLetterFileIds;

    /**
     * 支付凭证
     */
    @TableField(exist = false)
    private List<Long> paymentVoucherFileIds;

    /**
     * 投标说明
     */
    @TableField(exist = false)
    private List<Long> bidDescriptionFileIds;


    /**
     * 保函文件
     */
    @TableField(exist = false)
    private List<FileStorage> guaranteeLetterFiles;

    /**
     * 支付凭证
     */
    @TableField(exist = false)
    private List<FileStorage> paymentVoucherFiles;

    /**
     * 投标说明
     */
    @TableField(exist = false)
    private List<FileStorage> bidDescriptionFiles;

    @TableField(exist = false)
    private String taskId;

    public Long getBiddingBasicInfoId() {
        return biddingBasicInfoId;
    }

    public void setBiddingBasicInfoId(Long biddingBasicInfoId) {
        this.biddingBasicInfoId = biddingBasicInfoId;
    }

    public Integer getTenderMethod() {
        return tenderMethod;
    }

    public void setTenderMethod(Integer tenderMethod) {
        this.tenderMethod = tenderMethod;
    }

    public Integer getBidGuaranteeMethod() {
        return bidGuaranteeMethod;
    }

    public void setBidGuaranteeMethod(Integer bidGuaranteeMethod) {
        this.bidGuaranteeMethod = bidGuaranteeMethod;
    }

    public BigDecimal getDepositAmount() {
        return depositAmount;
    }

    public void setDepositAmount(BigDecimal depositAmount) {
        this.depositAmount = depositAmount;
    }

    public Long getBusinessKey() {
        return businessKey;
    }

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

    public List<Long> getGuaranteeLetterFileIds() {
        return guaranteeLetterFileIds;
    }

    public void setGuaranteeLetterFileIds(List<Long> guaranteeLetterFileIds) {
        this.guaranteeLetterFileIds = guaranteeLetterFileIds;
    }

    public List<Long> getPaymentVoucherFileIds() {
        return paymentVoucherFileIds;
    }

    public void setPaymentVoucherFileIds(List<Long> paymentVoucherFileIds) {
        this.paymentVoucherFileIds = paymentVoucherFileIds;
    }

    public List<Long> getBidDescriptionFileIds() {
        return bidDescriptionFileIds;
    }

    public void setBidDescriptionFileIds(List<Long> bidDescriptionFileIds) {
        this.bidDescriptionFileIds = bidDescriptionFileIds;
    }

    public List<FileStorage> getGuaranteeLetterFiles() {
        return guaranteeLetterFiles;
    }

    public void setGuaranteeLetterFiles(List<FileStorage> guaranteeLetterFiles) {
        this.guaranteeLetterFiles = guaranteeLetterFiles;
    }

    public List<FileStorage> getPaymentVoucherFiles() {
        return paymentVoucherFiles;
    }

    public void setPaymentVoucherFiles(List<FileStorage> paymentVoucherFiles) {
        this.paymentVoucherFiles = paymentVoucherFiles;
    }

    public List<FileStorage> getBidDescriptionFiles() {
        return bidDescriptionFiles;
    }

    public void setBidDescriptionFiles(List<FileStorage> bidDescriptionFiles) {
        this.bidDescriptionFiles = bidDescriptionFiles;
    }

    public String getTaskId() {
        return taskId;
    }

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

    @Override
    public String toString() {
        return "BiddingGuaranteeMethod{" +
                ", biddingBasicInfoId=" + biddingBasicInfoId +
                ", tenderMethod=" + tenderMethod +
                ", bidGuaranteeMethod=" + bidGuaranteeMethod +
                ", depositAmount=" + depositAmount +
                "}";
    }
}
