import 'package:get_it/get_it.dart'; import 'api/api_client.dart'; import 'storage/token_store.dart'; import '../features/auth/data/auth_repository.dart'; final GetIt getIt = GetIt.instance; /// حقن التبعيات (docs/23 §1). /// /// **هذه نقطة إقفال الميزات المدفوعة**: الموديول المحروس يُسجَّل داخل /// `if (Features.x)` فلا يوجد أصلاً حين لا تكون الميزة مشتراة — بدل فحص /// متناثر في كل شاشة يُنسى أحدها (docs/22 §1.5). /// /// مثال عند وصول الدردشة: /// ```dart /// if (Features.chat) { /// getIt.registerLazySingleton(() => ChatRepository(getIt())); /// } /// ``` Future setupDi() async { getIt.registerLazySingleton(() => TokenStore()); getIt.registerLazySingleton(() => ApiClient(getIt())); getIt.registerLazySingleton( () => AuthRepository(getIt(), getIt()), ); }