import 'package:yimaru_app/ui/bottom_sheets/notice/notice_sheet.dart';
import 'package:yimaru_app/ui/dialogs/info_alert/info_alert_dialog.dart';
import 'package:yimaru_app/ui/views/home/home_view.dart';
import 'package:stacked/stacked_annotations.dart';
import 'package:stacked_services/stacked_services.dart';
import 'package:yimaru_app/ui/views/onboarding/onboarding_view.dart';
import 'package:yimaru_app/ui/views/startup/startup_view.dart';
import 'package:yimaru_app/ui/views/profile/profile_view.dart';
import 'package:yimaru_app/ui/views/profile_detail/profile_detail_view.dart';
import 'package:yimaru_app/ui/views/downloads/downloads_view.dart';
import 'package:yimaru_app/ui/views/progress/progress_view.dart';
import 'package:yimaru_app/ui/views/account_privacy/account_privacy_view.dart';
import 'package:yimaru_app/ui/views/support/support_view.dart';
import 'package:yimaru_app/ui/views/telegram_support/telegram_support_view.dart';
import 'package:yimaru_app/ui/views/call_support/call_support_view.dart';
import 'package:yimaru_app/ui/views/language/language_view.dart';
import 'package:yimaru_app/ui/views/privacy_policy/privacy_policy_view.dart';
import 'package:yimaru_app/ui/views/terms_and_conditions/terms_and_conditions_view.dart';
import 'package:yimaru_app/ui/views/register/register_view.dart';
import 'package:yimaru_app/ui/views/login/login_view.dart';
import 'package:yimaru_app/ui/views/learn_module/learn_module_view.dart';
import 'package:yimaru_app/services/authentication_service.dart';
import 'package:yimaru_app/services/api_service.dart';
import 'package:yimaru_app/services/secure_storage_service.dart';
import 'package:yimaru_app/services/dio_service.dart';
import 'package:yimaru_app/services/status_checker_service.dart';
import 'package:yimaru_app/ui/views/learn_lesson/learn_lesson_view.dart';
import 'package:yimaru_app/services/permission_handler_service.dart';
import 'package:yimaru_app/services/image_picker_service.dart';
import 'package:yimaru_app/services/google_auth_service.dart';
import 'package:yimaru_app/services/image_downloader_service.dart';
import 'package:yimaru_app/ui/views/forget_password/forget_password_view.dart';
import 'package:yimaru_app/ui/views/learn_lesson_detail/learn_lesson_detail_view.dart';
import 'package:yimaru_app/ui/views/learn_practice/learn_practice_view.dart';
import 'package:yimaru_app/ui/views/course_payment/course_payment_view.dart';
import 'package:yimaru_app/ui/views/failure/failure_view.dart';
import 'package:yimaru_app/ui/views/course_lesson_detail/course_lesson_detail_view.dart';
import 'package:yimaru_app/ui/views/duolingo/duolingo_view.dart';
import 'package:yimaru_app/services/smart_auth_service.dart';
import 'package:yimaru_app/services/course_service.dart';
import 'package:yimaru_app/ui/views/course/course_view.dart';
import 'package:yimaru_app/services/audio_player_service.dart';
import 'package:yimaru_app/services/voice_recorder_service.dart';
import 'package:yimaru_app/services/in_app_update_service.dart';
import 'package:yimaru_app/ui/views/learn_program/learn_program_view.dart';
import 'package:yimaru_app/ui/views/assessment/assessment_view.dart';
import 'package:yimaru_app/services/vimeo_service.dart';
import 'package:yimaru_app/services/url_launcher_service.dart';
import 'package:yimaru_app/services/phone_caller_service.dart';
import 'package:yimaru_app/ui/views/learn_subscription/learn_subscription_view.dart';
import 'package:yimaru_app/services/learn_service.dart';
import 'package:yimaru_app/ui/views/course_catalog/course_catalog_view.dart';
import 'package:yimaru_app/ui/views/course_unit/course_unit_view.dart';
import 'package:yimaru_app/services/localization_service.dart';
import 'package:yimaru_app/ui/views/landing/landing_view.dart';
import 'package:yimaru_app/ui/views/course_module/course_module_view.dart';
import 'package:yimaru_app/services/onboarding_service.dart';
import 'package:yimaru_app/ui/views/learn_course/learn_course_view.dart';
import 'package:yimaru_app/ui/views/payment/payment_view.dart';
import 'package:yimaru_app/ui/views/notification/notification_view.dart';
import 'package:yimaru_app/services/in_app_notification_service.dart';
import 'package:yimaru_app/services/push_notification_service.dart';
import 'package:yimaru_app/ui/views/course_practice/course_practice_view.dart';
// @stacked-import

