cb_prestige_qr/lib/features/auth/di/auth_providers.dart

39 lines
1.6 KiB
Dart
Raw Normal View History

2026-04-27 09:08:26 +00:00
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<AuthLocalDataSource>(
(ref) => AuthLocalDataSourceImpl(ref.watch(localStorageServiceProvider)),
);
final authRemoteDataSourceProvider = Provider<AuthRemoteDataSource>(
(ref) => const AuthRemoteDataSourceImpl(),
);
final authRepositoryProvider = Provider<AuthRepository>(
(ref) => AuthRepositoryImpl(
ref.watch(authRemoteDataSourceProvider),
ref.watch(authLocalDataSourceProvider),
ref.watch(deviceIdServiceProvider),
),
);
final loginUseCaseProvider = Provider<LoginUseCase>(
(ref) => LoginUseCase(ref.watch(authRepositoryProvider)),
);
final getCurrentUserProfileUseCaseProvider =
Provider<GetCurrentUserProfileUseCase>(
(ref) => GetCurrentUserProfileUseCase(ref.watch(authRepositoryProvider)),
);
final logoutUseCaseProvider = Provider<LogoutUseCase>(
(ref) => LogoutUseCase(ref.watch(authRepositoryProvider)),
);