package com.ssyf.module.logger.domain.query;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ssyf.common.core.domain.query.PageQuery;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 日志信息表
 * @TableName log_info
 */
@TableName(value ="log_info")
@Data
@Accessors(chain = true)
public class LogInfoQuery extends PageQuery {
    /**
     * 日志标题
     */
    private String title;

    /**
     * 请求地址
     */
    private String uri;

    /**
     * 方法：全限定名
     */
    private String method;

    /**
     * 请求参数
     */
    private String paramJson;

    /**
     * 业务执行前数据
     */
    private String beforeDataJson;

    /**
     * 业务执行后数据
     */
    private String afterDataJson;

    /**
     * 异常信息
     */
    private String errorMessage;

    /**
     * 异常堆栈
     */
    private String errorStackTrace;

    /**
     * 业务执行时间（毫秒）
     */
    private Long executionTimeMills;

    /**
     * 客户IP
     */
    private String ip;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 日志开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime logStartTime;

    /**
     * 日志结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime logEndTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime st;

    /**
     * 日志结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime et;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}