import 'package:flutter/material.dart'; import 'package:firebase_auth/firebase_auth.dart'; import '../models/user_model.dart'; import '../services/auth_service.dart'; class AuthProvider extends ChangeNotifier { final AuthService _authService = AuthService(); UserModel? _user; bool _isLoading = false; UserModel? get user => _user; bool get isLoading => _isLoading; bool get isAuthenticated => _user != null; AuthProvider() { _authService.userStream.listen((User? firebaseUser) async { if (firebaseUser != null) { _user = await _authService.getUser(firebaseUser.uid); } else { _user = null; } notifyListeners(); }); } Future login(String email, String password) async { _isLoading = true; notifyListeners(); try { _user = await _authService.login(email, password); } catch (e) { _isLoading = false; notifyListeners(); rethrow; } _isLoading = false; notifyListeners(); } Future logout() async { await _authService.logout(); _user = null; notifyListeners(); } }