package com.chinaweal.aiccs.aiccs.punishment.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
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;

/**
 * 行政处罚基本信息
 *
 * @author zhouxy
 * @since 2026-1-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("CRGS.CASE_PUB_NBASEINFO")
@ApiModel(value="CasePubNbaseinfo对象", description="行政处罚基本信息")
public class CasePubNbaseinfo extends SuperEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "CASEID", type = IdType.INPUT)
    private String caseid;

    /**
     * 案件类型
     */
    @ApiModelProperty(value = "案件类型")
    @TableField("ACTYPE")
    private String actype;

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

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

    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码")
    @TableField("UNISCID")
    private String uniscid;

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

    /**
     * 机构证书代码
     */
    @ApiModelProperty(value = "机构证书代码")
    @TableField("INSCERCODE")
    private String inscercode;

    /**
     * 社会组织代码
     */
    @ApiModelProperty(value = "社会组织代码")
    @TableField("SOCORGCODE")
    private String socorgcode;

    /**
     * 组织机构代码
     */
    @ApiModelProperty(value = "组织机构代码")
    @TableField("ORGCODE")
    private String orgcode;

    /**
     * 税务登记号
     */
    @ApiModelProperty(value = "税务登记号")
    @TableField("TAXID")
    private String taxid;

    /**
     * 法定代表人
     */
    @ApiModelProperty(value = "法定代表人")
    @TableField("LEREP")
    private String lerep;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型")
    @TableField("CERTYPE")
    private String certype;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码")
    @TableField("CERNO")
    private String cerNo;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @TableField("NAME")
    private String name;

    /**
     * 违法当事人证件类型
     */
    @ApiModelProperty(value = "违法当事人证件类型")
    @TableField("AC_CERTYPE")
    private String acCertype;

    /**
     * 违法当事人证件号码
     */
    @ApiModelProperty(value = "违法当事人证件号码")
    @TableField("AC_CERNO")
    private String acCerNo;

    /**
     * 处罚决定书文号
     */
    @ApiModelProperty(value = "处罚决定书文号")
    @TableField("PENDECNO")
    private String penDecNo;

    /**
     * 违法行为类型代码
     */
    @ApiModelProperty(value = "违法行为类型代码")
    @TableField("ILLEGACTTYPECODE")
    private String illegActTypeCode;

    /**
     * 违法行为类型
     */
    @ApiModelProperty(value = "违法行为类型")
    @TableField("ILLEGACTTYPE")
    private String illegActType;

    /**
     * 主要违法事实
     */
    @ApiModelProperty(value = "主要违法事实")
    @TableField("MAINILLEGFACT")
    private String mainIllegFact;

    /**
     * 处罚依据
     */
    @ApiModelProperty(value = "处罚依据")
    @TableField("PENBASIS")
    private String penBasis;

    /**
     * 处罚依据中文
     */
    @ApiModelProperty(value = "处罚依据中文")
    @TableField("PENBASIS_CN")
    private String penBasisCn;

    /**
     * 处罚种类
     */
    @ApiModelProperty(value = "处罚种类")
    @TableField("PENTYPE")
    private String penType;

    /**
     * 处罚种类中文
     */
    @ApiModelProperty(value = "处罚种类中文")
    @TableField("PENTYPE_CN")
    private String penTypeCn;

    /**
     * 处罚金额
     */
    @ApiModelProperty(value = "处罚金额")
    @TableField("PENAM")
    private BigDecimal penam;

    /**
     * 没收违法所得金额
     */
    @ApiModelProperty(value = "没收违法所得金额")
    @TableField("FORFAM")
    private BigDecimal forfam;

    /**
     * 处罚决定日期
     */
    @ApiModelProperty(value = "处罚决定日期")
    @TableField("PENDECISSDATE")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private Date penDecissDate;

    /**
     * 处罚期限
     */
    @ApiModelProperty(value = "处罚期限")
    @TableField("PENPERI")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private Date penPeri;

    /**
     * 处罚机关
     */
    @ApiModelProperty(value = "处罚机关")
    @TableField("PENAUTH")
    private String penAuth;

    /**
     * 处罚机关中文
     */
    @ApiModelProperty(value = "处罚机关中文")
    @TableField("PENAUTH_CN")
    private String penAuthCn;

    /**
     * 处罚机关统一社会信用代码
     */
    @ApiModelProperty(value = "处罚机关统一社会信用代码")
    @TableField("PENAUTHUNISCID")
    private String penAuthUniscid;

    /**
     * 处罚内容
     */
    @ApiModelProperty(value = "处罚内容")
    @TableField("PENCONTENT")
    private String penContent;

    /**
     * 吊销许可证数量
     */
    @ApiModelProperty(value = "吊销许可证数量")
    @TableField("REVLICNUM")
    private String revLicNum;

    /**
     * 公示日期
     */
    @ApiModelProperty(value = "公示日期")
    @TableField("PUBLICDATE")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private Date publicDate;

    /**
     * 公示截止日期
     */
    @ApiModelProperty(value = "公示截止日期")
    @TableField("PUBDEADLINE")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private Date pubDeadline;

    /**
     * 数据部门
     */
    @ApiModelProperty(value = "数据部门")
    @TableField("DATADEPT")
    private String dataDept;

    /**
     * 数据部门统一社会信用代码
     */
    @ApiModelProperty(value = "数据部门统一社会信用代码")
    @TableField("DATADEPTUNISCID")
    private String dataDeptUniscid;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

//    /**
//     * 扩展字段来源节点
//     */
//    @ApiModelProperty(value = "扩展字段来源节点")
//    @TableField("S_EXT_FROMNODE")
//    private String sExtFromnode;
//
//    /**
//     * 扩展数据时间
//     */
//    @ApiModelProperty(value = "扩展数据时间")
//    @TableField("S_EXT_DATATIME")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
//    private LocalDateTime sExtDatatime;
//
//    /**
//     * 创建时间
//     */
//    @ApiModelProperty(value = "创建时间")
//    @TableField("CREATETIME")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
//    private LocalDateTime createTime;

    /**
     * 最后更新时间
     */
    @ApiModelProperty(value = "最后更新时间")
    @TableField("LASTUPDATETIME")
//    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private Date lastUpdateTime;

}
