package com.bs.df.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;

/**
 * 产品信息对象 df_product_info
 *
 * @author bs
 * @date 2024-04-06
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("df_product_info")
@Data
public class DfProductInfo extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** 产品id */
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "产品id")
    private Long id;

    @Excel(name = "所属代理商")
    @TableField(exist = false)
    private String brokerName;

    /** 产品名称 */

    @Excel(name = "产品名称")
    @ApiModelProperty(value = "产品名称")
    private String productName;

    /** 产品简称 */

    @Excel(name = "产品简称")
    @ApiModelProperty(value = "产品简称")
    private String simpleName;

    /** 产品类型 */

    @Excel(name = "产品类型",dictType = "product_type")
    @ApiModelProperty(value = "产品类型")
    private String productType;

    /** 产品细类 */

    @Excel(name = "产品细类")
    @ApiModelProperty(value = "产品细类")
    private String productSubtype;

    /** 贷款期限 */

    @Excel(name = "贷款期限")
    @ApiModelProperty(value = "贷款期限")
    private String loanTerm;

    /** 最高额度（元） */

    @Excel(name = "最高额度（元）")
    @ApiModelProperty(value = "最高额度（元）")
    private Long maxAmount;

    /** 年利率（单利） */

    //@Excel(name = "年利率", readConverterExp = "单=利")
    @ApiModelProperty(value = "年利率（单利）")
    private BigDecimal interestRateBegin;

    //@Excel(name = "年利率止", readConverterExp = "单=利")
    @ApiModelProperty(value = "年利率（单利）")
    private BigDecimal interestRateEnd;

    @Excel(name = "年利率（单利）")
    @TableField(exist = false)
    private String interestRate;

    /** 产品简介 */

    @Excel(name = "产品简介")
    @ApiModelProperty(value = "产品简介")
    private String productIntro;

    /** 产品详情（富文本） */

    @Excel(name = "产品详情")
    @ApiModelProperty(value = "产品详情（富文本）")
    private String productDetail;

    /** 上架时间起 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上架时间起", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "上架时间起")
    private Date listBegin;

    /** 上架时间止 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上架时间止", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "上架时间止")
    private Date listEnd;

    /** 还款周期 */

    @Excel(name = "还款周期")
    @ApiModelProperty(value = "还款周期")
    private String repaymentCycle;

    /** 还款方式 */

    @Excel(name = "还款方式")
    @ApiModelProperty(value = "还款方式")
    private String repaymentMethod;

    /** 展业城市 */

    @Excel(name = "展业城市")
    @ApiModelProperty(value = "展业城市")
    private String businessCity;

    /** 综合费率 */

    @Excel(name = "综合费率")
    @ApiModelProperty(value = "综合费率")
    private String combinedRates;

    /** 状态0草稿1上架 */

    @Excel(name = "状态",dictType = "product_status")
    @ApiModelProperty(value = "状态0草稿1上架")
    private String status;

    /** 申请链接 */

    @Excel(name = "申请链接")
    @ApiModelProperty(value = "申请链接")
    private String applicationLink;

    /** 备注 */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    @Excel(name = "序号")
    @ApiModelProperty(value = "序号")
    private String serialNumber;

    @TableField(exist = false)
    private Long maxAmountBegin;

    @TableField(exist = false)
    private Long maxAmountEnd;

    @TableField(exist = false)
    private String businessCityByName;

    /** 判断是否根据代理商查询，0为是 */

    @TableField(exist = false)
    private String selectByBroker;

    @TableField(exist = false)
    private String brokerIds;

    //申请人数
    @TableField(exist = false)
    private Long applicantNum;

    @TableField(exist = false)
    private Long brokerId;


    @TableField(exist = false)
    private String userId;

    @TableField(exist = false)
    private Long[] ids;


    //是否启动代理商权限
    @TableField(exist = false)
    private String isBroker;

    @TableField(exist = false)
    private String isSelectBroker;

    @TableField(exist = false)
    private String orderByColumn;

    @TableField(exist = false)
    private String isRecommend;

}
