import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/ui/attendance/add_vacation_rule_screen.dart';
import 'package:mohem_flutter_app/ui/attendance/monthly_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/attendance/vacation_rule_screen.dart';
import 'package:mohem_flutter_app/ui/bottom_sheets/attendence_details_bottom_sheet.dart';
import 'package:mohem_flutter_app/ui/chat/chat_detailed_screen.dart';
import 'package:mohem_flutter_app/ui/chat/chat_home.dart';
import 'package:mohem_flutter_app/ui/chat/favorite_users_screen.dart';
import 'package:mohem_flutter_app/ui/landing/dashboard_screen.dart';
import 'package:mohem_flutter_app/ui/landing/itg/its_add_screen_video_image.dart';
import 'package:mohem_flutter_app/ui/landing/itg/survey_screen.dart';
import 'package:mohem_flutter_app/ui/landing/today_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/landing/today_attendance_screen2.dart';
import 'package:mohem_flutter_app/ui/leave_balance/add_leave_balance_screen.dart';
import 'package:mohem_flutter_app/ui/leave_balance/leave_balance_screen.dart';
import 'package:mohem_flutter_app/ui/login/change_password_screen.dart';
import 'package:mohem_flutter_app/ui/login/forgot_password_screen.dart';
import 'package:mohem_flutter_app/ui/login/login_screen.dart';
import 'package:mohem_flutter_app/ui/login/new_password_screen.dart';
import 'package:mohem_flutter_app/ui/login/verify_last_login_screen.dart';
import 'package:mohem_flutter_app/ui/login/verify_login_screen.dart';
import 'package:mohem_flutter_app/ui/marathon/marathon_intro_screen.dart';
import 'package:mohem_flutter_app/ui/marathon/marathon_screen.dart';
import 'package:mohem_flutter_app/ui/marathon/marathon_winner_selection.dart';
import 'package:mohem_flutter_app/ui/marathon/winner_screen.dart';
import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/services_menu_list_screen.dart';

// import 'package:mohem_flutter_app/ui/my_attendance/my_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/my_team/create_request.dart';
import 'package:mohem_flutter_app/ui/my_team/employee_details.dart';
import 'package:mohem_flutter_app/ui/my_team/my_team.dart';
import 'package:mohem_flutter_app/ui/my_team/profile_details.dart';
import 'package:mohem_flutter_app/ui/my_team/subordinate_leave.dart';
import 'package:mohem_flutter_app/ui/my_team/team_members.dart';
import 'package:mohem_flutter_app/ui/my_team/view_attendance.dart';
import 'package:mohem_flutter_app/ui/payslip/monthly_pay_slip_screen.dart';
import 'package:mohem_flutter_app/ui/performance/performance_appraisal_screen.dart';
import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/basic_details.dart';
import 'package:mohem_flutter_app/ui/profile/contact_details.dart';
import 'package:mohem_flutter_app/ui/profile/delete_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_address_screen.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_basic_details_screen.dart';
import 'package:mohem_flutter_app/ui/profile/family_members.dart';
import 'package:mohem_flutter_app/ui/profile/personal_info.dart';
import 'package:mohem_flutter_app/ui/profile/profile_screen.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcement_details.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcements.dart';

// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
import 'package:mohem_flutter_app/ui/screens/items_for_sale/add_new_item_for_sale.dart';
import 'package:mohem_flutter_app/ui/screens/items_for_sale/item_for_sale_detail.dart';
import 'package:mohem_flutter_app/ui/screens/items_for_sale/items_for_sale_home.dart';
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_home.dart';
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_hr_request.dart';
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/request_details.dart';
import 'package:mohem_flutter_app/ui/screens/my_requests/my_requests.dart';
import 'package:mohem_flutter_app/ui/screens/my_requests/new_request.dart';
import 'package:mohem_flutter_app/ui/screens/offers_and_discounts/offers_and_discounts_details.dart';
import 'package:mohem_flutter_app/ui/screens/offers_and_discounts/offers_and_discounts_home.dart';
import 'package:mohem_flutter_app/ui/screens/pending_transactions/pending_transactions.dart';
import 'package:mohem_flutter_app/ui/screens/pending_transactions/pending_transactions_details.dart';
import 'package:mohem_flutter_app/ui/screens/submenu_screen.dart';
import 'package:mohem_flutter_app/ui/termination/end_employement.dart';
import 'package:mohem_flutter_app/ui/work_list/item_history_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/itg_detail_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/work_list_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/worklist_detail_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/worklist_settings.dart';

