package com.chinaweal.aiccs.aiccs.fraudreg.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 com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.time.LocalDate;

/**
 * <p>
 * 涉嫌冒用登记业务表
 * </p>
 *
 * @author chinaweal
 * @since 2021-11-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(schema = "aiccs", value = "t_biz_fraud")
@ApiModel(value="TBizFraud对象", description="涉嫌冒用登记业务表")
public class TBizFraud extends SuperEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 业务号
     */
    @ApiModelProperty(value = "业务号")
    @TableField("bizSeq")
    @NotBlank(message = "业务号不能为空！")
    private String bizSeq;

    /**
     * 创建业务人id
     */
    @ApiModelProperty(value = "创建业务人id")
    @TableField("userId")
    private String userId;

    /**
     * 创建业务人机构id
     */
    @ApiModelProperty(value = "创建业务人机构id")
    @TableField("orgUnitID")
    private String orgUnitID;

    /**
     * 业务状态
     * 1-受理中、2-审批中、3-已通过、4-不通过
     */
    @ApiModelProperty(value = "业务状态 1-受理中、2-审批中、3-已通过、4-不通过")
    @TableField("status")
    private String status;

    /**
     * 当前环节
     * 1-业务受理 2-业务审核 3-业务审批 4-案件处理(录入)
     */
    @ApiModelProperty(value = "当前环节 1-业务受理 2-业务审核 3-业务审批 4-案件处理(录入)")
    @TableField("linkType")
    private String linkType;

    /**
     * 投诉原因(冒用他人身份信息登记、冒用地址信息登记、冒用其他信息登记)
     */
    @ApiModelProperty(value = "投诉原因")
    @TableField("complaintReason")
    private String complaintReason;

    /**
     * 投诉类型
     */
    @ApiModelProperty(value = "投诉类型")
    @TableField("complaintType")
    private String complaintType;

    /**
     * 是否生成待检查任务 0-不生成 1-生成
     */
    @ApiModelProperty(value = "是否生成待检查任务 0-不生成 1-生成")
    @TableField("isCase")
    private String isCase;

    /**
     * 投诉人类型 0-自然人 1-市场主体
     */
    @ApiModelProperty(value = "投诉人类型 0-自然人 1-市场主体")
    @TableField("complainerType")
    private String complainerType;

    /**
     * 自然人姓名/法人姓名
     */
    @ApiModelProperty(value = "自然人姓名/法人姓名")
    @TableField("complainerName")
    private String complainerName;

    /**
     * 证件类型/主体类型
     */
    @ApiModelProperty(value = "证件类型/主体类型")
    @TableField("complainerCertType")
    private String complainerCertType;

    /**
     * 证件号码/统一社会信用代码
     */
    @ApiModelProperty(value = "证件号码/统一社会信用代码")
    @TableField("complainerCertNo")
    private String complainerCertNo;

    /**
     * 投诉企业主体名称
     */
    @ApiModelProperty(value = "投诉企业主体名称")
    @TableField("complainerEntName")
    private String complainerEntName;

    /**
     * 投诉企业法人联系电话
     */
    @ApiModelProperty(value = "投诉企业法人联系电话")
    @TableField("complainerLegalPhone")
    private String complainerLegalPhone;

    /**
     * 投诉企业登记机关
     */
    @ApiModelProperty(value = "投诉企业登记机关")
    @TableField("complainerRegOrg_cn")
    private String complainerRegOrg_cn;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    @TableField("contacts")
    private String contacts;

    /**
     * 办理业务类型（1：设立，2：变更，3：注销）
     */
    @ApiModelProperty(value = "办理业务类型")
    @TableField("BUSINESS_TYPE")
    private String businessType;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @TableField("contactsPhone")
    private String contactsPhone;

    /**
     * 核准时间 yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "核准时间 yyyy-MM-dd HH:mm:ss")
    @TableField("approvalTime")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDate approvalTime;

    /**
     * 主办人
     */
    @ApiModelProperty(value = "主办人")
    @TableField("intoSponsor")
    private String intoSponsor;


    /**
     * 处理结果-用于业务判断（撤销设立、撤销变更、撤销注销、终止撤销、不予撤销）
     */
    @ApiModelProperty(value = "处理结果-用于业务判断（撤销设立、撤销变更、撤销注销、终止撤销、不予撤销）")
    @TableField("bizHandleResult")
    private String bizHandleResult;


}
