import 'dart:convert'; import '../../core/constants/api_constants.dart'; import '../datasources/remote/api_client.dart'; import '../models/user.dart'; import '../models/api_response.dart'; class UserRepository { final ApiClient _apiClient; UserRepository({required ApiClient apiClient}) : _apiClient = apiClient; // 获取用户资料 Future> getUserProfile() async { try { final response = await _apiClient.get( ApiConstants.getUserProfileUrl(), withAuth: true, ); if (response.statusCode == 200) { final userData = json.decode(response.body); return ApiResponse( success: true, message: '获取成功', data: User.fromJson(userData), ); } else { return ApiResponse( success: false, message: '获取用户资料失败', ); } } catch (e) { return ApiResponse( success: false, message: '获取失败: $e', ); } } // 更新用户资料 Future> updateUserProfile(User user) async { try { final updateData = { 'full_name': user.fullName, 'email': user.email, }; final response = await _apiClient.put( ApiConstants.getUpdateProfileUrl(), updateData, withAuth: true, ); if (response.statusCode == 200) { final userData = json.decode(response.body); return ApiResponse( success: true, message: '更新成功', data: User.fromJson(userData), ); } else { final error = json.decode(response.body); return ApiResponse( success: false, message: error['detail'] ?? '更新失败', ); } } catch (e) { return ApiResponse( success: false, message: '更新失败: $e', ); } } }