# Changelog

## 2026-05-21 — Admin Starter 后台管理

### 新增模块

#### Admin 认证体系
- `AdminAuthModule` — 管理员登录/登出/刷新令牌/获取当前用户
- JWT 双 token 机制，admin 专用 secret，`type: "admin"` 字段区隔 C 端
- bcryptjs 密码哈希（12 rounds）
- 账号锁定：5 次登录失败 → 锁定 15 分钟
- 5 个管理员角色层级：SUPER_ADMIN > ADMIN > OPERATIONS > DEVELOPER > READONLY
- `AdminAuthGuard` / `AdminRolesGuard` / `@AdminRoles()` / `@AdminPublic()` 装饰器
- 审计日志自动记录所有管理员操作

#### AdminDashboardModule
- `GET /admin-api/dashboard/stats` — 仪表盘聚合统计
  - 总用户数 / 今日新增 / 今日活跃
  - 知识库总数 / 今日新增
  - AI 调用总数 / 文件总数 / 存储总量
  - 近 30 天日活趋势、AI 调用趋势

#### AdminUsersModule
- `GET /admin-api/admin-users` — 管理员列表（分页 + 搜索 + 角色/状态筛选）
- `GET /admin-api/admin-users/:id` — 管理员详情
- `POST /admin-api/admin-users` — 创建管理员（SUPER_ADMIN）
- `PUT /admin-api/admin-users/:id` — 更新角色/状态/名称（SUPER_ADMIN）
- `DELETE /admin-api/admin-users/:id` — 软删除管理员（SUPER_ADMIN）

#### AdminAuditLogModule
- `GET /admin-api/audit-logs` — 审计日志列表（分页 + 按用户/操作/日期筛选）
- `GET /admin-api/audit-logs/:id` — 审计日志详情
- 关联 AdminUser 返回操作者邮箱和名称

### Prisma Schema 变更
- `AdminUser` 新增反向关系 `auditLogs AdminAuditLog[]`
- `AdminAuditLog` 新增关系字段 `adminUser AdminUser`

### 路由隔离
- C 端：`/api/*` — JwtAuthGuard
- Admin：`/admin-api/*` — AdminAuthGuard + AdminRolesGuard
- 全局 prefix `api` 排除 admin-api 路径