class AppRoutes {
  static const String splash = "/splash";
  static const String registerSelection = "/registerSelection";
  static const String loginVerifyAccount = "/loginVerifyAccount";
  static const String login = "/login";
  static const String verifyLogin = "/verifyLogin";
  static const String verifyLastLogin = "/verifyLastLogin";
  static const String forgotPassword = "/forgotPassword";
  static const String newPassword = "/newPassword";
  static const String loginVerification = "/loginVerification";
  static const String dashboard = "/dashboard";
  static const String todayAttendance = "/todayAttendance";
  static const String subMenuScreen = "/submenuScreen";
  static const String addEitScreen = "/addeitScreen";
  static const String initialRoute = login;
  static const String survey = "/survey";
  static const String advertisement = "/advertisement";

  //Work List
  static const String workList = "/workList";
  static const String workListDetail = "/workListDetail";
  static const String itgDetail = "/itgDetail";
  static const String itemHistory = "/itemHistory";
  static const String worklistSettings = "/worklistSettings";

  // Leave Balance
  static const String leaveBalance = "/leaveBalance";
  static const String addLeaveBalance = "/addLeaveBalance";

  static const String servicesMenuListScreen = "/servicesMenuListScreen";
  static const String dynamicScreen = "/dynamicScreen";
  static const String addDynamicInput = "/addDynamicInput";
  static const String requestSubmitScreen = "/requestSubmitScreen";

  //profile

  static const String addDynamicInputProfile = 'addDynamicInputProfile';
  static const String addDynamicAddressScreen = 'addDynamicAddressProfile';

  //Attendance
  static const String attendance = "/attendance";
  static const String monthlyAttendance = "/monthlyAttendance";
  static const String vacationRule = "/vacationRule";
  static const String addVacationRule = "/addVacationRule";

  //Bottom Sheet
  static const String attendanceDetailsBottomSheet = "/attendanceDetailsBottomSheet";

  //Profile
  static const String profile = "/profile";
  static const String personalInfo = "/personalInfo";
  static const String basicDetails = "/basicDetails";
  static const String contactDetails = "/contactDetails";
  static const String familyMembers = "/familyMembers";
  static const String deleteFamilyMember = "/deleteFamilyMember";
  static const String addUpdateFamilyMember = "/addUpdateFamilyMember";

  // Mowadhafhi
  static const String mowadhafhi = "/mowadhafhi";
  static const String mowadhafhiDetails = "/mowadhafhiDetails";
  static const String mowadhafhiHRRequest = "/mowadhafhiHRRequest";

  // Pending Transactions
  static const String pendingTransactions = "/pendingTransactions";
  static const String pendingTransactionsDetails = "/pendingTransactionsDetails";

  // Announcements
  static const String announcements = "/announcements";
  static const String announcementsDetails = "/announcementsDetails";

  // My Requests
  static const String myRequests = "/myRequests";
  static const String newRequest = "/newRequests";

  // Items For Sale
  static const String itemsForSale = "/itemsForSale";
  static const String itemsForSaleDetail = "/itemsForSaleDetail";
  static const String addNewItemForSale = "/addNewItemForSale";

  // Offers & Discounts
  static const String offersAndDiscounts = "/offersAndDiscounts";
  static const String offersAndDiscountsDetails = "/offersAndDiscountsDetails";

  //Pay slip
  static const String monthlyPaySlip = "/monthlyPaySlip";

  //performance evaluation

  static const String performanceEvaluation = "/performanceEvaluation";

  static const String endEmploymentScreen = "/endEmploymentScreen";

  //My Team
  static const String myTeam = "/myTeam";
  static const String employeeDetails = "/employeeDetails";
  static const String profileDetails = "/profileDetails";
  static const String viewAttendance = "/viewAttendance";
  static const String teamMembers = "/teamMembers";
  static const String createRequest = "/createRequest";
  static const String subordinateLeave = "/subordinateLeave";

  static const String changePassword = "/changePassword";

  //Chat
  static const String chat = "/chat";
  static const String chatDetailed = "/chatDetailed";
  static const String chatFavoriteUsers = "/chatFavoriteUsers";

  //Marathon
  static const String marathonIntroScreen = "/marathonIntroScreen";
  static const String marathonScreen = "/marathonScreen";
  static const String marathonWinnerSelection = "/marathonWinnerSelection";
  static const String marathonWinnerScreen = "/marathonWinnerScreen";

