import 'package:get_it/get_it.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'core/constants/app_constants.dart'; import 'core/network/api_client.dart'; import 'core/storage/secure_storage.dart'; import 'core/services/tts_service.dart'; import 'core/services/stt_service.dart'; import 'core/services/voice_command_handler.dart'; import 'core/services/haptic_service.dart'; final sl = GetIt.instance; Future initDependencies() async { // ── Core singletons ────────────────────────────────────────────────────── sl.registerLazySingleton(() => SecureStorage()); sl.registerLazySingleton(() => ApiClient(sl())); sl.registerLazySingleton(() => TtsService()); sl.registerLazySingleton(() => SttService()); sl.registerLazySingleton(() => HapticService()); sl.registerLazySingleton( () => VoiceCommandHandler(sl(), sl()), ); // ── Init ApiClient if serverUrl already saved ───────────────────────────── final serverUrl = await AppConstants.getServerUrl(); if (serverUrl != null && serverUrl.isNotEmpty) { await sl().init(serverUrl); } // ── Init TTS ────────────────────────────────────────────────────────────── await sl().init(); // ── Init STT ────────────────────────────────────────────────────────────── await sl().init(); sl().loadDefaultCommands(); }