import 'package:get/get.dart';

import '../models/booking_model.dart';
import '../models/rental_booking_model.dart';
import '../modules/add_bank/bindings/add_bank_binding.dart';
import '../modules/add_bank/views/add_bank_view.dart';
import '../modules/ask_for_otp/bindings/ask_for_otp_binding.dart';
import '../modules/ask_for_otp/views/ask_for_otp_view.dart';
import '../modules/ask_for_otp_intercity/bindings/ask_for_otp_intercity_binding.dart';
import '../modules/ask_for_otp_intercity/views/ask_for_otp_intercity_view.dart';
import '../modules/ask_for_otp_parcel/bindings/ask_for_otp_parcel_binding.dart';
import '../modules/ask_for_otp_parcel/views/ask_for_otp_parcel_view.dart';
import '../modules/ask_for_otp_rental/bindings/ask_for_otp_rental_binding.dart';
import '../modules/ask_for_otp_rental/views/ask_for_otp_rental_view.dart';
import '../modules/booking_details/bindings/booking_details_binding.dart';
import '../modules/booking_details/views/booking_details_view.dart';
import '../modules/cab_rides/bindings/cab_rides_binding.dart';
import '../modules/cab_rides/views/cab_rides_view.dart';
import '../modules/chat_screen/bindings/chat_screen_binding.dart';
import '../modules/chat_screen/views/chat_screen_view.dart';
import '../modules/create_support_ticket/bindings/create_support_ticket_binding.dart';
import '../modules/create_support_ticket/views/create_support_ticket_view.dart';
import '../modules/edit_profile/bindings/edit_profile_binding.dart';
import '../modules/edit_profile/views/edit_profile_view.dart';
import '../modules/emergency_contacts/bindings/emergency_contacts_binding.dart';
import '../modules/emergency_contacts/views/emergency_contacts_view.dart';
import '../modules/home/bindings/home_binding.dart';
import '../modules/home/views/home_view.dart';
import '../modules/html_view_screen/bindings/html_view_screen_binding.dart';
import '../modules/html_view_screen/views/html_view_screen_view.dart';
import '../modules/inbox_screen/bindings/inbox_screen_binding.dart';
import '../modules/inbox_screen/views/inbox_screen_view.dart';
import '../modules/intercity_ride_for_home/bindings/intercity_ride_for_home_binding.dart';
import '../modules/intercity_ride_for_home/views/intercity_ride_for_home_view.dart';
import '../modules/intercity_rides/bindings/intercity_rides_binding.dart';
import '../modules/intercity_rides/views/intercity_rides_view.dart';
import '../modules/intro_screen/bindings/intro_screen_binding.dart';
import '../modules/intro_screen/views/intro_screen_view.dart';
import '../modules/language/bindings/language_binding.dart';
import '../modules/language/views/language_view.dart';
import '../modules/login/bindings/login_binding.dart';
import '../modules/login/views/login_view.dart';
import '../modules/my_bank/bindings/my_bank_binding.dart';
import '../modules/my_bank/views/my_bank_view.dart';
import '../modules/my_wallet/bindings/my_wallet_binding.dart';
import '../modules/my_wallet/views/my_wallet_view.dart';
import '../modules/notifications/bindings/notifications_binding.dart';
import '../modules/notifications/views/notifications_view.dart';
import '../modules/otp_screen/bindings/otp_screen_binding.dart';
import '../modules/otp_screen/views/otp_screen_view.dart';
import '../modules/parcel_ride_for_home/bindings/parcel_ride_for_home_binding.dart';
import '../modules/parcel_ride_for_home/views/parcel_ride_for_home_view.dart';
import '../modules/permission/bindings/permission_binding.dart';
import '../modules/permission/views/permission_view.dart';
import '../modules/reason_for_cancel_cab/bindings/reason_for_cancel_cab_binding.dart';
import '../modules/reason_for_cancel_cab/views/reason_for_cancel_cab_view.dart';
import '../modules/reason_for_cancel_rental_ride/bindings/reason_for_cancel_rental_ride_binding.dart';
import '../modules/reason_for_cancel_rental_ride/views/reason_for_cancel_rental_ride_view.dart';
import '../modules/referral_screen/bindings/referral_screen_binding.dart';
import '../modules/referral_screen/views/referral_screen_view.dart';
import '../modules/rental_ride_details/bindings/rental_ride_details_binding.dart';
import '../modules/rental_ride_details/views/rental_ride_details_view.dart';
import '../modules/rental_rides/bindings/rental_rides_binding.dart';
import '../modules/rental_rides/views/rental_rides_view.dart';
import '../modules/review_screen/bindings/review_screen_binding.dart';
import '../modules/review_screen/views/review_screen_view.dart';
import '../modules/signup/bindings/signup_binding.dart';
import '../modules/signup/views/signup_view.dart';
import '../modules/sos_request/bindings/sos_request_binding.dart';
import '../modules/sos_request/views/sos_request_view.dart';
import '../modules/splash_screen/bindings/splash_screen_binding.dart';
import '../modules/splash_screen/views/splash_screen_view.dart';
import '../modules/subscription_plan/bindings/subscription_plan_binding.dart';
import '../modules/subscription_plan/views/subscription_plan_view.dart';
import '../modules/support_screen/bindings/support_screen_binding.dart';
import '../modules/support_screen/views/support_screen_view.dart';
import '../modules/support_ticket_details/bindings/support_ticket_details_binding.dart';
import '../modules/support_ticket_details/views/support_ticket_details_view.dart';
import '../modules/track_intercity_ride_screen/bindings/track_intercity_ride_screen_binding.dart';
import '../modules/track_intercity_ride_screen/views/track_intercity_ride_screen_view.dart';
import '../modules/track_parcel_ride_screen/bindings/track_parcel_ride_screen_binding.dart';
import '../modules/track_parcel_ride_screen/views/track_parcel_ride_screen_view.dart';
import '../modules/track_rental_ride_screen/bindings/track_rental_ride_screen_binding.dart';
import '../modules/track_rental_ride_screen/views/track_rental_ride_screen_view.dart';
import '../modules/track_ride_screen/bindings/track_ride_screen_binding.dart';
import '../modules/track_ride_screen/views/track_ride_screen_view.dart';
import '../modules/update_vehicle_details/bindings/update_vehicle_details_binding.dart';
import '../modules/update_vehicle_details/views/update_vehicle_details_view.dart';
import '../modules/upload_documents/bindings/upload_documents_binding.dart';
import '../modules/upload_documents/views/upload_documents_view.dart';
import '../modules/verify_documents/bindings/verify_documents_binding.dart';
import '../modules/verify_documents/views/verify_documents_view.dart';
import '../modules/verify_otp/bindings/verify_otp_binding.dart';
import '../modules/verify_otp/views/verify_otp_view.dart';