  static final Map<String, WidgetBuilder> routes = {
    login: (BuildContext context) => LoginScreen(),
    verifyLogin: (BuildContext context) => VerifyLoginScreen(),
    verifyLastLogin: (BuildContext context) => VerifyLastLoginScreen(),
    dashboard: (BuildContext context) => DashboardScreen(),
    survey: (BuildContext context) => SurveyScreen(),
    advertisement: (BuildContext context) => ITGAdsScreen(),

    subMenuScreen: (BuildContext context) => SubMenuScreen(),
    newPassword: (BuildContext context) => NewPasswordScreen(),
    forgotPassword: (BuildContext context) => ForgotPasswordScreen(),
    todayAttendance: (BuildContext context) => TodayAttendanceScreen2(),
    //eit

    addEitScreen: (BuildContext context) => AddEITScreen(),

    //Work List
    workList: (BuildContext context) => WorkListScreen(),
    workListDetail: (BuildContext context) => WorkListDetailScreen(),
    itgDetail: (BuildContext context) => ItgDetailScreen(),
    itemHistory: (BuildContext context) => ItemHistoryScreen(),
    worklistSettings: (BuildContext context) => WorklistSettings(),

    // Leave Balance

    leaveBalance: (BuildContext context) => LeaveBalance(),
    addLeaveBalance: (BuildContext context) => AddLeaveBalanceScreen(),

    servicesMenuListScreen: (BuildContext context) => ServicesMenuListScreen(),
    // workFromHome: (BuildContext context) => WorkFromHomeScreen(),
    // addWorkFromHome: (BuildContext context) => AddWorkFromHomeScreen(),
    profile: (BuildContext context) => ProfileScreen(),
    //Attendance
    monthlyAttendance: (BuildContext context) => MonthlyAttendanceScreen(),
    vacationRule: (BuildContext context) => VacationRuleScreen(),
    addVacationRule: (BuildContext context) => AddVacationRuleScreen(),

    //Bottom Sheet
    attendanceDetailsBottomSheet: (BuildContext context) => AttendenceDetailsBottomSheet(),

    //Profile
    //profile: (BuildContext context) => Profile(),
    //profile: (BuildContext context) => Profile(),
    personalInfo: (BuildContext context) => PersonalInfo(),
    basicDetails: (BuildContext context) => BasicDetails(),
    contactDetails: (BuildContext context) => ContactDetails(),
    familyMembers: (BuildContext context) => FamilyMembers(),
    dynamicScreen: (BuildContext context) => DynamicListViewScreen(),
    addDynamicInput: (BuildContext context) => DynamicInputScreen(),
    addDynamicInputProfile: (BuildContext context) => DynamicInputScreenProfile(),
    addDynamicAddressScreen: (BuildContext context) => DynamicInputScreenAddress(),

    deleteFamilyMember: (BuildContext context) => DeleteFamilyMember(ModalRoute.of(context)!.settings.arguments as int),
    requestSubmitScreen: (BuildContext context) => RequestSubmitScreen(),
    addUpdateFamilyMember: (BuildContext context) => AddUpdateFamilyMember(),

    //mowadhafhi
    mowadhafhi: (BuildContext context) => MowadhafhiHome(),
    mowadhafhiDetails: (BuildContext context) => MowadhafhiRequestDetails(),
    mowadhafhiHRRequest: (BuildContext context) => MowadhafhiHRRequest(),

    pendingTransactions: (BuildContext context) => PendingTransactions(),
    pendingTransactionsDetails: (BuildContext context) => PendingTransactionsDetails(),

    announcements: (BuildContext context) => Announcements(),
    announcementsDetails: (BuildContext context) => AnnouncementDetails(),

    //My Requests
    myRequests: (BuildContext context) => MyRequests(),
    newRequest: (BuildContext context) => NewRequest(),

    // Items for sale
    itemsForSale: (BuildContext context) => ItemsForSale(),
    itemsForSaleDetail: (BuildContext context) => ItemForSaleDetailPage(),
    addNewItemForSale: (BuildContext context) => AddNewItemForSale(),

    // Offers & Discounts
    offersAndDiscounts: (BuildContext context) => OffersAndDiscountsHome(),
    offersAndDiscountsDetails: (BuildContext context) => OffersAndDiscountsDetails(),

    //pay slip
    monthlyPaySlip: (BuildContext context) => MonthlyPaySlipScreen(),
    performanceEvaluation: (BuildContext context) => PerformanceAppraisal(),

    endEmploymentScreen: (BuildContext context) => EndEmploymentScreen(),

    //My Team
    myTeam: (BuildContext context) => MyTeam(),
    employeeDetails: (BuildContext context) => EmployeeDetails(),
    profileDetails: (BuildContext context) => ProfileDetails(),
    viewAttendance: (BuildContext context) => ViewAttendance(),
    teamMembers: (BuildContext context) => TeamMembers(),
    createRequest: (BuildContext context) => CreateRequest(),
    subordinateLeave: (BuildContext context) => SubordinateLeave(),

    changePassword: (BuildContext context) => ChangePasswordScreen(),

    //Chat
    chat: (BuildContext context) => ChatHome(),
    chatDetailed: (BuildContext context) => ChatDetailScreen(),
    chatFavoriteUsers: (BuildContext context) => ChatFavoriteUsersScreen(),

    // Marathon
    marathonIntroScreen: (BuildContext context) => MarathonIntroScreen(),
    marathonScreen: (BuildContext context) => MarathonScreen(),
    marathonWinnerSelection: (BuildContext context) => MarathonWinnerSelection(),
    marathonWinnerScreen: (BuildContext context) => WinnerScreen(),
  };
}
