import { LogCategoryEnum, LogKeepTimeEnum, LogTypeEnum } from 'nsn-enum';
import { NEntity } from '../core';

/** 系统-操作日志 */
export interface Logs extends NEntity {

  /** 日志类型 */
  type: LogTypeEnum;

  /** 日志标题 */
  title: string;

  /** 操作IP地址 */
  ip: string;

  /** 用户代理 */
  userAgent: string;

  /** 设备名称/操作系统 */
  device: string;

  /** 请求URI */
  reqUri: string;

  /** 操作方式 */
  reqMethod: string;

  /** 操作提交的数据 */
  reqParams: any;

  /** 执行时间 */
  executeTime: number;

  /** 新旧数据比较结果 */
  diffData: string;

  /** 引用主键 */
  targetId: string;

  /** 引用类型 */
  targetType: string;

  /** 浏览器名称 */
  browser: string;

  /** 异常信息 */
  exception: string;

  /** dto 日志分类 */
  category: LogCategoryEnum;

  /** dto 关键字，匹配标题、用户名、请求url、ip地址、异常信息、设备名称等字段 */
  keyword: string;

  /** dto 开始时间(createTime) */
  startDate: string;

  /** dto 结束时间(createTime) */
  endDate: string;

  /** dto 删除条件：保留时长 */
  keepTime: LogKeepTimeEnum;
}