import 'package:core/data/model/source_type/data_source_type.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/interactors_bindings.dart'; import 'package:tmail_ui_user/features/caching/manager/session_cache_manger.dart'; import 'package:tmail_ui_user/features/home/data/datasource/session_datasource.dart'; import 'package:tmail_ui_user/features/home/data/datasource_impl/hive_session_datasource_impl.dart'; import 'package:tmail_ui_user/features/home/data/datasource_impl/session_datasource_impl.dart'; import 'package:tmail_ui_user/features/home/data/network/session_api.dart'; import 'package:tmail_ui_user/features/home/data/repository/session_repository_impl.dart'; import 'package:tmail_ui_user/features/home/domain/repository/session_repository.dart'; import 'package:tmail_ui_user/features/home/domain/usecases/get_session_interactor.dart'; import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; class SessionBindings extends InteractorsBindings { @override void bindingsDataSource() { Get.put(Get.find()); } @override void bindingsDataSourceImpl() { Get.put(SessionDataSourceImpl( Get.find(), Get.find())); Get.put(HiveSessionDataSourceImpl( Get.find(), Get.find())); } @override void bindingsInteractor() { Get.put(GetSessionInteractor(Get.find())); } @override void bindingsRepository() { Get.put(Get.find()); } @override void bindingsRepositoryImpl() { Get.put(SessionRepositoryImpl({ DataSourceType.network: Get.find(), DataSourceType.hiveCache: Get.find(), })); } }