forked from eatvio/eatvio_app
324 lines
14 KiB
Dart
324 lines
14 KiB
Dart
import 'package:eatvio_app/core/cubit/marketing/marketing_cubit.dart';
|
|
import 'package:eatvio_app/core/internet_connection_cubit/internet_connection_cubit.dart';
|
|
import 'package:eatvio_app/core/views/cubit/views_cubit.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/bloc/auth_cubit/auth_cubit.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/bloc/oauth_cubit/oauth_cubit.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/bloc/reset_password_cubit/reset_password_cubit.dart';
|
|
import 'package:eatvio_app/features/blog_post/presentation/cubit/blog_post_cubit.dart';
|
|
import 'package:eatvio_app/features/blog_post_create/bloc/blog_post_create_cubit/blog_post_create_cubit.dart';
|
|
import 'package:eatvio_app/features/bottom_navigation_bar/presentation/bloc/new_messages_cubit/new_messages_cubit.dart';
|
|
import 'package:eatvio_app/features/bottom_navigation_bar/presentation/bloc/profile_avatar_cubit/profile_avatar_cubit.dart';
|
|
import 'package:eatvio_app/features/calendar/presentation/bloc/calendar_cubit.dart';
|
|
import 'package:eatvio_app/features/cancel_plan_bottom_sheet/cubit/cancel_plan_cubit.dart';
|
|
import 'package:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart';
|
|
import 'package:eatvio_app/features/chat/presentation/bloc/chats_cubit/chats_cubit.dart';
|
|
import 'package:eatvio_app/features/complaining/presentation/cubit/complaining_cubit.dart';
|
|
import 'package:eatvio_app/features/consultant/become_consultant/presentation/bloc/register_consultant_cubit/register_consultant_cubit.dart';
|
|
import 'package:eatvio_app/features/consultant_rating/presentation/cubit/consultant_rating_cubit.dart';
|
|
import 'package:eatvio_app/features/consultations/presentation/cubit/consultations_cubit.dart';
|
|
import 'package:eatvio_app/features/create_diet/presentation/cubit/create_diet_cubit.dart';
|
|
import 'package:eatvio_app/features/create_plan/presentation/cubit/create_plan_cubit.dart';
|
|
import 'package:eatvio_app/features/create_recipe/presentation/bloc/create_recipe_cubit/create_recipe_cubit.dart';
|
|
import 'package:eatvio_app/features/diary/presentation/bloc/consultant_comments_cubit/consultant_comments_cubit.dart';
|
|
import 'package:eatvio_app/features/diary/presentation/bloc/diary_cubit.dart';
|
|
import 'package:eatvio_app/features/diets/presentation/cubit/about_diet_cubit.dart';
|
|
import 'package:eatvio_app/features/feed/presentation/bloc/consultants_cubit/consultants_cubit.dart';
|
|
import 'package:eatvio_app/features/feed/presentation/bloc/diets_cubit/diets_cubit.dart';
|
|
import 'package:eatvio_app/features/feed/presentation/bloc/feed_cubit/feed_cubit.dart';
|
|
import 'package:eatvio_app/features/feed/presentation/bloc/plans_cubit/plans_cubit.dart';
|
|
import 'package:eatvio_app/features/feed/presentation/bloc/profile_cubit/profile_cubit.dart';
|
|
import 'package:eatvio_app/features/feed/presentation/bloc/recipes_cubit/recipes_cubit.dart';
|
|
import 'package:eatvio_app/features/finances_and_consultations_archive/cubit/archive/consultations_archive_cubit.dart';
|
|
import 'package:eatvio_app/features/finances_and_consultations_archive/cubit/consultant_finances/consultant_finances_cubit.dart';
|
|
import 'package:eatvio_app/features/finances_and_consultations_archive/cubit/user_purchases/user_purchases_cubit.dart';
|
|
import 'package:eatvio_app/features/menu/presentation/bloc/menu_cubit/menu_cubit.dart';
|
|
import 'package:eatvio_app/features/menu/presentation/blocked_user_cubit/blocked_users_cubit.dart';
|
|
import 'package:eatvio_app/features/menu/presentation/bloc/notification_settings_cubit/notification_settings_cubit.dart';
|
|
import 'package:eatvio_app/features/my_diets/presentation/cubit/my_diets_cubit.dart';
|
|
import 'package:eatvio_app/features/my_finance/presentation/cubit/user_cards_cubit/user_cards_cubit.dart';
|
|
import 'package:eatvio_app/features/my_plans/presentation/cubit/my_plans_cubit.dart';
|
|
import 'package:eatvio_app/features/notifications/presentation/notifications_cubit/notifications_cubit.dart';
|
|
import 'package:eatvio_app/features/order_info/cubit/order_info_cubit.dart';
|
|
import 'package:eatvio_app/features/payment/presentation/cubit/consultation_payment_cubit/consultation_payment_cubit.dart';
|
|
import 'package:eatvio_app/features/personal_diet_suggestion/cubit/personal_diet_suggestion_cubit.dart';
|
|
import 'package:eatvio_app/features/plans/presentation/cubit/about_plan_cubit.dart';
|
|
import 'package:eatvio_app/features/profile/presentation/bloc/plans_cubit/plans_cubit.dart'
|
|
as profile_plans;
|
|
import 'package:eatvio_app/features/profile/presentation/bloc/profile_cubit/profile_cubit.dart';
|
|
import 'package:eatvio_app/features/profile/presentation/bloc/sub_cubit/sub_cubit.dart';
|
|
import 'package:eatvio_app/features/recipe/presentation/cubit/about_recipe_cubit.dart';
|
|
import 'package:eatvio_app/features/recipe/presentation/cubit/my_recipes_cubit/my_recipes_cubit.dart';
|
|
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
|
import 'package:eatvio_app/features/registration/presentation/bloc/verify_email_cubit/verify_email_cubit.dart';
|
|
import 'package:eatvio_app/features/registration_v2/cubit/registration_cubit.dart';
|
|
import 'package:eatvio_app/features/settings/presentation/bloc/settings_cubit/settings_cubit.dart';
|
|
import 'package:eatvio_app/features/user_details/presentation/cubit/user_details_cubit.dart';
|
|
import 'package:eatvio_app/features/video_calls/managers/video_call_manager.dart';
|
|
import 'package:eatvio_app/features/video_calls/presentation/bloc/video_call_session/video_call_session_cubit.dart';
|
|
import 'package:eatvio_app/core/comments/comments_cubit/comments_cubit.dart';
|
|
import 'package:get_it/get_it.dart';
|
|
|
|
/// Регистрация всех Cubit'ов в системе внедрения зависимостей
|
|
class CubitRegistrations {
|
|
static final sl = GetIt.instance;
|
|
|
|
/// Регистрация всех Cubit'ов
|
|
static void registerAll() {
|
|
_registerSingletonCubits();
|
|
_registerFactoryCubits();
|
|
}
|
|
|
|
/// Регистрация Cubit'ов как синглтонов
|
|
static void _registerSingletonCubits() {
|
|
sl.registerLazySingleton<NewMessagesCubit>(() => NewMessagesCubit());
|
|
sl.registerLazySingleton<NotificationsCubit>(
|
|
() => NotificationsCubit(wsManager: sl(), notificationsRepository: sl()),
|
|
);
|
|
sl.registerLazySingleton<ProfileAvatarCubit>(
|
|
() => ProfileAvatarCubit(profileRepository: sl()),
|
|
);
|
|
sl.registerLazySingleton<ChatsCubit>(
|
|
() => ChatsCubit(
|
|
chatRepository: sl(),
|
|
wsManager: sl(),
|
|
profileRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerLazySingleton<InternetConnectionCubit>(
|
|
() => InternetConnectionCubit(),
|
|
);
|
|
sl.registerLazySingleton<VideoCallManager>(
|
|
() =>
|
|
VideoCallManager(videoCallRepository: sl(), profileRepository: sl()),
|
|
);
|
|
sl.registerLazySingleton<VideoCallSessionCubit>(
|
|
() => VideoCallSessionCubit(
|
|
videoCallManager: sl(),
|
|
systemPipCoordinator: sl(),
|
|
),
|
|
);
|
|
sl.registerLazySingleton<FeedCubit>(() => FeedCubit(feedRepository: sl()));
|
|
}
|
|
|
|
/// Регистрация Cubit'ов как фабрик
|
|
static void _registerFactoryCubits() {
|
|
// Auth related cubits
|
|
sl.registerFactory<AuthCubit>(
|
|
() => AuthCubit(
|
|
authRepository: sl(),
|
|
firebaseApi: sl(),
|
|
prefs: sl(),
|
|
profileRepository: sl(),
|
|
sessionLifecycleService: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<RegistrationCubit>(
|
|
() => RegistrationCubit(
|
|
registrationRepository: sl(),
|
|
prefs: sl(),
|
|
sessionLifecycleService: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<ResetPasswordCubit>(
|
|
() => ResetPasswordCubit(resetPasswordRepository: sl()),
|
|
);
|
|
sl.registerFactory<VerifyEmailCubit>(
|
|
() => VerifyEmailCubit(profileRepository: sl(), prefs: sl()),
|
|
);
|
|
sl.registerFactory<OAuthCubit>(
|
|
() => OAuthCubit(
|
|
authRepository: sl(),
|
|
firebaseApi: sl(),
|
|
prefs: sl(),
|
|
sessionLifecycleService: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<RegistrationCubitV2>(
|
|
() => RegistrationCubitV2(
|
|
registrationRepository: sl(),
|
|
firebaseApi: sl(),
|
|
sessionLifecycleService: sl(),
|
|
),
|
|
);
|
|
// Feed related cubits
|
|
sl.registerFactory<RecipesCubit>(
|
|
() => RecipesCubit(
|
|
feedRepository: sl(),
|
|
recipeRepository: sl(),
|
|
aboutRecipeRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<DietsCubit>(
|
|
() => DietsCubit(feedRepository: sl(), dietsRepository: sl()),
|
|
);
|
|
sl.registerFactory<PlansCubit>(
|
|
() => PlansCubit(feedRepository: sl(), planRepository: sl()),
|
|
);
|
|
sl.registerFactory<ConsultantsCubit>(
|
|
() => ConsultantsCubit(feedRepository: sl()),
|
|
);
|
|
sl.registerFactory<CommentsCubit>(
|
|
() => CommentsCubit(feedRepository: sl(), commentsRepository: sl()),
|
|
);
|
|
sl.registerFactory<FeedProfileCubit>(
|
|
() => FeedProfileCubit(profileRepository: sl()),
|
|
);
|
|
|
|
// Chat related cubits
|
|
sl.registerFactory<ChatRoomCubit>(
|
|
() => ChatRoomCubit(
|
|
cardsRepository: sl(),
|
|
chatRepository: sl(),
|
|
wsManager: sl(),
|
|
),
|
|
);
|
|
|
|
// Profile related cubits
|
|
sl.registerFactory<ProfileCubit>(
|
|
() => ProfileCubit(
|
|
profileRepository: sl(),
|
|
chatRepository: sl(),
|
|
consultantRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<profile_plans.PlansCubit>(
|
|
() => profile_plans.PlansCubit(plansRepository: sl()),
|
|
);
|
|
sl.registerFactory<SubCubit>(() => SubCubit(profileRepository: sl()));
|
|
|
|
// Content creation cubits
|
|
sl.registerFactory<CreateDietCubit>(
|
|
() => CreateDietCubit(
|
|
profileRepository: sl(),
|
|
createDietRepository: sl(),
|
|
glossaryRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<CreatePlanCubit>(
|
|
() => CreatePlanCubit(createPlanRepository: sl()),
|
|
);
|
|
sl.registerFactory<CreateRecipeCubit>(
|
|
() => CreateRecipeCubit(recipeRepository: sl(), glossaryRepository: sl()),
|
|
);
|
|
sl.registerFactory<BlogPostCreateCubit>(
|
|
() => BlogPostCreateCubit(blogPostRepository: sl()),
|
|
);
|
|
|
|
// Content viewing cubits
|
|
sl.registerFactory<AboutDietCubit>(
|
|
() => AboutDietCubit(dietsRepository: sl(), profileRepository: sl()),
|
|
);
|
|
sl.registerFactory<AboutPlanCubit>(
|
|
() => AboutPlanCubit(
|
|
planRepository: sl(),
|
|
profileRepository: sl(),
|
|
dietRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<AboutRecipeCubit>(
|
|
() => AboutRecipeCubit(recipeRepository: sl(), profileRepository: sl()),
|
|
);
|
|
sl.registerFactory<BlogPostCubit>(() => BlogPostCubit(sl()));
|
|
|
|
// User content cubits
|
|
sl.registerFactory<MyDietsCubit>(
|
|
() => MyDietsCubit(myDietsRepository: sl(), createDietRepository: sl()),
|
|
);
|
|
sl.registerFactory<MyPlansCubit>(
|
|
() => MyPlansCubit(myPlansRepository: sl()),
|
|
);
|
|
sl.registerFactory<MyRecipesCubit>(
|
|
() => MyRecipesCubit(
|
|
myRecipesRepository: sl(),
|
|
aboutRecipeRepository: sl(),
|
|
recipeRepository: sl(),
|
|
),
|
|
);
|
|
|
|
// Other feature cubits
|
|
sl.registerFactory<CalendarCubit>(
|
|
() => CalendarCubit(calendarRepository: sl()),
|
|
);
|
|
sl.registerFactory<DiaryCubit>(
|
|
() => DiaryCubit(
|
|
chatRepository: sl(),
|
|
diaryRepository: sl(),
|
|
glossaryRepository: sl(),
|
|
profileRepository: sl(),
|
|
dietRepository: sl(),
|
|
settingsRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<SettingsCubit>(
|
|
() => SettingsCubit(
|
|
profileRepository: sl(),
|
|
settingsRepository: sl(),
|
|
consultantRepository: sl(),
|
|
consultationsRepository: sl(),
|
|
sessionLifecycleService: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<RegisterConsultantCubit>(
|
|
() => RegisterConsultantCubit(consultantRepository: sl()),
|
|
);
|
|
sl.registerFactory<ComplainingCubit>(
|
|
() => ComplainingCubit(repository: sl()),
|
|
);
|
|
sl.registerFactory<UserCardsCubit>(
|
|
() => UserCardsCubit(cardsRepository: sl()),
|
|
);
|
|
sl.registerFactory<OrderInfoCubit>(
|
|
() => OrderInfoCubit(chatRepository: sl(), profileRepository: sl()),
|
|
);
|
|
sl.registerFactory<ConsultationPaymentCubit>(
|
|
() => ConsultationPaymentCubit(
|
|
paymentRepository: sl(),
|
|
sbpRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<ConsultationsCubit>(
|
|
() => ConsultationsCubit(consultationsRepository: sl(), chatRepository: sl()),
|
|
);
|
|
sl.registerFactory<ConsultantCommentsCubit>(
|
|
() => ConsultantCommentsCubit(diaryRepository: sl()),
|
|
);
|
|
sl.registerFactory<CancelPlanCubit>(
|
|
() => CancelPlanCubit(cancelPlanRepository: sl()),
|
|
);
|
|
sl.registerFactory<ConsultationsArchiveCubit>(
|
|
() => ConsultationsArchiveCubit(consultationsRepository: sl()),
|
|
);
|
|
sl.registerFactory<ConsultantFinancesCubit>(
|
|
() => ConsultantFinancesCubit(consultationsRepository: sl()),
|
|
);
|
|
sl.registerFactory<UserPurchasesCubit>(
|
|
() => UserPurchasesCubit(consultationsRepository: sl()),
|
|
);
|
|
sl.registerFactory<BlockedUsersCubit>(
|
|
() => BlockedUsersCubit(blockedUsersRepository: sl()),
|
|
);
|
|
sl.registerFactory<NotificationSettingsCubit>(
|
|
() => NotificationSettingsCubit(notificationSettingsRepository: sl()),
|
|
);
|
|
sl.registerFactory<ConsultantRatingCubit>(
|
|
() => ConsultantRatingCubit(
|
|
feedRepository: sl(),
|
|
repository: sl(),
|
|
profileRepository: sl(),
|
|
),
|
|
);
|
|
sl.registerFactory<ViewsCubit>(() => ViewsCubit(viewsRepository: sl()));
|
|
sl.registerFactory<UserDetailsCubit>(
|
|
() => UserDetailsCubit(profileRepository: sl()),
|
|
);
|
|
sl.registerFactory<MenuCubit>(() => MenuCubit(sl(), sl()));
|
|
sl.registerFactory<MarketingCubit>(() => MarketingCubit(sl()));
|
|
sl.registerFactory<PersonalDietSuggestionCubit>(
|
|
() => PersonalDietSuggestionCubit(
|
|
dietRepository: sl(),
|
|
personalDietSuggestionService: sl(),
|
|
),
|
|
);
|
|
}
|
|
}
|