import 'package:flutter/material.dart'; /// [UserProvider] est un `ChangeNotifier` qui gère les informations de l'utilisateur. /// Toutes les modifications et actions sont loguées pour assurer une traçabilité complète dans le terminal. class UserProvider with ChangeNotifier { String _userId = ''; String _userName = ''; String _userLastName = ''; /// Getter pour l'ID de l'utilisateur String get userId => _userId; /// Getter pour le nom de l'utilisateur String get userName => _userName; /// Getter pour le prénom de l'utilisateur String get userLastName => _userLastName; /// Méthode pour définir les informations de l'utilisateur. /// Logue les informations fournies et notifie les listeners des changements. /// /// [id] : L'ID de l'utilisateur. /// [name] : Le nom de l'utilisateur. /// [lastName] : Le prénom de l'utilisateur. void setUser(String id, String name, String lastName) { debugPrint("[LOG] Tentative de définition des informations de l'utilisateur : ID = $id, Nom = $name, Prénom = $lastName"); _userId = id; _userName = name; _userLastName = lastName; debugPrint("[LOG] Informations utilisateur définies : ID = $_userId, Nom = $_userName, Prénom = $_userLastName"); // Notifie les widgets écoutant ce provider qu'une modification a eu lieu notifyListeners(); } /// Méthode pour réinitialiser les informations de l'utilisateur. /// Les valeurs sont loguées avant et après la réinitialisation. void resetUser() { debugPrint("[LOG] Réinitialisation des informations de l'utilisateur."); debugPrint("[LOG] Valeurs avant réinitialisation : ID = $_userId, Nom = $_userName, Prénom = $_userLastName"); _userId = ''; _userName = ''; _userLastName = ''; debugPrint("[LOG] Informations utilisateur réinitialisées : ID = $_userId, Nom = $_userName, Prénom = $_userLastName"); // Notifie les widgets écoutant ce provider que l'utilisateur a été réinitialisé notifyListeners(); } }