import 'package:get_it/get_it.dart'; import 'package:http/http.dart' as http; import '../../data/datasources/user_remote_data_source.dart'; import '../../data/repositories/user_repository_impl.dart'; import '../../domain/usecases/get_user.dart'; /// Instance globale pour gérer l'injection des dépendances via GetIt final sl = GetIt.instance; /// Fonction d'initialisation pour enregistrer toutes les dépendances. /// Utilisée pour fournir des services, des data sources, des repositories et des use cases. void init() { // Log de démarrage de l'injection des dépendances print("Démarrage de l'initialisation des dépendances."); // Register Http Client sl.registerLazySingleton(() => http.Client()); print("Client HTTP enregistré."); // Register Data Sources sl.registerLazySingleton(() => UserRemoteDataSource(sl())); print("DataSource pour UserRemoteDataSource enregistré."); // Register Repositories sl.registerLazySingleton(() => UserRepositoryImpl(remoteDataSource: sl())); print("Repository pour UserRepositoryImpl enregistré."); // Register Use Cases sl.registerLazySingleton(() => GetUser(sl())); print("UseCase pour GetUser enregistré."); // Log de fin d'initialisation des dépendances print("Initialisation des dépendances terminée."); }