import 'package:firebase_ui_auth/firebase_ui_auth.dart'; import 'package:flutter/material.dart'; import 'package:telemednet/controllers/consultation_center_controller.dart'; import 'package:telemednet/data/models/consultation_center.dart'; import 'package:telemednet/data/models/doctor.dart'; import 'package:telemednet/screens/authentication/launch_screen.dart'; // import 'package:telemednet/data/telemed_user.dart'; import 'package:telemednet/controllers/patient_controller.dart'; import 'package:telemednet/route_names.dart'; import 'package:telemednet/screens/doctorScreens/doctorConsultationSchedule/business_center_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorConsultationSchedule/center_fee_and_duration_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorConsultationSchedule/consultation_day_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorConsultationSchedule/consultation_schedule.dart'; import 'package:telemednet/screens/doctorScreens/doctorConsultationSchedule/consultation_time_slot_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorDashboard/doctor_dashboard_home_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorDashboard/doctor_dashboard_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorDashboard/doctor_landing_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorDashboard/doctor_personal_profile_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorDashboard/doctor_services_menu_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/doctor_profile_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/qualifications_screen.dart'; import 'package:telemednet/screens/patientScreens/appoinmentBooking/consultation_booking_screen.dart'; import 'package:telemednet/screens/patientScreens/appoinmentBooking/consultation_time_screen.dart'; import 'package:telemednet/screens/patientScreens/appoinmentBooking/consultations_center_screen.dart'; import 'package:telemednet/screens/patientScreens/appoinmentBooking/doctor_details_screen.dart'; import 'package:telemednet/screens/patientScreens/appoinmentBooking/doctors_list_screen.dart'; import 'package:telemednet/screens/patientScreens/appoinmentBooking/speciality_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/achivements_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/address_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/digital_signature_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/experience_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/profile_description_screen.dart'; import 'package:telemednet/screens/doctorScreens/doctorProfileScreens/specialities_selection_screen.dart'; import 'package:telemednet/screens/patientScreens/patientDashboard/patient_dashboard_screen.dart'; import 'package:telemednet/screens/patientScreens/patientDashboard/patient_home_screen.dart'; import 'package:telemednet/screens/patientScreens/patientDashboard/patient_profile_screen.dart'; import 'package:telemednet/screens/patientScreens/registrationScreens/patient_adress_screen.dart'; import 'package:telemednet/screens/patientScreens/registrationScreens/patient_family_members_screen.dart'; import 'package:telemednet/screens/patientScreens/registrationScreens/patient_registration_screen.dart'; import 'controllers/doctor_controller.dart'; import 'screens/patientScreens/patient_landing_screen.dart'; import 'screens/patientScreens/registrationScreens/family_members_edit_screen.dart'; final Map routes = { RouteNames.launch: (context) => const LaunchScreen(), RouteNames.signIn: (context) => SignInScreen( providers: [EmailAuthProvider(), PhoneAuthProvider()], ), RouteNames.signUp: (context) => const RegisterScreen(), // RouteNames.userProfile: (context) { // var user = ModalRoute.of(context)!.settings.arguments as TelemedUser?; // return UserProfileScreen(user: user); // }, // RouteNames.userHome: (context) => const UserScreen(), RouteNames.profileUpload: (context) => const ProfileUploadPage(), RouteNames.patientLandingScreen: (context) => const PatientLandingScreen(), RouteNames.patientHomeScreen: (context) => const PatientHomeScreen(), RouteNames.doctorLandingScreen: (context) => const DoctorLandingScreen(), RouteNames.patientRegistrationScreen: (context) => const PatientRegistrationScreen(), RouteNames.qualificationsScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return QualificationsScreen( controller: controller ?? DoctorController(), // Provide fallback ); }, RouteNames.doctorAddressScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return DoctorAddressScreen( controller: controller ?? DoctorController(), // Provide fallback ); }, RouteNames.profileDescriptionScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return ProfileDescriptionScreen( controller: controller ?? DoctorController(), ); }, RouteNames.experienceScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return ExperienceScreen( controller: controller ?? DoctorController(), ); }, RouteNames.specialitiesScreeen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return SpecialitiesScreen( controller: controller ?? DoctorController(), ); }, RouteNames.digitalSignatureScreeen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return DigitalSignatureScreen( controller: controller ?? DoctorController(), ); }, RouteNames.achievementsScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as DoctorController?; return AchievementsScreen( controller: controller ?? DoctorController(), ); }, RouteNames.patientAdressScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as PatientController; return PatientAddressScreen(controller: controller); }, RouteNames.patientFamilyMembersScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as PatientController; return PatientFamilyMembersScreen(controller: controller); }, RouteNames.familyMembersEditScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as PatientController; return FamilyMembersEditScreen(controller: controller); }, RouteNames.patientprofileScreen: (context) => const PatientProfileScreen(), RouteNames.patientDashboardScreen: (context) => const PatientDashboardScreen(), RouteNames.specialityScreen: (context) => const SpecialtyScreen(), RouteNames.doctorListScreen: (context) { final args = ModalRoute.of(context)!.settings.arguments as Map; return DoctorsListScreen( specialty: args['specialty'] as String, ); }, RouteNames.doctorDetailsScreen: (context) { final args = ModalRoute.of(context)!.settings.arguments as Map; return DoctorDetailsScreen( doctor: args['doctor'] as Doctor, ); }, RouteNames.consultationCenterScreen: (context) { final args = ModalRoute.of(context)!.settings.arguments as Map; return ConsultationsCenterScreen( doctor: args['doctor'] as Doctor, ); }, RouteNames.consultationTimeScreen: (context) { final args = ModalRoute.of(context)!.settings.arguments as Map; return ConsultationTimeScreen( doctor: args['doctor'] as Doctor, selectedConsultation: args['selectedConsultation'] as ConsultationCenter, ); }, RouteNames.consultationBookingScreen: (context) { final args = ModalRoute.of(context)!.settings.arguments as Map; return ConsultationBookingScreen( doctor: args['doctor'] as Doctor, selectedConsultation: args['selectedConsultation'] as ConsultationCenter, selectedDate: args['selectedDate'] as DateTime, selectedTime: args['selectedTime'] as String, ); }, RouteNames.doctorDashbordScreen: (context) => const DoctorDashboardScreen(), RouteNames.doctorHomeScreen: (context) => const DoctorDashboardHomeScreen(), RouteNames.doctorPersonalProfileScreen: (context) => const DoctorPersonalProfileScreen(), RouteNames.doctorServicesMenuScreen: (context) => const DoctorServicesMenuScreen(), RouteNames.scheduleConsultationScreen: (context) => const ScheduleConsultationScreen(), RouteNames.businessCenterScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as ConsultationCenterController?; return BusinessCenterScreen( controller: controller ?? ConsultationCenterController(), ); }, RouteNames.centerFeeAndDuration: (context) { final controller = ModalRoute.of(context)!.settings.arguments as ConsultationCenterController?; return CenterFeeAndDurationScreen( controller: controller ?? ConsultationCenterController(), ); }, RouteNames.consultationTimeSlotScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as ConsultationCenterController?; return ConsultationTimeSlotScreen( controller: controller ?? ConsultationCenterController(), selectedDay: '', ); }, RouteNames.consultationDayScreen: (context) { final controller = ModalRoute.of(context)!.settings.arguments as ConsultationCenterController?; return ConsultationDayScreen( controller: controller ?? ConsultationCenterController(), ); }, };