package com.chinaweal.aiccs.aiccs.seriousillegal.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.baomidou.mybatisplus.extension.activerecord.Model;
import com.chinaweal.aiccs.common.util.DateUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 其他部门列入严重违法失信企业名单（黑名单）详细信息表
 * </p>
 *
 * @author aiccs
 * @since 2026-03-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("e_ot_illdisdetail")
@ApiModel(value = "EOtIlldisdetail对象", description = "其他部门列入严重违法失信企业名单（黑名单）详细信息表")
public class EOtIlldisdetail extends Model<EOtIlldisdetail> {

    private static final long serialVersionUID = 1L;

    /**
     * 严重违法失信ID（主键）
     */
    @TableId(value = "ILLID", type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "严重违法失信ID（主键）")
    private String illid;

    /**
     * 类别（代码标识符：DD999，新增）
     */
    @TableField("INFORTYPE")
    @ApiModelProperty(value = "类别（代码标识符：DD999，新增）")
    private String infotype;

    /**
     * 主体身份代码
     */
    @TableField("PRIPID")
    @ApiModelProperty(value = "主体身份代码")
    private String pripid;

    /**
     * 企业（机构）名称
     */
    @TableField("ENTNAME")
    @ApiModelProperty(value = "企业（机构）名称")
    private String entname;

    /**
     * 统一社会信用代码（代码标识符：CA91）
     */
    @TableField("UNISCID")
    @ApiModelProperty(value = "统一社会信用代码（代码标识符：CA91）")
    private String uniscid;

    /**
     * 注册号
     */
    @TableField("REGNO")
    @ApiModelProperty(value = "注册号")
    private String regno;

    /**
     * 登记机关编码
     */
    @TableField("REGORG")
    @ApiModelProperty("登记机关编码")
    private String regorg;

    /**
     * 法定代表人/负责人人员姓名
     */
    @TableField("NAME")
    @ApiModelProperty(value = "法定代表人/负责人人员姓名")
    private String name;

    /**
     * 法定代表人/负责人证件类型（代码标识符：CB16）
     */
    @TableField("CERTYPE")
    @ApiModelProperty(value = "法定代表人/负责人证件类型（代码标识符：CB16）")
    private String certype;

    /**
     * 法定代表人/负责人证件号码
     */
    @TableField("CERNO")
    @ApiModelProperty(value = "法定代表人/负责人证件号码")
    private String cerno;

    /**
     * 列入事由/情形（代码标识符：CD73）
     */
    @TableField("SERILLREA")
    @ApiModelProperty(value = "列入事由/情形（代码标识符：CD73）")
    private String serillrea;

    /**
     * 列入事由/情形（中文名称）
     */
    @TableField("SERILLREA_CN")
    @ApiModelProperty(value = "列入事由/情形（中文名称）")
    private String serillreaCn;

    /**
     * 列入日期
     */
    @TableField("ABNTIME")
    @JsonFormat(pattern = DateUtils.DATE_DEFAULT_FORMAT, timezone = "GMT+8")
    @ApiModelProperty(value = "列入日期", example = "2024-01-01")
    private LocalDate abntime;

    /**
     * 列入作出决定机关（代码标识符：CA11）
     */
    @TableField("DECORG")
    @ApiModelProperty(value = "列入作出决定机关（代码标识符：CA11）")
    private String decorg;

    /**
     * 列入作出决定机关（中文名称）
     */
    @TableField("DECORG_CN")
    @ApiModelProperty(value = "列入作出决定机关（中文名称）")
    private String decorgCn;

    /**
     * 列入文号
     */
    @TableField("DEDOCNUM")
    @ApiModelProperty(value = "列入文号")
    private String dedocnum;

    /**
     * 移出事由（代码标识符：CD74）
     */
    @TableField("REMEXCPRES")
    @ApiModelProperty(value = "移出事由（代码标识符：CD74）")
    private String remexcpres;

    /**
     * 移出事由（中文名称）
     */
    @TableField("REMEXCPRES_CN")
    @ApiModelProperty(value = "移出事由（中文名称）")
    private String remexcpresCn;

    /**
     * 移出日期
     */
    @TableField("REMDATE")
    @JsonFormat(pattern = DateUtils.DATE_DEFAULT_FORMAT, timezone = "GMT+8")
    @ApiModelProperty(value = "移出日期", example = "2024-01-01")
    private LocalDate remdate;

    /**
     * 移出作出决定机关（代码标识符：CA11）
     */
    @TableField("RECORG")
    @ApiModelProperty(value = "移出作出决定机关（代码标识符：CA11）")
    private String recorg;

    /**
     * 移出作出决定机关（中文名称）
     */
    @TableField("RECORG_CN")
    @ApiModelProperty(value = "移出作出决定机关（中文名称）")
    private String recorgCn;

    /**
     * 移出文号
     */
    @TableField("REDOCNUM")
    @ApiModelProperty(value = "移出文号")
    private String redocnum;

    /**
     * 列入文书id
     */
    @TableField("INTOWRITID")
    @ApiModelProperty(value = "列入文书id")
    private String intowritid;

    /**
     * 移除文书id
     */
    @TableField("REMWRITID")
    @ApiModelProperty(value = "移除文书id")
    private String remwritid;

    /**
     * 数据汇总单位
     */
    @TableField("S_EXT_FROMNODE")
    @ApiModelProperty(value = "数据汇总单位")
    private String sExtFromnode;

    /**
     * 数据汇总时间
     */
    @TableField("S_EXT_DATATIME")
    @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
    @ApiModelProperty(value = "数据汇总时间", example = "2024-01-01 12:00:00")
    private LocalDateTime sExtDatetime;

    @Override
    protected Serializable pkVal() {
        return this.illid;
    }

}