/** * 用户服务 * 处理用户信息相关的 API 请求 */ import { request } from '@/src/utils/network/api'; import type { User, UpdateProfileFormData } from '@/src/schemas/user'; /** * API 响应接口 */ interface ApiResponse { code: number; message: string; data: T; } /** * 用户服务类 */ class UserService { /** * 获取当前用户信息 */ async getCurrentUser(): Promise { const response = await request.get>('/user/me'); return response.data; } /** * 获取用户信息(通过 ID) */ async getUserById(userId: string): Promise { const response = await request.get>(`/user/${userId}`); return response.data; } /** * 更新用户资料 */ async updateProfile(data: UpdateProfileFormData): Promise { const response = await request.put>('/user/profile', data); return response.data; } /** * 上传头像 */ async uploadAvatar(file: File | Blob): Promise<{ url: string }> { const formData = new FormData(); formData.append('avatar', file); const response = await request.post>('/user/avatar', formData, { headers: { 'Content-Type': 'multipart/form-data', }, }); return response.data; } /** * 绑定手机号 */ async bindPhone(phone: string, code: string): Promise { await request.post('/user/bind-phone', { phone, code }); } /** * 绑定邮箱 */ async bindEmail(email: string, code: string): Promise { await request.post('/user/bind-email', { email, code }); } /** * 注销账号 */ async deleteAccount(): Promise { await request.delete('/user/account'); } } // 导出单例 export const userService = new UserService(); export default userService;