1import 'package:get_it/get_it.dart';
2import 'package:shared_preferences/shared_preferences.dart';
4import '../../features/auth/data/datasources/local_datasource/credentials_local_datasource.dart';
5import '../../features/auth/data/datasources/local_datasource/session_local_datasource.dart';
6import '../../features/auth/data/datasources/local_datasource/token_local_datasource.dart';
7import '../../features/auth/data/datasources/remote_datasource/authentication_remote_datasource.dart';
8import '../../features/auth/data/datasources/remote_datasource/check_in_out_remote_datasource.dart';
9import '../../features/auth/data/repository_impl/authentication_repository_impl.dart';
10import '../../features/auth/domain/repository/authentication_repository.dart';
11import '../../features/auth/domain/use_cases/check_biometric_auth_availability_usecase.dart';
12import '../../features/auth/domain/use_cases/fast_sign_in_usecase.dart';
13import '../../features/auth/domain/use_cases/get_available_vehicles_usecase.dart';
14import '../../features/auth/domain/use_cases/load_credentials_usecase.dart';
15import '../../features/auth/domain/use_cases/load_session_usecase.dart';
16import '../../features/auth/domain/use_cases/send_vehicle_check_usecase.dart';
17import '../../features/auth/domain/use_cases/signin_usecases.dart';
18import '../../features/auth/domain/use_cases/signout_usecase.dart';
19import '../../features/auth/presentation/bloc/authentication_bloc/authentication_bloc.dart';
20import '../../features/collections/data/datasources/collection_local_datasource.dart';
21import '../../features/collections/data/datasources/collection_remote_datasource.dart';
22import '../../features/collections/data/datasources/planning_remote_datasource.dart';
23import '../../features/collections/data/repositories/collection_repository_impl.dart';
24import '../../features/collections/data/repositories/planning_repository_impl.dart';
25import '../../features/collections/domain/repositories/collection_repository.dart';
26import '../../features/collections/domain/repositories/planning_repository.dart';
27import '../../features/collections/domain/usecases/get_cancellation_reason_usecase.dart';
28import '../../features/collections/domain/usecases/get_collection_contact_list_usecase.dart';
29import '../../features/collections/domain/usecases/get_collection_rating_reasons_usecase.dart';
30import '../../features/collections/domain/usecases/get_collections_usecase.dart';
31import '../../features/collections/domain/usecases/get_partner_payment_methods_list_usecase.dart';
32import '../../features/collections/domain/usecases/get_weekly_collections_usecase.dart';
33import '../../features/collections/domain/usecases/create_routing_usecase.dart';
34import '../../features/collections/domain/usecases/validate_scheduler_usecase.dart';
35import '../../features/collections/domain/usecases/create_driver_collection_usecase.dart';
36import '../../features/collections/domain/usecases/get_collections_to_schedule_usecase.dart';
37import '../../features/home/data/datasources/home_remote_datasource.dart';
38import '../../features/home/data/repositories/home_repository_impl.dart';
39import '../../features/home/domain/repositories/home_repository.dart';
40import '../../features/home/domain/usecases/get_schedule_status_usecase.dart';
41import '../../features/collections/presentation/bloc/weekly_collections_bloc/weekly_collections_bloc.dart';
42import '../../features/collections/presentation/bloc/collections_to_schedule_bloc/collections_to_schedule_bloc.dart';
43import '../../features/collections/domain/usecases/send_collection_confirmation_usecase.dart';
44import '../../features/collections/domain/usecases/send_collection_information_usecase.dart';
45import '../../features/collections/domain/usecases/send_collection_payment_usecase.dart';
46import '../../features/collections/domain/usecases/send_collection_rating_usecase.dart';
47import '../../features/collections/domain/usecases/update_collection_status_usecase.dart';
48import '../../features/collections/domain/usecases/validate_collection_usecase.dart';
49import '../../features/dashboard/data/datasources/dashboard_remote_datasource.dart';
50import '../../features/dashboard/data/repositories/dashboard_repository_impl.dart';
51import '../../features/dashboard/domain/repositories/dashboard_repository.dart';
52import '../../features/dashboard/domain/usecases/get_collection_statistics_usecase.dart';
53import '../../features/e-learning/data/data_sources/elearning_v2_local_data_source.dart';
54import '../../features/e-learning/data/data_sources/elearning_v2_local_data_source_impl.dart';
55import '../../features/e-learning/data/repository_impl/elearning_v2_repository_impl.dart';
56import '../../features/e-learning/domain/repository/elearning_v2_repository.dart';
57import '../../features/e-learning/presentation/logic/cubit/elearning_v2_cubit.dart';
58import '../../features/history/data/datasources/history_local_datasource.dart';
59import '../../features/history/data/datasources/history_remote_datasource.dart';
60import '../../features/history/data/repositories/history_repository_impl.dart';
61import '../../features/history/domain/repositories/history_repository.dart';
62import '../../features/history/domain/usecases/get_history_collections_usecase.dart';
63import '../../features/history/domain/usecases/get_pending_collections_usecase.dart';
64import '../../features/notifications/data/datasources/notifications_remote_datasource.dart';
65import '../../features/notifications/data/repositories/notifications_repository_impl.dart';
66import '../../features/notifications/domain/repositories/notifications_repository.dart';
67import '../../features/notifications/domain/usecases/get_notifications_usecase.dart';
68import '../../features/unloading/data/datasources/unloading_remote_datasource.dart';
69import '../../features/unloading/data/repositories/unloading_repository_impl.dart';
70import '../../features/unloading/domain/repositories/unloading_repository.dart';
71import '../../features/unloading/domain/usecases/get_history_unloading_usecase.dart';
72import '../../features/unloading/domain/usecases/get_pending_unloading_collections_usecase.dart';
73import '../../features/unloading/domain/usecases/get_warehouse_responsible_list_usecase.dart';
74import '../../features/unloading/domain/usecases/send_unloading_usecase.dart';
75import '../api/api_client.dart';
77final sl = GetIt.instance;
86 sl.registerLazySingleton<CredentialsLocalDataSource>(() => CredentialsLocalDataSource());
87 sl.registerLazySingleton<SessionLocalDataSource>(() => SessionLocalDataSource());
88 sl.registerLazySingleton<TokenLocalDataSource>(() => TokenLocalDataSource());
90 sl.registerLazySingleton<SignInUseCase>(() => SignInUseCase());
91 sl.registerLazySingleton<SignOutUseCase>(() => SignOutUseCase());
92 sl.registerLazySingleton<LoadCredentialsUseCase>(() => LoadCredentialsUseCase());
93 sl.registerLazySingleton<LoadSessionUseCase>(() => LoadSessionUseCase());
94 sl.registerLazySingleton<FastSignInUseCase>(() => FastSignInUseCase());
95 sl.registerLazySingleton<CheckBiometricAuthAvailabilityUseCase>(() => CheckBiometricAuthAvailabilityUseCase());
96 sl.registerLazySingleton<AuthenticationBloc>(() => AuthenticationBloc());
102 () => CollectionsRepositoryImpl(
103 remoteDataSource:
sl(),
104 localDatasource:
sl(),
116 remoteDataSource:
sl(),
117 localDataSource:
sl(),
121 sl.registerLazySingleton(() => GetCancellationReasonsUseCase(
repository:
sl()));
127 sl.registerLazySingleton(() => GetCollectionRatingReasonsUseCase(
repository:
sl()));
131 sl.registerLazySingleton(() => CreateRoutingUseCase(
repository:
sl()));
140 sl.registerFactory(() => WeeklyCollectionsBloc());
143 sl.registerFactory(() => CollectionsToScheduleBloc());
165 sl.registerLazySingleton<GetAvailableVehiclesUsecase>(()=> GetAvailableVehiclesUsecase());
166 sl.registerLazySingleton<SendVehicleCheckUsecase>(()=> SendVehicleCheckUsecase());
169 final sharedPreferences = await SharedPreferences.getInstance();
170 sl.registerLazySingleton<SharedPreferences>(() => sharedPreferences);
173 () => ElearningV2LocalDataSourceImpl(sharedPreferences:
sl()),
176 () => ElearningV2RepositoryImpl(localDataSource:
sl()),
178 sl.registerLazySingleton<ElearningV2Cubit>(
179 () => ElearningV2Cubit(
sl()),
GetCollectionStatisticsUseCase(this.repository)
GetCollectionsUseCase({required this.repository})
GetHistoryCollectionsUsecase({required this.repository})
GetNotificationsUseCase({required this.repository})
GetPartnerPaymentMethodsListUsecase({required this.repository})
GetPendingCollectionsUsecase({required this.repository})
GetScheduleStatusUseCase({required this.repository})
GetWeeklyCollectionsUseCase({required this.repository})
SendCollectionConfirmationUsecase({required this.repository})
SendCollectionPaymentUsecase({required this.repository})
SendCollectionRatingUsecase({required this.repository})
SendUnloadingUsecase({required this.repository})
Future< void > init() async
UpdateCollectionStatusUsecase({required this.repository})
ValidateCollectionUsecase({required this.repository})
ValidateSchedulerUseCase({required this.repository})