package com.chinaweal.aiccs.aiccs.security.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.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.experimental.Accessors;

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

/**
 * 执法系统-案件信息表
 * @author lroyia
 * @since 2026/2/10
 **/
@Data
@Accessors(chain = true)
@TableName("AICCS.PENALTY_CASE_INFO")
@ApiModel("执法系统-案件信息表")
public class PenaltyCaseInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 案件编号
     */
    @TableId(type = IdType.ASSIGN_UUID, value = "CASEID")
    @ApiModelProperty("案件编号")
    private String caseid;

    /**
     * 接收数据时的对接记录ID
     */
    @TableField("ACCEPTID")
    @ApiModelProperty("接收数据时的对接记录ID")
    private String acceptid;

    /**
     * 案件名称
     */
    @TableField("CASENAME")
    @ApiModelProperty("案件名称")
    private String casename;

    /**
     * 案由
     */
    @TableField("CASEINTRODUCTION")
    @ApiModelProperty("案由")
    private String caseintroduction;

    /**
     * 违法行为
     */
    @TableField("ILLEGALITY")
    @ApiModelProperty("违法行为")
    private String illegality;

    /**
     * 处罚内容
     */
    @TableField("PENALTY")
    @ApiModelProperty("处罚内容")
    private String penalty;

    /**
     * 处罚决定日期
     */
    @TableField("PENALTYDATE")
    @ApiModelProperty("处罚决定日期")
    private LocalDate penaltydate;

    /**
     * 处罚决定机关
     */
    @TableField("PENALTYORG")
    @ApiModelProperty("处罚决定机关")
    private String penaltyorg;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("UPDATE_TIME")
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 删除标识（0：正常，1：删除）
     */
    @TableField("FLG_DELETED")
    @ApiModelProperty("删除标识（0：正常，1：删除）")
    private String flgDeleted;
}