import 'package:flutter/material.dart'; import 'package:geosector_app/core/repositories/user_repository.dart'; import 'package:geosector_app/presentation/widgets/loading_overlay.dart'; /// Service qui gère les opérations d'authentification avec affichage d'un overlay de chargement class AuthService { final UserRepository _userRepository; AuthService(this._userRepository); /// Méthode de connexion avec affichage d'un overlay de chargement Future login(BuildContext context, String username, String password, {String type = 'admin'}) async { return await LoadingOverlay.show( context: context, spinnerSize: 80.0, // Spinner plus grand strokeWidth: 6.0, // Trait plus épais future: _userRepository.login(username, password, type: type), ); } /// Méthode de déconnexion avec affichage d'un overlay de chargement Future logout(BuildContext context) async { return await LoadingOverlay.show( context: context, spinnerSize: 80.0, // Spinner plus grand strokeWidth: 6.0, // Trait plus épais future: _userRepository.logout(), ); } /// Vérifie si un utilisateur est connecté bool isLoggedIn() { return _userRepository.isLoggedIn; } /// Vérifie si l'utilisateur connecté est un administrateur bool isAdmin() { return _userRepository.isAdmin(); } }