import 'package:flutter/material.dart'; import '../../data/models/user.dart'; import '../../data/repositories/user_repository.dart'; class UserProvider with ChangeNotifier { final UserRepository userRepository; User? _user; bool _isLoading = false; String? _error; UserProvider({required this.userRepository}); User? get user => _user; bool get isLoading => _isLoading; String? get error => _error; Future loadUserProfile() async { _isLoading = true; _error = null; notifyListeners(); try { final response = await userRepository.getUserProfile(); if (response.success && response.data != null) { _user = response.data; } else { _error = response.message; } } catch (e) { _error = '加载失败: $e'; } finally { _isLoading = false; notifyListeners(); } } Future updateUserProfile(User user) async { _isLoading = true; _error = null; notifyListeners(); try { final response = await userRepository.updateUserProfile(user); if (response.success && response.data != null) { _user = response.data; } else { _error = response.message; } } catch (e) { _error = '更新失败: $e'; } finally { _isLoading = false; notifyListeners(); } } void clearError() { _error = null; notifyListeners(); } void updateUser(User? user) { _user = user; notifyListeners(); } }