import 'package:auths/data/repositories/auth_repository_imp.dart'; import 'package:rasadyar_core/core.dart'; import '../di/auth_di.dart'; import 'constant.dart'; class DioRemoteManager { DioRemote? _currentClient; ApiEnvironment? _currentEnv; DioRemote setEnvironment(ApiEnvironment env) { if (_currentEnv != env) { _currentClient = DioRemote(env.baseUrl); _currentEnv = env; } return _currentClient!; } DioRemote get currentClient { if (_currentClient == null) { throw Exception('Call setEnvironment() before accessing DioRemote.'); } return _currentClient!; } ApiEnvironment? get currentEnv => _currentEnv; } Future switchAuthEnvironment(ApiEnvironment env) async { final manager = diAuth.get(); final dioRemote = manager.setEnvironment(env); if (diAuth.isRegistered()) { await diAuth.unregister(); } diAuth.registerLazySingleton( () => AuthRepositoryImpl(dioRemote), ); }