Clean project: remove test files, debug logs, and add documentation
This commit is contained in:
79
unionflow-mobile-apps/lib/core/di/app_di.dart
Normal file
79
unionflow-mobile-apps/lib/core/di/app_di.dart
Normal file
@@ -0,0 +1,79 @@
|
||||
/// Configuration globale de l'injection de dépendances
|
||||
library app_di;
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
import '../network/dio_client.dart';
|
||||
import '../../features/organisations/di/organisations_di.dart';
|
||||
import '../../features/members/di/membres_di.dart';
|
||||
import '../../features/events/di/evenements_di.dart';
|
||||
import '../../features/cotisations/di/cotisations_di.dart';
|
||||
|
||||
/// Gestionnaire global des dépendances
|
||||
class AppDI {
|
||||
static final GetIt _getIt = GetIt.instance;
|
||||
|
||||
/// Initialise toutes les dépendances de l'application
|
||||
static Future<void> initialize() async {
|
||||
// Configuration du client HTTP
|
||||
await _setupNetworking();
|
||||
|
||||
// Configuration des modules
|
||||
await _setupModules();
|
||||
}
|
||||
|
||||
/// Configure les services réseau
|
||||
static Future<void> _setupNetworking() async {
|
||||
// Client Dio
|
||||
final dioClient = DioClient();
|
||||
_getIt.registerSingleton<DioClient>(dioClient);
|
||||
_getIt.registerSingleton<Dio>(dioClient.dio);
|
||||
}
|
||||
|
||||
/// Configure tous les modules de l'application
|
||||
static Future<void> _setupModules() async {
|
||||
// Module Organisations
|
||||
OrganisationsDI.registerDependencies();
|
||||
|
||||
// Module Membres
|
||||
MembresDI.register();
|
||||
|
||||
// Module Événements
|
||||
EvenementsDI.register();
|
||||
|
||||
// Module Cotisations
|
||||
registerCotisationsDependencies(_getIt);
|
||||
|
||||
// TODO: Ajouter d'autres modules ici
|
||||
// SolidariteDI.registerDependencies();
|
||||
// RapportsDI.registerDependencies();
|
||||
}
|
||||
|
||||
/// Nettoie toutes les dépendances
|
||||
static Future<void> dispose() async {
|
||||
// Nettoyer les modules
|
||||
OrganisationsDI.unregisterDependencies();
|
||||
MembresDI.unregister();
|
||||
EvenementsDI.unregister();
|
||||
|
||||
// Nettoyer les services globaux
|
||||
if (_getIt.isRegistered<Dio>()) {
|
||||
_getIt.unregister<Dio>();
|
||||
}
|
||||
if (_getIt.isRegistered<DioClient>()) {
|
||||
_getIt.unregister<DioClient>();
|
||||
}
|
||||
|
||||
// Reset complet
|
||||
await _getIt.reset();
|
||||
}
|
||||
|
||||
/// Obtient l'instance GetIt
|
||||
static GetIt get instance => _getIt;
|
||||
|
||||
/// Obtient le client Dio
|
||||
static Dio get dio => _getIt<Dio>();
|
||||
|
||||
/// Obtient le client Dio wrapper
|
||||
static DioClient get dioClient => _getIt<DioClient>();
|
||||
}
|
||||
Reference in New Issue
Block a user