

// ==================== Types ====================

export interface SystemUser {
  id: string
  name: string
  account: string
  nickName?: string
  phone?: string
  avatarId?: string
  gender?: number       // 0=未知 1=男 2=女
  roles?: string[]      // 角色 code 列表（仅 /auth/info 返回）
  menus?: SystemMenu[]  // 菜单树（仅 /auth/info 返回）
  createdAt?: number    // Unix 时间戳（秒）
  roleIds?: string[]    // 关联角色 ID（用户管理接口）
}

export interface SystemRole {
  id: string
  name: string
  code: string
  sort?: number
  menuIds?: string[]    // 关联菜单 ID 列表
}

export interface SystemMenu {
  id: string
  parentId?: string
  category?: number     // 1=菜单 2=按钮/权限
  name: string          // 路由名（英文）
  title?: string        // 显示标题（中文）
  code?: string         // 权限标识
  path?: string         // 路由路径
  permission?: string   // 操作权限标识
  locale?: string       // 国际化 key
  icon?: string         // 图标名称
  sort?: number         // 排序
  children?: SystemMenu[]
}

export interface SystemOss {
  id: string; name: string; key: string; url: string; suffix?: string
  tag?: string; md5?: string; width?: number; height?: number
  createdAt: string; updatedAt: string
}

export interface SystemClient {
  id: string
  clientId: string
  name: string
  grantType?: string
  additionalInfo?: string
  activeTimeout?: number  // Token有效期（秒）
}

export interface OperationLog {
  id: string
  clientId: string
  ip: string
  method: string
  path: string
  status: number
  latency: number       // 纳秒
  agent: string
  errorMessage: string
  body: string           // 请求体 JSON 字符串
  resp: string           // 响应体 JSON 字符串
  userId: string
  createdAt: number      // Unix 时间戳（秒）
}

export interface DictInfo {
  id: string
  type: string
  label: string
  value: string
  sort: number
  desc: string
}


