package cn.com.ctop.finance.payment.entity;

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.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;

import java.util.Date;

/**
 * 申请垫款表
 */
@Data
@TableName("finance_payment_application")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "finance_payment_application对象", description = "申请垫款表")
public class FinancePaymentApplication {

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 客户(主体)ID
     */
    @Excel(name = "客户(主体)ID", width = 15)
    @ApiModelProperty(value = "客户(主体)ID")
    private String advertiserId;
    /**
     * 客户(主体)
     */
    @Excel(name = "客户(主体) ", width = 15)
    @ApiModelProperty(value = "客户(主体) ")
    private String advertiserName;
    /**
     * 产品id
     */
    @Excel(name = "产品id", width = 15)
    @ApiModelProperty(value = "产品id")
    private Long productId;
    /**
     * 产品
     */
    @Excel(name = "产品", width = 15)
    @ApiModelProperty(value = "产品")
    private String productName;
    /**
     * 拨款类型：1-预付款、2-垫款
     */
    @Excel(name = "拨款类型：1-预付款、2-垫款", width = 15)
    @ApiModelProperty(value = "拨款类型：1-预付款、2-垫款")
    private String paymentType;
    /**
     * 媒体类型 1-头条、2-快手、7-磁力金牛、9-广点通
     */
    @Excel(name = "媒体类型 1-头条、2-快手、7-磁力金牛、9-广点通", width = 15)
    @ApiModelProperty(value = "媒体类型 1-头条、2-快手、7-磁力金牛、9-广点通")
    private String paymentMedia;
    /**
     * 端口类型：1-汇创、2-骄阳、3-江西五七、4-北京五六七
     */
    @Excel(name = "端口类型：1-汇创、2-骄阳、3-江西五七、4-北京五六七", width = 15)
    @ApiModelProperty(value = "端口类型：1-汇创、2-骄阳、3-江西五七、4-北京五六七")
    private String paymentPort;
    /**
     * 现金金额
     */
    @Excel(name = "现金金额", width = 15)
    @ApiModelProperty(value = "现金金额")
    private java.math.BigDecimal cashAmount;
    /**
     * 账显金额
     */
    @Excel(name = "账显金额", width = 15)
    @ApiModelProperty(value = "账显金额")
    private java.math.BigDecimal displayAmount;
    /**
     * 返点类型：1-返货、2-返现
     */
    @Excel(name = "返点类型：1-返货、2-返现", width = 15)
    @ApiModelProperty(value = "返点类型：1-返货、2-返现")
    private String rebateType;
    /**
     * 返点比例
     */
    @Excel(name = "返点比例", width = 15)
    @ApiModelProperty(value = "返点比例")
    private Double rebateRate;
    /**
     * 状态 1-待审核、2-审核中、3-审核通过、4-临时通过、5-审核拒绝
     */
    @Excel(name = "状态 1-待审核、3-审核通过、4-临时通过、5-审核拒绝", width = 15)
    @ApiModelProperty(value = "状态 1-待审核、3-审核通过、4-临时通过、5-审核拒绝")
    private String auditStatus;
    /**
     * 申请人ID
     */
    @Excel(name = "申请人ID", width = 15)
    @ApiModelProperty(value = "申请人ID")
    private String applicanterId;
    /**
     * 申请人
     */
    @Excel(name = "申请人", width = 15)
    @ApiModelProperty(value = "申请人")
    private String applicanter;
    /**
     * 审核人ID
     */
    @Excel(name = "审核人ID", width = 15)
    @ApiModelProperty(value = "审核人ID")
    private String reviewederId;
    /**
     * 审核人
     */
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    private String revieweder;
    /**
     * 审核意见
     */
    @Excel(name = "审核意见", width = 15)
    @ApiModelProperty(value = "审核意见")
    private String approvalContent;
    /**
     * 是否临时通过:0-否，1-是
     */
    @Excel(name = "是否临时通过:0-否，1-是", width = 15)
    @ApiModelProperty(value = "是否临时通过:0-否，1-是")
    private String temporaryPassage;
    /**
     * 是否临时垫款:0-否，1-是
     */
    @Excel(name = "是否临时垫款:0-否，1-是", width = 15)
    @ApiModelProperty(value = "是否临时垫款:0-否，1-是")
    private String temporaryAdvances;

    private String remarks;
    /**
     * 附件
     */
    @Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String files;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**
     * 开始时间
     */
    @TableField(exist = false)
    private String startDate;
    /**
     * 结束时间
     */
    @TableField(exist = false)
    private String endDate;
    /**
     * 登录人ID
     */
    @TableField(exist = false)
    private String userId;
    /**
     * 登录人角色 sale 销售
     *          finance 财务
     */
    @TableField(exist = false)
    private String auditRole;
}
