package com.muchinfo.mtp3pojos.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

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

/**
 * <p>
 * 用户电子签记录表
 * </p>
 *
 * @author XKF
 * @since 2024-07-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("USERESIGNRECORD")
@ApiModel(value="Useresignrecord对象", description="用户电子签记录表")
@AllArgsConstructor
@NoArgsConstructor
@Builder
@KeySequence(value = "SEQ_USERESIGNRECORD")
public class Useresignrecord extends Model<Useresignrecord> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "记录ID(SEQ_USERESIGNRECORD)")
    @TableId(value = "RECORDID", type = IdType.INPUT)
    private Long recordid;

    @ApiModelProperty(value = "用户ID")
    @TableField("USERID")
    private Long userid;

    @ApiModelProperty(value = "模板配置ID")
    @TableField("TEMPLATECONFIGID")
    private Long templateconfigid;

    @ApiModelProperty(value = "模板编号(电子签类型对应的模板编号)")
    @TableField("TEMPLATENO")
    private String templateno;

    @ApiModelProperty(value = "模板类型 - 1:实名认证 2:开户协议 3:日结算单")
    @TableField("TEMPLATETYPE")
    private Integer templatetype;

    @ApiModelProperty(value = "模板名称")
    @TableField("TEMPLATENAME")
    private String templatename;

    @ApiModelProperty(value = "显示顺序")
    @TableField("ORDERINDEX")
    private Integer orderindex;

    @ApiModelProperty(value = "记录状态 - 1:未签署 2：签署中 3：已签署 4：签署拒绝")
    @TableField("RECORDSTATUS")
    private Integer recordstatus;

    @ApiModelProperty(value = "合同编号")
    @TableField("CONTRACTNO")
    private String contractno;

    @ApiModelProperty(value = "合同签署文件地址")
    @TableField("CONTRACTFILEADDR")
    private String contractfileaddr;

    @ApiModelProperty(value = "签署备注")
    @TableField("SIGNREMARK")
    private String signremark;

    @ApiModelProperty(value = "创建人")
    @TableField("CREATORID")
    private Long creatorid;

    @ApiModelProperty(value = "创建时间")
    @TableField("CREATETIME")
    private Date createtime;

    @ApiModelProperty(value = "更新时间")
    @TableField("UPDATETIME")
    private Date updatetime;

    @ApiModelProperty(value = "认证信息")
    @TableField("AUTHINFO")
    private String authinfo;

    @ApiModelProperty(value = "合同签署URL(三方URL)")
    @TableField("SIGNURL")
    private String signurl;

    @ApiModelProperty(value = "甲方Key(逗号分隔)")
    @TableField("PARTAKEY")
    private String partakey;

    @ApiModelProperty(value = "乙方Key(逗号分隔)")
    @TableField("PARTBKEY")
    private String partbkey;

    @ApiModelProperty(value = "交易日")
    @TableField("TRADEDATE")
    private String tradedate;

    @ApiModelProperty(value = "服务商ID - 麦顿")
    @TableField("AREAUSERID")
    private Long areauserid;


    @Override
    public Serializable pkVal() {
        return this.recordid;
    }

}
