package com.ruoyi.loanpricing.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 利率定价流程对象 loan_pricing_workflow
 *
 * @author ruoyi
 * @date 2025-01-19
 */
@Data
@TableName("loan_pricing_workflow")
public class LoanPricingWorkflow implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 模型输出ID */
    private Long modelOutputId;

    /** 业务方流水号 */
    private String serialNum;

    /** 机构编码 */
    private String orgCode;

    /** 运行模式: 1-同步 */
    private String runType;

    /** 客户内码 */
    @NotBlank(message = "客户内码不能为空")
    private String custIsn;

    /** 客户类型: 个人/企业 */
    @NotBlank(message = "客户类型不能为空")
    private String custType;

    /** 担保方式: 信用/保证/抵押/质押 */
    @NotBlank(message = "担保方式不能为空")
    private String guarType;

    /** 中间业务_个人_快捷支付: true/false */
    private String midPerQuickPay;

    /** 中间业务_个人_电费代扣: true/false */
    private String midPerEleDdc;

    /** 中间业务_企业_电费代扣: true/false */
    private String midEntEleDdc;

    /** 中间业务_企业_水费代扣: true/false */
    private String midEntWaterDdc;

    /** 申请金额(元) */
    @NotBlank(message = "申请金额不能为空")
    private String applyAmt;

    /**
     * 贷款期限
     */
    private String loanTerm;

    /**
     * 还款方式: 分期/不分期
     */
    private String repayMethod;

    /** 净身企业: true/false */
    private String isCleanEnt;

    /** 开立基本结算账户: true/false */
    private String hasSettleAcct;

    /** 制造业企业: true/false */
    private String isManufacturing;

    /**
     * 贸易和建筑业企业标识: true/false
     */
    @TableField("is_trade_construction")
    private String isTradeBuildEnt;

    /**
     * 绿色贷款: true/false
     */
    private String isGreenLoan;

    /** 是否纳税信用等级A级: true/false */
    private String isTaxA;

    /** 是否县级及以上农业龙头企业: true/false */
    private String isAgriLeading;

    /** 贷款用途: consumer-消费/business-经营 */
    private String loanPurpose;

    /** 业务种类: 新增/存量新增/存量转贷 */
    private String businessType;

    /** 历史贷款利率 */
    private String loanRateHistory;

    /** 存单票面利率 */
    private String couponRate;

    /** 余值覆盖: 0/1 */
    private String resCover;

    /** 是否有经营佐证: true/false */
    private String bizProof;

    /** 循环功能: true/false */
    private String loanLoop;

    /** 抵质押类型: 一类/二类/三类/四类 */
    private String collType;

    /** 抵质押物是否三方所有: true/false */
    private String collThirdParty;

    /** 贷款利率 */
    private String loanRate;

    /**
     * 执行利率(%)
     */
    private String executeRate;

    /** 客户名称 */
    private String custName;

    /**
     * 证件类型
     */
    private String idType;

    /** 证件号码 */
    private String idNum;

    /** 是否普惠小微借款人: true/false */
    private String isInclusiveFinance;

    /** 创建人部门ID */
    private Long deptId;

    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /** 列表数据权限创建者过滤条件 */
    @TableField(exist = false)
    private String dataScopeCreateBy;

    /** 列表数据权限部门过滤条件 */
    @TableField(exist = false)
    private Long dataScopeDeptId;

    /** 创建时间查询起始值 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date beginCreateTime;

    /** 创建时间查询结束值 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date endCreateTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