@StackedApp(
  routes: [
    MaterialRoute(page: HomeView),
    MaterialRoute(page: OnboardingView),
    MaterialRoute(page: StartupView),
    MaterialRoute(page: ProfileView),
    MaterialRoute(page: ProfileDetailView),
    MaterialRoute(page: DownloadsView),
    MaterialRoute(page: ProgressView),
    MaterialRoute(page: AccountPrivacyView),
    MaterialRoute(page: SupportView),
    MaterialRoute(page: TelegramSupportView),
    MaterialRoute(page: CallSupportView),
    MaterialRoute(page: LanguageView),
    MaterialRoute(page: PrivacyPolicyView),
    MaterialRoute(page: TermsAndConditionsView),
    MaterialRoute(page: RegisterView),
    MaterialRoute(page: LoginView),
    MaterialRoute(page: LearnModuleView),
    MaterialRoute(page: LearnLessonView),
    MaterialRoute(page: ForgetPasswordView),
    MaterialRoute(page: LearnLessonDetailView),
    MaterialRoute(page: LearnPracticeView),
    MaterialRoute(page: CoursePaymentView),
    MaterialRoute(page: FailureView),
    MaterialRoute(page: CourseLessonDetailView),
    MaterialRoute(page: DuolingoView),
    MaterialRoute(page: CourseView),
    MaterialRoute(page: LearnProgramView),
    MaterialRoute(page: AssessmentView),
    MaterialRoute(page: LearnSubscriptionView),
    MaterialRoute(page: CourseCatalogView),
    MaterialRoute(page: CourseUnitView),
    MaterialRoute(page: LandingView),
    MaterialRoute(page: CourseModuleView),
    MaterialRoute(page: LearnCourseView),
    MaterialRoute(page: PaymentView),
    MaterialRoute(page: NotificationView),
    MaterialRoute(page: CoursePracticeView),
// @stacked-route
  ],
  dependencies: [
    LazySingleton(classType: BottomSheetService),
    LazySingleton(classType: DialogService),
    LazySingleton(classType: NavigationService),
    LazySingleton(classType: AuthenticationService),
    LazySingleton(classType: ApiService),
    LazySingleton(classType: SecureStorageService),
    LazySingleton(classType: DioService),
    LazySingleton(classType: StatusCheckerService),
    LazySingleton(classType: PermissionHandlerService),
    LazySingleton(classType: ImagePickerService),
    LazySingleton(classType: GoogleAuthService),
    LazySingleton(classType: ImageDownloaderService),
    LazySingleton(classType: SmartAuthService),
    LazySingleton(classType: CourseService),
    LazySingleton(classType: AudioPlayerService),
    LazySingleton(classType: VoiceRecorderService),
    LazySingleton(classType: InAppUpdateService),
    LazySingleton(classType: VimeoService),
    LazySingleton(classType: UrlLauncherService),
    LazySingleton(classType: PhoneCallerService),
    LazySingleton(classType: LearnService),
    LazySingleton(classType: LocalizationService),
    LazySingleton(classType: OnboardingService),
    LazySingleton(classType: InAppNotificationService),
    LazySingleton(classType: PushNotificationService),
// @stacked-service
  ],
  bottomsheets: [
    StackedBottomsheet(classType: NoticeSheet),
    // @stacked-bottom-sheet
  ],
  dialogs: [
    StackedDialog(classType: InfoAlertDialog),
    // @stacked-dialog
  ],
)
class App {}
