import request from './request' import type { ApiResponse } from '@/types/auth' export interface SystemStats { total_users: number active_users: number new_users_today: number total_apps: number active_apps: number new_apps_today: number active_tokens: number today_requests: number requests_change_percent: number uptime: string cpu_usage: number memory_usage: number } export interface UserManagement { id: string username: string email: string phone?: string is_active: boolean is_superuser: boolean last_login_at?: string created_at: string login_count: number app_count: number } export interface AppManagement { id: string name: string app_key: string description?: string is_active: boolean is_trusted: boolean created_by: string creator_username: string created_at: string user_count: number request_count: number } export interface SystemLog { id: string level: string message: string module: string user_id?: string username?: string ip_address?: string created_at: string extra_data?: Record } export interface SecurityEvent { id: string event_type: string severity: string title: string description: string user_id?: string username?: string ip_address: string user_agent?: string created_at: string handled: boolean } export interface SystemConfig { // 基本设置 site_name: string site_description: string site_logo?: string // 安全设置 password_min_length: number password_require_uppercase: boolean password_require_lowercase: boolean password_require_numbers: boolean password_require_symbols: boolean login_max_attempts: number login_lockout_duration: number // 令牌设置 default_access_token_expires: number default_refresh_token_expires: number max_token_lifetime: number // 邮件设置 email_enabled: boolean smtp_host?: string smtp_port?: number smtp_username?: string smtp_password?: string smtp_use_tls: boolean // 其他设置 registration_enabled: boolean email_verification_required: boolean admin_approval_required: boolean } export const adminApi = { // 获取系统统计 getSystemStats(): Promise> { return request.get('/api/v1/system/admin/stats') }, // 获取用户列表(管理员视图) getUsers(params?: { page?: number page_size?: number keyword?: string status?: string role?: string start_date?: string end_date?: string }): Promise> { return request.get('/api/v1/system/admin/users', { params }) }, // 创建用户 createUser(data: { username: string email: string password: string phone?: string is_superuser?: boolean }): Promise> { return request.post('/api/v1/system/admin/users', data) }, // 更新用户 updateUser(userId: string, data: { email?: string phone?: string is_active?: boolean is_superuser?: boolean }): Promise> { return request.put(`/api/v1/system/admin/users/${userId}`, data) }, // 删除用户 deleteUser(userId: string): Promise { return request.delete(`/api/v1/system/admin/users/${userId}`) }, // 重置用户密码 resetUserPassword(userId: string, newPassword: string): Promise { return request.put(`/api/v1/system/admin/users/${userId}/password`, { new_password: newPassword }) }, // 强制用户下线 forceUserLogout(userId: string): Promise { return request.post(`/api/v1/system/admin/users/${userId}/force-logout`) }, // 获取应用列表(管理员视图) getApps(params?: { page?: number page_size?: number keyword?: string status?: string creator?: string start_date?: string end_date?: string }): Promise> { return request.get('/api/v1/system/admin/apps', { params }) }, // 审核应用 approveApp(appId: string, approved: boolean, reason?: string): Promise { return request.put(`/api/v1/system/admin/apps/${appId}/approve`, { approved, reason }) }, // 获取系统日志 getSystemLogs(params?: { page?: number page_size?: number level?: string module?: string start_time?: string end_time?: string keyword?: string }): Promise> { return request.get('/api/v1/system/admin/logs', { params }) }, // 获取安全事件 getSecurityEvents(params?: { page?: number page_size?: number event_type?: string severity?: string handled?: boolean start_time?: string end_time?: string }): Promise> { return request.get('/api/v1/system/admin/security/events', { params }) }, // 处理安全事件 handleSecurityEvent(eventId: string, action: string, note?: string): Promise { return request.put(`/api/v1/system/admin/security/events/${eventId}`, { action, note }) }, // 获取系统配置 getSystemConfig(): Promise> { return request.get('/api/v1/system/admin/config') }, // 更新系统配置 updateSystemConfig(config: Partial): Promise { return request.put('/api/v1/system/admin/config', config) }, // 系统备份 createBackup(description?: string): Promise> { return request.post('/api/v1/system/admin/backup', { description }) }, // 获取备份列表 getBackups(): Promise>> { return request.get('/api/v1/system/admin/backups') }, // 下载备份 downloadBackup(backupId: string): Promise { return request.get(`/api/v1/system/admin/backups/${backupId}/download`, { responseType: 'blob' }) }, // 数据导出 exportData(type: 'users' | 'apps' | 'logs', format: 'csv' | 'json', filters?: Record): Promise { return request.post(`/api/v1/system/admin/export/${type}`, { format, filters }, { responseType: 'blob' }) }, // 清理过期数据 cleanupExpiredData(types: string[]): Promise> { return request.post('/api/v1/system/admin/cleanup', { types }) } }