import 'package:get_it/get_it.dart'; import 'package:flutter/foundation.dart'; import 'storage_service.dart'; import 'notification_service.dart'; import 'encouragement_service.dart'; /// GetIt instance for dependency injection final getIt = GetIt.instance; /// Initialize dependency injection Future initializeDI() async { try { // Register services as singletons getIt.registerSingletonAsync(() async { final service = StorageService(); await service.init(); return service; }); getIt.registerSingletonAsync(() async { final service = NotificationService(); await service.initialize(); await service.requestPermissions(); return service; }); getIt.registerSingletonAsync(() async { final service = EncouragementService(); await service.loadMessages(); return service; }); // Wait for all services to be initialized await getIt.allReady(); if (kDebugMode) { print('Dependency injection initialized successfully'); } } catch (e) { if (kDebugMode) { print('Failed to initialize dependency injection: $e'); } rethrow; } } /// Reset dependency injection (for testing) void resetDI() { getIt.reset(); }