package com.inkasso.factoring.purchManagement.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inkasso.factoring.common.entity.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 采购合同-质保金信息表
 * </p>
 *
 * @author yafan
 * @since 2023-12-13
 */
@TableName("c_purch_contract_retention_info")
public class CPurchContractRetentionInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

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

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

    /**
     * 质保金是否有上限，0:无 1:有
     */
    @TableField("is_limit")
    private Boolean top;

    /**
     * 质保金上限
     */
    @TableField("retention_limit")
    private BigDecimal retentionLimit;

    /**
     * 质保金释放规则
     */
    @TableField("release_method")
    private String releaseMethod;

    /**
     * 质保金释放时间
     */
    @TableField("release_time")
    private String releaseTime;

    /**
     * 释放日期
     */
    @TableField("release_date")
    private Date releaseDate;

    /**
     * 释放天数
     */
    @TableField("release_days")
    private Integer releaseDays;

    /**
     * 采购合同基本信息表Id
     */
    @TableField("c_purch_contract_basic_info_id")
    private Long purchContractBasicInfoId;

    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 Boolean getTop() {
        return top;
    }

    public void setTop(Boolean top) {
        this.top = top;
    }

    public BigDecimal getRetentionLimit() {
        return retentionLimit;
    }

    public void setRetentionLimit(BigDecimal retentionLimit) {
        this.retentionLimit = retentionLimit;
    }

    public String getReleaseMethod() {
        return releaseMethod;
    }

    public void setReleaseMethod(String releaseMethod) {
        this.releaseMethod = releaseMethod;
    }

    public Date getReleaseDate() {
        return releaseDate;
    }

    public void setReleaseDate(Date releaseDate) {
        this.releaseDate = releaseDate;
    }

    public Integer getReleaseDays() {
        return releaseDays;
    }

    public void setReleaseDays(Integer releaseDays) {
        this.releaseDays = releaseDays;
    }

    public Long getPurchContractBasicInfoId() {
        return purchContractBasicInfoId;
    }

    public void setPurchContractBasicInfoId(Long purchContractBasicInfoId) {
        this.purchContractBasicInfoId = purchContractBasicInfoId;
    }

    public String getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(String releaseTime) {
        this.releaseTime = releaseTime;
    }

    @Override
    public String toString() {
        return "CPurchContractRetentionInfo{" +
                ", retentionPercent=" + retentionPercent +
                ", retentionLimit=" + retentionLimit +
                ", releaseMethod=" + releaseMethod +
                ", releaseDate=" + releaseDate +
                ", releaseDays=" + releaseDays +
                "}";
    }
}
