package com.njcn.system.pojo.po;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author hongawen
 * @version 1.0.0
 * @date 2022年07月12日 14:45
 */
@Data
@TableName("sys_user_log")
public class UserLog {

    private static final long serialVersionUID = 1L;

    /**
     * 事件日志Id
     */
    @ExcelProperty(value = "id主键")
    private String id;

    /**
     * 登录名
     */
    @TableField(insertStrategy = FieldStrategy.IGNORED)
    @ExcelProperty(value = "登录名")
    private String loginName;

    /**
     * 用户已登录：用户名
     */
    @TableField(insertStrategy = FieldStrategy.IGNORED)
    @ExcelProperty(value = "用户名")
    private String userName;

    /**
     * 操作Ip
     */
    @ExcelProperty(value = "操作ip")
    private String ip;

    /**
     * 操作内容
     */
    @ExcelProperty(value = "操作内容")
    private String operate;

    /**
     * 操作类型 比如：查询、新增、删除等等
     */
    @ExcelProperty(value = "操作类型")
    private String operateType;

    /**
     * 操作结果 0.失败 1.成功
     */
    @ExcelProperty(value = "操作结果")
    private Integer result;

    /**
     * 失败原因
     */
    @TableField(insertStrategy = FieldStrategy.IGNORED)
    @ExcelProperty(value = "失败原因")
    private String failReason;

    /**
     * 严重度 0.普通 1.中等 2.严重
     */
    @ExcelProperty(value = "时间等级(严重度)")
    private Integer level;

    /**
     * 事件类型 0.业务事件 1.系统事件
     */
    @ExcelProperty(value = "事件类型")
    private Integer type;


    /**
     * 模块名
     */
    @ExcelProperty(value = "模块名称")
    private String serviceName;

    /**
     * 告警标志 0.未告警 1.已告警
     */
    @ExcelProperty(value = "告警标志")
    private Integer state;

    /**
     * 创建用户
     */
    @TableField(fill = FieldFill.INSERT, insertStrategy = FieldStrategy.IGNORED)
    @ExcelProperty(value = "创建用户")
    private String createBy;


    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT, insertStrategy = FieldStrategy.IGNORED)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "创建时间" )
    private LocalDateTime createTime;

    /**
     * 更新用户
     */
    @TableField(fill = FieldFill.INSERT_UPDATE, insertStrategy = FieldStrategy.IGNORED)
    @ExcelProperty(value = "更新用户")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE, insertStrategy = FieldStrategy.IGNORED)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "更新时间" )
    private LocalDateTime updateTime;


}
