import 'package:provider/provider.dart'; import 'package:provider/single_child_widget.dart'; import 'package:tm_app/core/theme/theme_provider.dart'; import 'package:tm_app/data/repositories/home_repository.dart'; import 'package:tm_app/data/services/home_service.dart'; import '../../data/repositories/auth_repository.dart'; import '../../data/services/auth_service.dart'; import '../../data/services/network_manager.dart'; import '../../view_models/auth_view_model.dart'; import '../../view_models/home_view_model.dart'; List get providersRemote { return [...cores, ...apiClients, ...repositories, ...viewModels, ...others]; } List get cores { return [ Provider(create: (context) => NetworkManager()), ChangeNotifierProvider(create: (context) => ThemeProvider()), ]; } List get apiClients { return [ Provider(create: (context) => AuthService(networkManager: context.read())), Provider(create: (context) => HomeService(networkManager: context.read())), ]; } List get repositories { return [ Provider(create: (context) => AuthRepository(authService: context.read())), Provider(create: (context) => HomeRepository(homeService: context.read())), ]; } List get viewModels { return [ ChangeNotifierProvider( create: (context) => AuthViewModel(authRepository: context.read()), ), ChangeNotifierProvider( create: (context) => HomeViewModel(homeRepository: context.read()), ), ]; } List get others { return []; }