package com.sunxung.factoring.entity.financing.review;

import com.baomidou.mybatisplus.annotation.TableField;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.creditresolution.BusinessMeetsConditions;
import com.sunxung.factoring.entity.creditresolution.LoanConditions;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import java.util.List;

/**
 * @className:ReviewQuotaDisburseApproval
 * @description:额度支用审批
 * @author:杜小姣
 * @e-mail:1261237207@qq.com
 * @date:2018年8月13日 上午9:35:59
 */
public class ReviewQuotaDisburseApproval extends BaseEntity {

    /**
     * 任务Id
     */
    @TableField(exist = false)
    private String taskId;

    /**
     * 额度支用Id
     */
    private Long reviewQuotaDisburseId;

    /**
     * 币种code
     */
    private String currencyCode;
    /**
     * 通过pass/否决veto 在常量中ConstantConversionUtil.projectInitApprovalResult定义
     **/
    @NotEmpty(message = "评审决议不能为空")
    private String approvalConclusion;

    @Length(max = 3000, message = "审批意见不能为空且最多不能超过3000个字符")
    private String approvalComments;

    /**
     * 处理人：即风险经理
     **/
    private Long assigneeId;
    /**
     * 是否显示，默认0表示否
     **/
    private boolean visible;

    /**
     * 放款条件
     **/
    @TableField(exist = false)
    private List<ReviewLoanCondition> loanConditionList;
    /**
     * 获取评审决议确认节点的 指导性单笔业务满足条件
     **/
    @TableField(exist = false)
    private List<BusinessMeetsConditions> generalConditionList;
    /**
     * 获取评审决议确认节点的 放款条件
     **/
    @TableField(exist = false)
    private List<LoanConditions> meetingLoanConditionList;

    public String getTaskId() {
        return taskId;
    }

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

    public Long getReviewQuotaDisburseId() {
        return reviewQuotaDisburseId;
    }

    public void setReviewQuotaDisburseId(Long reviewQuotaDisburseId) {
        this.reviewQuotaDisburseId = reviewQuotaDisburseId;
    }

    public String getCurrencyCode() {
        return currencyCode;
    }

    public void setCurrencyCode(String currencyCode) {
        this.currencyCode = currencyCode;
    }

    public String getApprovalConclusion() {
        return approvalConclusion;
    }

    public void setApprovalConclusion(String approvalConclusion) {
        this.approvalConclusion = approvalConclusion;
    }

    public String getApprovalComments() {
        return approvalComments;
    }

    public void setApprovalComments(String approvalComments) {
        this.approvalComments = approvalComments;
    }

    public Long getAssigneeId() {
        return assigneeId;
    }

    public void setAssigneeId(Long assigneeId) {
        this.assigneeId = assigneeId;
    }

    public boolean isVisible() {
        return visible;
    }

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

    public List<ReviewLoanCondition> getLoanConditionList() {
        return loanConditionList;
    }

    public void setLoanConditionList(List<ReviewLoanCondition> loanConditionList) {
        this.loanConditionList = loanConditionList;
    }

    public List<BusinessMeetsConditions> getGeneralConditionList() {
        return generalConditionList;
    }

    public void setGeneralConditionList(List<BusinessMeetsConditions> generalConditionList) {
        this.generalConditionList = generalConditionList;
    }

    public List<LoanConditions> getMeetingLoanConditionList() {
        return meetingLoanConditionList;
    }

    public void setMeetingLoanConditionList(List<LoanConditions> meetingLoanConditionList) {
        this.meetingLoanConditionList = meetingLoanConditionList;
    }
}
