import 'package:cb_prestige_qr/core/providers/core_providers.dart'; import 'package:cb_prestige_qr/features/auth/data/data_sources/auth_local_data_source.dart'; import 'package:cb_prestige_qr/features/auth/data/data_sources/auth_remote_data_source.dart'; import 'package:cb_prestige_qr/features/auth/data/repositories/auth_repository_impl.dart'; import 'package:cb_prestige_qr/features/auth/domain/repositories/auth_repository.dart'; import 'package:cb_prestige_qr/features/auth/domain/use_cases/get_current_user_profile_use_case.dart'; import 'package:cb_prestige_qr/features/auth/domain/use_cases/login_use_case.dart'; import 'package:cb_prestige_qr/features/auth/domain/use_cases/logout_use_case.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; final authLocalDataSourceProvider = Provider( (ref) => AuthLocalDataSourceImpl(ref.watch(localStorageServiceProvider)), ); final authRemoteDataSourceProvider = Provider( (ref) => const AuthRemoteDataSourceImpl(), ); final authRepositoryProvider = Provider( (ref) => AuthRepositoryImpl( ref.watch(authRemoteDataSourceProvider), ref.watch(authLocalDataSourceProvider), ref.watch(deviceIdServiceProvider), ), ); final loginUseCaseProvider = Provider( (ref) => LoginUseCase(ref.watch(authRepositoryProvider)), ); final getCurrentUserProfileUseCaseProvider = Provider( (ref) => GetCurrentUserProfileUseCase(ref.watch(authRepositoryProvider)), ); final logoutUseCaseProvider = Provider( (ref) => LogoutUseCase(ref.watch(authRepositoryProvider)), );