package com.sunxung.factoring.entity.salescontractmanagement;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.salescontractmanagement.vo.SalesContractBasicVo;
import com.sunxung.factoring.entity.sys.FileStorageDO;

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

/**
 * <p>
 * 销售合同-基本信息历史表
 * </p>
 *
 * @author yafan
 * @since 2023-12-13
 */
@TableName("sales_contract_basic_info_history")
public class SalesContractBasicInfoHistory extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 销售合同管理Id
     */
    @TableField("c_sales_contract_management_id")
    private Long cSalesContractManagementId;

    /**
     * 合同编号
     */
    @TableField("contract_number")
    private String contractNumber;

    /**
     * 合同名称
     */
    @TableField("contract_name")
    private String contractName;

    /**
     * 合同约定金额类型（固定金额、适时网价）
     */
    @TableField("contract_plan_amount_type")
    private Integer contractPlanAmountType;

    /**
     * 是否有履约保证金，0:无 1:有
     */
    @TableField("is_performance_bond")
    private Boolean isPerformanceBond;

    /**
     * 是否有质保金，0:无 1:有
     */
    @TableField("is_retention")
    private Boolean isRetention;

    /**
     * 质保金比例
     */
    @TableField("retention_percent")
    private BigDecimal retentionPercent;

    /**
     * 人员信息
     */
    @TableField(exist = false)
    private List<SalesContractPersonInfoHistory> personInfoList;

    /**
     * 货物信息
     */
    @TableField(exist = false)
    private List<SalesContractGoodsInfoHistory> goodsInfoList;

    /**
     * 合同文件
     */
    @TableField(exist = false)
    private List<FileStorageDO> fileStorages;


    /**
     * 基础信息
     */
    @TableField(exist = false)
    private SalesContractBasicVo contractBasicVo;

    public Long getcSalesContractManagementId() {
        return cSalesContractManagementId;
    }

    public void setcSalesContractManagementId(Long cSalesContractManagementId) {
        this.cSalesContractManagementId = cSalesContractManagementId;
    }

    public String getContractNumber() {
        return contractNumber;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public String getContractName() {
        return contractName;
    }

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

    public Integer getContractPlanAmountType() {
        return contractPlanAmountType;
    }

    public void setContractPlanAmountType(Integer contractPlanAmountType) {
        this.contractPlanAmountType = contractPlanAmountType;
    }

    public Boolean getPerformanceBond() {
        return isPerformanceBond;
    }

    public void setPerformanceBond(Boolean isPerformanceBond) {
        this.isPerformanceBond = isPerformanceBond;
    }

    public Boolean getRetention() {
        return isRetention;
    }

    public void setRetention(Boolean isRetention) {
        this.isRetention = isRetention;
    }

    public BigDecimal getRetentionPercent() {
        return retentionPercent;
    }

    public void setRetentionPercent(BigDecimal retentionPercent) {
        this.retentionPercent = retentionPercent;
    }

    public List<SalesContractPersonInfoHistory> getPersonInfoList() {
        return personInfoList;
    }

    public void setPersonInfoList(List<SalesContractPersonInfoHistory> personInfoList) {
        this.personInfoList = personInfoList;
    }

    public List<SalesContractGoodsInfoHistory> getGoodsInfoList() {
        return goodsInfoList;
    }

    public void setGoodsInfoList(List<SalesContractGoodsInfoHistory> goodsInfoList) {
        this.goodsInfoList = goodsInfoList;
    }

    public List<FileStorageDO> getFileStorages() {
        return fileStorages;
    }

    public void setFileStorages(List<FileStorageDO> fileStorages) {
        this.fileStorages = fileStorages;
    }

    public SalesContractBasicVo getContractBasicVo() {
        return contractBasicVo;
    }

    public void setContractBasicVo(SalesContractBasicVo contractBasicVo) {
        this.contractBasicVo = contractBasicVo;
    }

    @Override
    public String toString() {
        return "SalesContractBasicInfoHistory{" +
                ", contractNumber=" + contractNumber +
                ", contractName=" + contractName +
                ", contractPlanAmountType=" + contractPlanAmountType +
                ", isPerformanceBond=" + isPerformanceBond +
                ", isRetention=" + isRetention +
                ", retentionPercent=" + retentionPercent +
                "}";
    }
}
