/**
 * @description 系统相关类型定义
 * @author yslg
 * @since 2025-10-25
 */

import { BaseDTO } from '../base';

/**
 * 系统模块
 */
export interface SysModule extends BaseDTO {
  /** 模块ID */
  moduleID?: string;
  /** 模块名称 */
  name?: string;
  /** 模块代码 */
  code?: string;
  /** 模块描述 */
  description?: string;
  /** 模块图标 */
  icon?: string;
  /** 模块排序号 */
  orderNum?: number;
  /** 模块状态（0禁用 1启用） */
  status?: number;
  /** 创建者 */
  creator?: string;
  /** 更新者 */
  updater?: string;
}

/**
 * 系统配置
 */
export interface SysConfig extends BaseDTO {
  /** 配置键 */
  configKey?: string;
  /** 配置值 */
  configValue?: string;
  /** 配置名称 */
  configName?: string;
  /** 配置描述 */
  description?: string;
  /** 配置类型 */
  configType?: string;
  /** 是否系统内置 */
  isSystem?: boolean;
  /** 创建者 */
  creator?: string;
  /** 更新者 */
  updater?: string;
}

/**
 * 系统字典类型
 */
export interface SysDictType extends BaseDTO {
  /** 字典类型 */
  dictType?: string;
  /** 字典名称 */
  dictName?: string;
  /** 状态（0禁用 1启用） */
  status?: number;
  /** 备注 */
  remark?: string;
  /** 创建者 */
  creator?: string;
  /** 更新者 */
  updater?: string;
}

/**
 * 系统字典数据
 */
export interface SysDictData extends BaseDTO {
  /** 字典排序 */
  dictSort?: number;
  /** 字典标签 */
  dictLabel?: string;
  /** 字典键值 */
  dictValue?: string;
  /** 字典类型 */
  dictType?: string;
  /** 状态（0禁用 1启用） */
  status?: number;
  /** 是否默认 */
  isDefault?: boolean;
  /** 备注 */
  remark?: string;
  /** 创建者 */
  creator?: string;
  /** 更新者 */
  updater?: string;
}

/**
 * 系统通知
 */
export interface SysNotification extends BaseDTO {
  /** 通知ID */
  notificationID?: string;
  /** 通知标题 */
  title?: string;
  /** 通知内容 */
  content?: string;
  /** 通知类型 */
  type?: number;
  /** 接收用户ID */
  receiverID?: string;
  /** 是否已读 */
  isRead?: boolean;
  /** 已读时间 */
  readTime?: string;
  /** 创建者 */
  creator?: string;
}

/**
 * 系统操作日志
 */
export interface SysOperationLog extends BaseDTO {
  /** 操作用户 */
  operator?: string;
  /** 操作模块 */
  module?: string;
  /** 操作类型 */
  operationType?: string;
  /** 操作方法 */
  method?: string;
  /** 请求参数 */
  requestParams?: string;
  /** 返回结果 */
  responseResult?: string;
  /** 操作状态（0失败 1成功） */
  status?: number;
  /** 错误消息 */
  errorMsg?: string;
  /** 操作IP */
  operationIP?: string;
  /** 操作时间 */
  operationTime?: string;
  /** 执行时长（毫秒） */
  duration?: number;
}

/**
 * 系统访问统计
 */
export interface SysVisitStatistics extends BaseDTO {
  /** 统计日期 */
  statisticsDate?: string;
  /** 访问量 */
  visitCount?: number;
  /** 独立访客数 */
  uniqueVisitors?: number;
  /** 页面浏览量 */
  pageViews?: number;
  /** 平均访问时长（秒） */
  avgDuration?: number;
}

