medora-provider/lib/route/routes.dart
DhanshCOSQ b57523599c feature/medora-55 (#6)
Booking physical consultation ,  bugs fixed and Profile picture adding using firebase storage is complete.

Co-authored-by: Jipson George <152465898+Jipson-cosq@users.noreply.github.com>
Reviewed-on: cosqnet/telemednet#6
Co-authored-by: DhanshCOSQ <dhanshas@cosq.net>
Co-committed-by: DhanshCOSQ <dhanshas@cosq.net>
2024-11-05 08:22:13 +00:00

216 lines
10 KiB
Dart

import 'package:firebase_ui_auth/firebase_ui_auth.dart';
import 'package:flutter/material.dart';
import 'package:medora/controllers/consultation_center_controller.dart';
import 'package:medora/data/models/consultation_center.dart';
import 'package:medora/data/models/doctor.dart';
import 'package:medora/screens/authentication/launch_screen.dart';
// import 'package:medora/data/telemed_user.dart';
import 'package:medora/controllers/patient_controller.dart';
import 'package:medora/route/route_names.dart';
import 'package:medora/screens/common/loading_screen.dart';
import 'package:medora/screens/doctorScreens/doctorConsultationSchedule/business_center_screen.dart';
import 'package:medora/screens/doctorScreens/doctorConsultationSchedule/center_fee_and_duration_screen.dart';
import 'package:medora/screens/doctorScreens/doctorConsultationSchedule/consultation_day_screen.dart';
import 'package:medora/screens/doctorScreens/doctorConsultationSchedule/consultation_schedule.dart';
import 'package:medora/screens/doctorScreens/doctorConsultationSchedule/consultation_time_slot_screen.dart';
import 'package:medora/screens/doctorScreens/doctorDashboard/doctor_dashboard_home_screen.dart';
import 'package:medora/screens/doctorScreens/doctorDashboard/doctor_dashboard_screen.dart';
import 'package:medora/screens/doctorScreens/doctorDashboard/doctor_landing_screen.dart';
import 'package:medora/screens/doctorScreens/doctorDashboard/doctor_personal_profile_screen.dart';
import 'package:medora/screens/doctorScreens/doctorDashboard/doctor_services_menu_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/doctor_profile_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/qualifications_screen.dart';
import 'package:medora/screens/patientScreens/appoinmentBooking/consultation_booking_screen.dart';
import 'package:medora/screens/patientScreens/appoinmentBooking/consultation_time_screen.dart';
import 'package:medora/screens/patientScreens/appoinmentBooking/consultations_center_screen.dart';
import 'package:medora/screens/patientScreens/appoinmentBooking/doctor_details_screen.dart';
import 'package:medora/screens/patientScreens/appoinmentBooking/doctors_list_screen.dart';
import 'package:medora/screens/patientScreens/appoinmentBooking/speciality_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/achivements_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/address_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/digital_signature_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/experience_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/profile_description_screen.dart';
import 'package:medora/screens/doctorScreens/doctorProfileScreens/specialities_selection_screen.dart';
import 'package:medora/screens/patientScreens/patientDashboard/patient_dashboard_screen.dart';
import 'package:medora/screens/patientScreens/patientDashboard/patient_home_screen.dart';
import 'package:medora/screens/patientScreens/patientDashboard/patient_profile_screen.dart';
import 'package:medora/screens/patientScreens/registrationScreens/patient_adress_screen.dart';
import 'package:medora/screens/patientScreens/registrationScreens/patient_family_members_screen.dart';
import 'package:medora/screens/patientScreens/registrationScreens/patient_registration_screen.dart';
import 'package:medora/screens/splash_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<String, Widget Function(BuildContext)> 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<String, dynamic>;
return DoctorsListScreen(
specialty: args['specialty'] as String,
);
},
RouteNames.doctorDetailsScreen: (context) {
final args =
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
return DoctorDetailsScreen(
doctor: args['doctor'] as Doctor,
);
},
RouteNames.consultationCenterScreen: (context) {
final args =
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
return ConsultationsCenterScreen(
doctor: args['doctor'] as Doctor,
);
},
RouteNames.consultationTimeScreen: (context) {
final args =
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
return ConsultationTimeScreen(
doctor: args['doctor'] as Doctor,
selectedConsultation: args['selectedConsultation'] as ConsultationCenter,
);
},
RouteNames.consultationBookingScreen: (context) {
final args =
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
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(),
);
},
RouteNames.loadingScreen: (context) => const LoadingScreen(),
RouteNames.splashScreen: (context) => const SplashScreen(),
};