import 'package:get_it/get_it.dart'; import 'api/api_client.dart'; import 'storage/token_store.dart'; import '../features/auth/data/auth_repository.dart'; import '../features/home/data/maps_repository.dart'; import '../features/home/data/tariff_repository.dart'; import '../features/home/data/ride_types_repository.dart'; import '../features/trip/data/trip_repository.dart'; import '../features/trip/data/trip_socket_service.dart'; import '../features/trip/data/trip_event_merger.dart'; import '../features/trip/data/fcm_service.dart'; final GetIt getIt = GetIt.instance; /// حقن التبعيات (بديل bindings في GetX). Future setupDi() async { getIt.registerLazySingleton(() => TokenStore()); getIt.registerLazySingleton(() => ApiClient(getIt())); getIt.registerLazySingleton( () => AuthRepository(getIt(), getIt()), ); // ميزات Phase 1: الخرائط + الأسعار getIt.registerLazySingleton( () => MapsRepository(getIt()), ); getIt.registerLazySingleton( () => TariffRepository(getIt()), ); getIt.registerLazySingleton( () => RideTypesRepository(getIt()), ); // ميزات Phase 2: الرحلات + WebSocket getIt.registerLazySingleton( () => TripRepository(getIt()), ); getIt.registerLazySingleton( () => TripEventMerger(), ); getIt.registerLazySingleton( () => TripSocketService(getIt(), getIt()), ); getIt.registerLazySingleton( () => FcmService(getIt()), ); }