import 'package:flutter/foundation.dart'; import '../models/user_info.dart'; import '../services/api_service.dart'; import '../services/auth_service.dart'; class AuthProvider extends ChangeNotifier { final AuthService _authService = AuthService(); final ApiService _apiService; bool isAuthenticated = false; UserInfo? userInfo; AuthProvider(this._apiService); Future init() async { final token = await _authService.getStoredToken(); if (token != null) { _apiService.setBearerToken(token); try { userInfo = await _apiService.getUserInfo(); isAuthenticated = true; } catch (e) { // Token expired, clear it await _authService.logout(); _apiService.clearBearerToken(); } } notifyListeners(); } Future login() async { final token = await _authService.login(); if (token != null) { _apiService.setBearerToken(token); try { userInfo = await _apiService.getUserInfo(); isAuthenticated = true; } catch (e) { isAuthenticated = false; } } else { isAuthenticated = false; } notifyListeners(); } Future logout() async { await _authService.logout(); _apiService.clearBearerToken(); isAuthenticated = false; userInfo = null; notifyListeners(); } }