import api from './api' interface User { id: number username: string email: string role: 'admin' | 'editor' | 'viewer' isActive: boolean lastLoginAt?: string createdAt: string updatedAt: string profile?: { firstName?: string lastName?: string avatar?: string } } interface UserListParams { search?: string role?: string | null isActive?: boolean | null page?: number limit?: number } interface UserCreateData { username: string email: string password: string role?: string isActive?: boolean profile?: { firstName?: string lastName?: string } } interface UserUpdateData { username?: string email?: string password?: string role?: string isActive?: boolean profile?: { firstName?: string lastName?: string avatar?: string } } interface UserStats { total: number active: number admins: number editors: number viewers: number recentLogins: number } export const userService = { // 获取用户列表 getUsers: async (params: UserListParams = {}): Promise => { const response = await api.get('/users', { params }) return response.data }, // 获取用户统计 getStats: async (): Promise => { const response = await api.get('/users/stats') return response.data }, // 创建用户 createUser: async (data: UserCreateData): Promise => { const response = await api.post('/users', data) return response.data }, // 更新用户 updateUser: async (id: number, data: UserUpdateData): Promise => { const response = await api.put(`/users/${id}`, data) return response.data }, // 删除用户 deleteUser: async (id: number): Promise => { await api.delete(`/users/${id}`) }, // 获取用户详情 getUser: async (id: number): Promise => { const response = await api.get(`/users/${id}`) return response.data }, // 批量删除用户 deleteUsers: async (ids: number[]): Promise => { await api.delete('/users/batch', { data: { ids } }) }, // 批量更新用户状态 updateUsersStatus: async (ids: number[], isActive: boolean): Promise => { await api.put('/users/batch/status', { ids, isActive }) }, // 重置用户密码 resetPassword: async (id: number): Promise => { const response = await api.post(`/users/${id}/reset-password`) return response.data.newPassword }, // 更改用户角色 updateUserRole: async (id: number, role: string): Promise => { const response = await api.put(`/users/${id}/role`, { role }) return response.data }, // 获取用户活动日志 getUserActivity: async (id: number): Promise => { const response = await api.get(`/users/${id}/activity`) return response.data }, // 获取最近登录用户 getRecentLogins: async (limit: number = 10): Promise => { const response = await api.get('/users/recent-logins', { params: { limit } }) return response.data }, // 检查用户名是否可用 checkUsername: async (username: string): Promise => { const response = await api.get('/users/check-username', { params: { username } }) return response.data.available }, // 检查邮箱是否可用 checkEmail: async (email: string): Promise => { const response = await api.get('/users/check-email', { params: { email } }) return response.data.available }, // 发送验证邮件 sendVerificationEmail: async (id: number): Promise => { await api.post(`/users/${id}/send-verification`) }, // 激活用户账号 activateUser: async (id: number): Promise => { await api.post(`/users/${id}/activate`) }, // 停用用户账号 deactivateUser: async (id: number): Promise => { await api.post(`/users/${id}/deactivate`) }, }