package com.sunxung.factoring.entity.salescontractmanagement;

import java.math.BigDecimal;

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

import java.util.List;

/**
 * <p>
 * 销售合同-基本信息表
 * </p>
 *
 * @author yafan
 * @since 2023-12-09
 */
@TableName("c_sales_contract_basic_info")
public class CSalesContractBasicInfo 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 performanceBond;

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

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

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

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

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

    @TableField(exist = false)
    private List<FileStorageDO> fileList;

    /**
     * 1 提交 0 暂存
     */
    @TableField(exist = false)
    private Integer commit;

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

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

    public Boolean getRetention() {
        return retention;
    }

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

    public BigDecimal getRetentionPercent() {
        return retentionPercent;
    }

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

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

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

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

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

    public List<Long> getFileIds() {
        return fileIds;
    }

    public void setFileIds(List<Long> fileIds) {
        this.fileIds = fileIds;
    }

    public List<FileStorageDO> getFileList() {
        return fileList;
    }

    public void setFileList(List<FileStorageDO> fileList) {
        this.fileList = fileList;
    }

    public Integer getCommit() {
        return commit;
    }

    public void setCommit(Integer commit) {
        this.commit = commit;
    }

    @Override
    public String toString() {
        return "CSalesContractBasicInfo{" +
            ", cSalesContractManagementId=" + cSalesContractManagementId +
            ", contractNumber=" + contractNumber +
            ", contractName=" + contractName +
            ", contractPlanAmountType=" + contractPlanAmountType +
            ", retentionPercent=" + retentionPercent +
        "}";
    }
}
