package com.example.demo.model;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 日志记录实体模型。
 *
 * <p>用于记录系统登录日志、操作日志和异常日志，支持审计追溯。</p>
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "日志记录实体")
public class LogRecord {

    /** 日志ID */
    @Schema(description = "日志ID")
    private Long logId;

    /** 日志类型：LOGIN-登录日志, OPERATION-操作日志, EXCEPTION-异常日志 */
    @Schema(description = "日志类型：LOGIN-登录日志, OPERATION-操作日志, EXCEPTION-异常日志")
    private String logType;

    /** 操作用户 */
    @Schema(description = "操作用户")
    private String username;

    /** 操作内容 */
    @Schema(description = "操作内容")
    private String content;

    /** 请求IP */
    @Schema(description = "请求IP")
    private String ip;

    /** 操作结果：SUCCESS-成功, FAIL-失败 */
    @Schema(description = "操作结果：SUCCESS-成功, FAIL-失败")
    private String result;

    /** 异常详情（异常日志时记录） */
    @Schema(description = "异常详情")
    private String exceptionDetail;

    /** 操作时间（时间戳） */
    @Schema(description = "操作时间（时间戳）")
    private Long operateTime;
}