// ignore_for_file: constant_identifier_names

part 'app_routes.dart';

class AppPages {
  AppPages._();

  static const INITIAL = Routes.SPLASH_SCREEN;

  static final routes = [
    GetPage(
      name: _Paths.HOME,
      page: () => const HomeView(),
      binding: HomeBinding(),
    ),
    GetPage(
      name: _Paths.SPLASH_SCREEN,
      page: () => const SplashScreenView(),
      binding: SplashScreenBinding(),
    ),
    GetPage(
      name: _Paths.INTRO_SCREEN,
      page: () => const IntroScreenView(),
      binding: IntroScreenBinding(),
    ),
    GetPage(
      name: _Paths.LOGIN,
      page: () => const LoginView(),
      binding: LoginBinding(),
    ),
    GetPage(
      name: _Paths.VERIFY_OTP,
      page: () => const VerifyOtpView(),
      binding: VerifyOtpBinding(),
    ),
    GetPage(
      name: _Paths.SIGNUP,
      page: () => const SignupView(),
      binding: SignupBinding(),
    ),
    GetPage(
      name: _Paths.UPLOAD_DOCUMENTS,
      page: () => UploadDocumentsView(),
      binding: UploadDocumentsBinding(),
    ),
    GetPage(
      name: _Paths.UPDATE_VEHICLE_DETAILS,
      page: () => const UpdateVehicleDetailsView(
        isUploaded: false,
      ),
      binding: UpdateVehicleDetailsBinding(),
    ),
    GetPage(
      name: _Paths.VERIFY_DOCUMENTS,
      page: () => const VerifyDocumentsView(isFromDrawer: false),
      binding: VerifyDocumentsBinding(),
    ),
    GetPage(
      name: _Paths.DAILY_RIDES,
      page: () => CabRidesView(),
      binding: CabRidesBinding(),
    ),
    GetPage(
      name: _Paths.INTERCITY_RIDES,
      page: () => InterCityRidesView(),
      binding: InterCityRidesBinding(),
    ),
    GetPage(
      name: _Paths.ASK_FOR_OTP,
      page: () => const AskForOtpView(),
      binding: AskForOtpBinding(),
    ),
    GetPage(
      name: _Paths.ASK_FOR_OTP_INTERCITY,
      page: () => const AskForOtpInterCityView(),
      binding: AskForOtpIntercityBinding(),
    ),
    GetPage(
      name: _Paths.ASK_FOR_OTP_PARCEL,
      page: () => const AskForOtpParcelView(),
      binding: AskForOtpParcelBinding(),
    ),
    GetPage(
      name: _Paths.OTP_SCREEN,
      page: () => OtpScreenView(
        bookingModel: BookingModel(),
      ),
      binding: OtpScreenBinding(),
    ),
    GetPage(
      name: _Paths.BOOKING_DETAILS,
      page: () => const BookingDetailsView(),
      binding: BookingDetailsBinding(),
    ),
    GetPage(
      name: _Paths.REASON_FOR_CANCEL,
      page: () => ReasonForCancelCabView(
        bookingModel: BookingModel(),
      ),
      binding: ReasonForCancelCabBinding(),
    ),
    GetPage(
      name: _Paths.NOTIFICATIONS,
      page: () => const NotificationsView(),
      binding: NotificationsBinding(),
    ),
    GetPage(
      name: _Paths.EDIT_PROFILE,
      page: () => const EditProfileView(),
      binding: EditProfileBinding(),
    ),
    GetPage(
      name: _Paths.MY_WALLET,
      page: () => const MyWalletView(),
      binding: MyWalletBinding(),
    ),
    GetPage(
      name: _Paths.LANGUAGE,
      page: () => const LanguageView(),
      binding: LanguageBinding(),
    ),
    GetPage(
      name: _Paths.PERMISSION,
      page: () => const PermissionView(),
      binding: PermissionBinding(),
    ),
    GetPage(
      name: _Paths.HTML_VIEW_SCREEN,
      page: () => const HtmlViewScreenView(
        title: '',
        htmlData: '',
      ),
      binding: HtmlViewScreenBinding(),
    ),
    GetPage(
      name: _Paths.TRACK_RIDE_SCREEN,
      page: () => const TrackRideScreenView(),
      binding: TrackRideScreenBinding(),
    ),
    GetPage(
      name: _Paths.TRACK_INTERCITY_RIDE_SCREEN,
      page: () => const TrackIntercityRideScreenView(),
      binding: TrackInterCityRideScreenBinding(),
    ),
    GetPage(
      name: _Paths.TRACK_PARCEL_RIDE_SCREEN,
      page: () => const TrackParcelRideScreenView(),
      binding: ParcelRideScreenBinding(),
    ),
    GetPage(
      name: _Paths.CHAT_SCREEN,
      page: () => const ChatScreenView(
        receiverId: '',
      ),
      binding: ChatScreenBinding(),
    ),
    GetPage(
      name: _Paths.REVIEW_SCREEN,
      page: () => const ReviewScreenView(),
      binding: ReviewScreenBinding(),
    ),
    GetPage(
      name: _Paths.MY_BANK,
      page: () => const MyBankView(),
      binding: MyBankBinding(),
    ),
    GetPage(
      name: _Paths.ADD_BANK,
      page: () => const AddBankView(),
      binding: AddBankBinding(),
    ),
    GetPage(
      name: _Paths.SUPPORT_SCREEN,
      page: () => const SupportScreenView(),
      binding: SupportScreenBinding(),
    ),
    GetPage(
      name: _Paths.CREATE_SUPPORT_TICKET,
      page: () => const CreateSupportTicketView(),
      binding: CreateSupportTicketBinding(),
    ),
    GetPage(
      name: _Paths.SUPPORT_TICKET_DETAILS,
      page: () => const SupportTicketDetailsView(),
      binding: SupportTicketDetailsBinding(),
    ),
    GetPage(
      name: _Paths.SUBSCRIPTION_PLAN,
      page: () => const SubscriptionPlanView(),
      binding: SubscriptionPlanBinding(),
    ),
    GetPage(
      name: _Paths.RENTAL_RIDES,
      page: () => const RentalRidesView(),
      binding: RentalRidesBinding(),
    ),
    GetPage(
      name: _Paths.RENTAL_RIDE_DETAILS,
      page: () => const RentalRideDetailsView(),
      binding: RentalRideDetailsBinding(),
    ),
    GetPage(
      name: _Paths.ASK_FOR_OTP_RENTAL,
      page: () => const AskForOtpRentalView(),
      binding: AskForOtpRentalBinding(),
    ),
    GetPage(
      name: _Paths.REASON_FOR_CANCEL_RENTAL_RIDE,
      page: () => ReasonForCancelRentalRideView(
          rentalBookingModel: RentalBookingModel()),
      binding: ReasonForCancelRentalRideBinding(),
    ),
    GetPage(
      name: _Paths.TRACK_RENTAL_RIDE_SCREEN,
      page: () => TrackRentalRideScreenView(),
      binding: TrackRentalRideScreenBinding(),
    ),
    GetPage(
      name: _Paths.INTERCITY_RIDE_FOR_HOME,
      page: () => const IntercityRideForHomeView(),
      binding: IntercityRideForHomeBinding(),
    ),
    GetPage(
      name: _Paths.PARCEL_RIDE_FOR_HOME,
      page: () => const ParcelRideForHomeView(),
      binding: ParcelRideForHomeBinding(),
    ),
    GetPage(
      name: _Paths.REFERRAL_SCREEN,
      page: () => const ReferralScreenView(),
      binding: ReferralScreenBinding(),
    ),
    GetPage(
      name: _Paths.INBOX_SCREEN,
      page: () => const InboxScreenView(),
      binding: InboxScreenBinding(),
    ),
    GetPage(
      name: _Paths.EMERGENCY_CONTACTS,
      page: () => const EmergencyContactsView(),
      binding: EmergencyContactsBinding(),
    ),
    GetPage(
      name: _Paths.SOS_REQUEST,
      page: () => const SosRequestView(),
      binding: SosRequestBinding(),
    ),
  ];
}
