<?php

use FontLib\Table\Type\name;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CmsController;
use App\Http\Controllers\Admin\OrderController;
use App\Http\Controllers\Admin\AddressController;
use App\Http\Controllers\Admin\CandidateApplicationController;

use App\Http\Controllers\Admin\JobController;
use App\Http\Controllers\Admin\TagController;
use App\Http\Controllers\Admin\UserController;
use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\RolesController;
use App\Http\Controllers\Admin\SkillController;
use App\Http\Controllers\AutoUpdaterController;
use App\Http\Controllers\Admin\BenefitController;
use App\Http\Controllers\Admin\CompanyController;
use App\Http\Controllers\Admin\JobRoleController;
use App\Http\Controllers\Admin\PaymentController;
use App\Http\Controllers\Admin\ProfileController;
use App\Http\Controllers\Admin\SettingsController;
use App\Http\Controllers\Admin\CandidateController;
use App\Http\Controllers\Admin\SocialiteController;
use App\Http\Controllers\Admin\Auth\LoginController;
use App\Http\Controllers\Admin\ProfessionController;
use App\Http\Controllers\Admin\JobCategoryController;
use App\Http\Controllers\Admin\IndustryTypeController;
use App\Http\Controllers\Website\WebsiteSettingController;
use App\Http\Controllers\Admin\AffiliateSettingsController;
use App\Http\Controllers\Admin\CandidateLanguageController;
use App\Http\Controllers\Admin\Auth\ResetPasswordController;
use App\Http\Controllers\Admin\Auth\ForgotPasswordController;
use App\Http\Controllers\Admin\EmailTemplateController;
use App\Http\Controllers\Admin\UniversityController;
use App\Http\Controllers\Admin\ReviewController;
use App\Http\Controllers\Admin\LeadController;
use App\Http\Controllers\Admin\Course\CourseController;
use App\Http\Controllers\Admin\Course\CourseCategoryController;
use App\Http\Controllers\Admin\Course\CourseLevelController;
use App\Http\Controllers\Admin\SourcesController;
use App\Http\Controllers\Admin\LeadManagementController;
use App\Http\Controllers\Admin\FollowupController;
use App\Http\Controllers\Admin\LeadManagementCandidateController;
use App\Http\Controllers\Admin\BranchController;
use App\Http\Controllers\Admin\DepartmentController;
use App\Http\Controllers\Admin\TeamsController;


use App\Http\Controllers\Admin\CampaignManagementController;
use App\Http\Controllers\Admin\SubscriberListController;
use App\Http\Controllers\Admin\CampaignController;

use App\Http\Controllers\Admin\UrlRedirectionController;
use App\Http\Controllers\Admin\DBcitystatecountryController;
use App\Http\Controllers\Admin\ExcelUploadController;
use App\Http\Controllers\Admin\SeoSettingsController;
use App\Http\Controllers\Admin\IntakeController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\WebinarController;
use App\Http\Controllers\Admin\WhatsappLogController;
use App\Http\Controllers\Admin\PartnerController;
use App\Http\Controllers\Admin\Presentation\PresentationController;
use App\Http\Controllers\Admin\Presentation\PresentationCategoryController;

use App\Http\Controllers\Admin\MediaController;
use App\Http\Controllers\Admin\CountryStateCity;
use App\Http\Controllers\Admin\BusinessCardsController;
use App\Http\Controllers\Admin\TestPreparationController;
use App\Http\Controllers\Admin\WhatsAppTemplateController;
use App\Http\Controllers\Admin\CommonController;
use App\Http\Controllers\Admin\Payment\PaymentController  as AdminPaymentController;
use App\Http\Controllers\Admin\CourseFinderController;
use App\Http\Controllers\Admin\FailedJobController;
use App\Http\Controllers\Admin\IeltExamsTestController;
use App\Http\Controllers\Admin\script\ScriptsController;
use App\Http\Controllers\Admin\LMS\BatchController;
use App\Http\Controllers\Admin\LMS\ClassController;

use App\Http\Controllers\Admin\LMS\SlotController;
use App\Http\Controllers\Admin\LMS\DemoClassController;
use App\Http\Controllers\Admin\TicketController;
use App\Http\Controllers\Admin\LMS\AttendanceController;
use App\Http\Controllers\Admin\LMS\TestPreparationCourses;
use App\Http\Controllers\Admin\LMS\TestPreparationCoursesDetail;
use App\Http\Controllers\Admin\LMS\TaskController;
use App\Http\Controllers\Admin\FileManagerController;
use App\Http\Controllers\Admin\DegreeController;
use App\Http\Controllers\Admin\LMS\ZoomController;

Route::get('/db', [DBcitystatecountryController::class, 'countryData']);

Route::view("/dialer",'dialer');



Route::prefix('')->group(function () {
    /**
     * Auth routes
     * 
     * 
     * 
     */

    Route::get('/login/zenID/{id}', [LoginController::class, 'zenLogin']);


    Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login.admin');
    Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
    Route::post('/login', [LoginController::class, 'login'])->name('admin.login');
    Route::post('/logout', [LoginController::class, 'logout'])->name('admin.logout');

    Route::post('/stateList', [CountryStateCity::class, 'get_state'])->name('admin.stateList');
    Route::post('/cityList', [CountryStateCity::class, 'get_city'])->name('admin.cityList');

    Route::post('/stateListByName', [CountryStateCity::class, 'get_state_by_name'])->name('admin.stateListByName');
    Route::post('/cityListByName', [CountryStateCity::class, 'get_city_by_name'])->name('admin.cityListByName');

    Route::post('/CityList', [CountryStateCity::class, 'get_city'])->name('CityList');


    Route::middleware(['guest:admin'])->group(function () {
        Route::post('password/email', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('admin.password.email');
        Route::get('password/reset', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('admin.password.request');
        Route::post('password/reset', [ResetPasswordController::class, 'reset'])->name('admin.password.update');
        Route::get('password/reset/{token}', [ResetPasswordController::class, 'showResetForm'])->name('admin.password.reset');
    });

    Route::middleware(['auth:admin'])->group(function () {
        Route::get('/',  [AdminController::class, 'dashboard']);

        //Dashboard Route
        Route::get('/getTestPreprationRevenue', [AdminController::class, 'getTestPreprationRevenue'])->name('admin.getTestPreprationRevenue');
        Route::get('/getGraddingRevenue', [AdminController::class, 'getGraddingRevenue'])->name('admin.getGraddingRevenue');
        
        Route::get('/getTotalLead', [AdminController::class, 'getTotalLead'])->name('admin.getTotalLead');
        Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('admin.dashboard');
        Route::get('/weekly-data', [AdminController::class, 'getWeeklyData'])->name('weekly-data');
        Route::get('/getCityData', [AdminController::class, 'getCityData'])->name('getCityData');
        Route::get('/getMonthlyCityData', [AdminController::class, 'getMonthlyCityData'])->name('getMonthlyCityData');
        Route::get('/getMonthlyData', [AdminController::class, 'getMonthlyData'])->name('getMonthlyData');
        Route::get('/getYearlyDataChart', [AdminController::class, 'getYearlyDataChart'])->name('getYearlyDataChart');
        Route::get('/getTimeLineData', [AdminController::class, 'getTimeLineData'])->name('getTimeLineData');
        Route::get('/getCampaignWiseData', [AdminController::class, 'getCampaignWiseData'])->name('getCampaignWiseData');
        // Route::get('/get_individual_campaign_data', [AdminController::class, 'get_individual_campaign_data'])->name('get_individual_campaign_data');
        
        Route::get('/getPreferredCountryData', [AdminController::class, 'getPreferredCountryData'])->name('getPreferredCountryData');
        Route::get('/getAgentwiseData', [AdminController::class, 'getAgentwiseData'])->name('getAgentwiseData');


        //Lead Management dashboard  Route
        Route::get('/lead-management-dashboard', [LeadManagementController::class, 'leaddashboard'])->name('admin.leaddashboard');
        
        
        Route::get('/lead/getMapData', [LeadManagementController::class, 'getMapData'])->name('lead.getMapData');
        Route::get('/lead/getCityData', [LeadManagementController::class, 'getCityData'])->name('lead.getCityData');
        Route::get('/lead/getStateData', [LeadManagementController::class, 'getStateData'])->name('lead.getStateData');
        Route::get('/lead/getCountryData', [LeadManagementController::class, 'getCountryData'])->name('lead.getCountryData');
        Route::get('/lead/getAgentDataByAdmin', [LeadManagementController::class, 'getAgentDataByAdmin'])->name('lead.getAgentDataByAdmin');
        //Lead Management Route
        Route::get('/lead-management', [LeadManagementController::class, 'index'])->name('admin.leadManagement');

        Route::get('/lead-management/influencer', [LeadManagementController::class, 'influencer'])->name('admin.leadManagement.influencer');

        Route::get('/leadManagementCounts', [LeadManagementController::class, 'leadManagementCounts'])->name('admin.leadManagementCounts');
        Route::get('/ignore_notfollowps_leads', [LeadManagementController::class, 'ignore_notfollowps_leads'])->name('admin.ignore_notfollowps_leads');
        Route::get('/my-followup', [LeadManagementController::class, 'myfollowup'])->name('admin.myfollowup');

        Route::post('/leadTypeUpdate/{id}', [LeadManagementController::class, 'leadTypeUpdate'])->name('admin.leadTypeUpdate');

        Route::get('/my-followup-calender', [LeadManagementController::class, 'myfollowupcalender'])->name('admin.myfollowupcalender');
        Route::get('/followupCalendarEvent', [LeadManagementController::class, 'followupCalendarEvent'])->name('admin.followupCalendarEvent');
        Route::post('/myfollowupcalenderAjex', [LeadManagementController::class, 'myfollowupcalenderAjex'])->name('admin.myfollowupcalenderAjex');
        Route::delete('lead-management/destroy/{id}', [LeadManagementController::class, 'destroy'])->name('admin.leadManagement.destroy');
        //LeadManagementCandidate Controller
        Route::get('/lead-management/{id}/edit', [LeadManagementCandidateController::class, 'candidateEdit'])->name('lead-management.edit');
        Route::post('/lead-management/create', [LeadManagementCandidateController::class, 'create'])->name('lead-management.create');
        Route::get('/customerReport', [CandidateController::class, 'customerReport'])->name('lead-management.customerReport');
        Route::get('/customerReportdownload', [CandidateController::class, 'customerReportdownload'])->name('lead-management.customerReportdownload');
        Route::post('/lead-management/update_new/{id}', [LeadManagementCandidateController::class, 'update'])->name('lead-management.update_new');


        Route::post('/lead-management/education_detail_get', [LeadManagementCandidateController::class, 'education_detail_get'])->name('lead-management.education_detail_get');
        Route::post('/lead-management/education_detail_delete', [LeadManagementCandidateController::class, 'education_detail_delete'])->name('lead-management.education_detail_delete');
        Route::post('/lead-management/check_qualification_year', [LeadManagementCandidateController::class, 'check_qualification_year'])->name('lead-management.check_qualification_year');
        Route::post('/lead-management/get_documents', [LeadManagementCandidateController::class, 'get_documents'])->name('lead-management.get_documents');
        Route::post('/lead-management/get_webinar', [LeadManagementCandidateController::class, 'get_webinar'])->name('lead-management.get_webinar');
        Route::post('/lead-management/get_activity', [LeadManagementCandidateController::class, 'get_activity'])->name('lead-management.get_activity');
        Route::post('/lead-management/get_tickets', [LeadManagementCandidateController::class, 'get_tickets'])->name('lead-management.get_tickets');
        Route::post('/lead-management/get_demo_classes', [LeadManagementCandidateController::class, 'get_demo_classes'])->name('lead-management.get_demo_classes');
        Route::post('/lead-management/save_demo_class', [LeadManagementCandidateController::class, 'save_demo_class'])->name('lead-management.save_demo_class');
        Route::post('/lead-management/get_test_preparation_data', [LeadManagementCandidateController::class, 'get_test_preparation_data'])->name('lead-management.get_test_preparation_data');
        
        Route::post('/lead-management/demo_class_pop_up', [LeadManagementCandidateController::class, 'demo_class_pop_up'])->name('lead-management.demo_class_pop_up');
        Route::post('/lead-management/get_tests_data', [LeadManagementCandidateController::class, 'get_tests_data'])->name('lead-management.get_tests_data');
        Route::post('/lead-management/get_test_by_category', [LeadManagementCandidateController::class, 'get_test_by_category'])->name('lead-management.get_test_by_category');
        Route::post('/lead-management/get_test_by_type', [LeadManagementCandidateController::class, 'get_test_by_type'])->name('lead-management.get_test_by_type');
        Route::post('/lead-management/documents_upload', [LeadManagementCandidateController::class, 'documents_upload'])->name('lead-management.documents_upload');
        Route::post('/lead-management/delete_documents', [LeadManagementCandidateController::class, 'delete_documents'])->name('lead-management.delete_documents');
        Route::post('/lead-management/form_work_experience_get', [LeadManagementCandidateController::class, 'form_work_experience_get'])->name('lead-management.form_work_experience_get');
        Route::post('/lead-management/followup', [LeadManagementCandidateController::class, 'followup'])->name('lead-management.followup');
        Route::get('/lead-management/student_case/{user_id}', [LeadManagementCandidateController::class, 'student_case'])->name('lead-management.student_case');
        Route::get('/get_user_number_with_country_code/{user_id}', [LeadManagementCandidateController::class, 'get_user_number_with_country_code'])->name('lead-management.get_user_number_with_country_code');
        Route::get('/lead-management/transaction_invoice/{user_id}', [LeadManagementCandidateController::class, 'transaction_invoice_download'])->name('lead-management.transaction_invoice');

        Route::post('/lead-management/get_courses_by_stream', [LeadManagementCandidateController::class, 'get_courses_by_stream'])->name('lead-management.get_courses_by_stream');

        Route::post('/lead-management/candidate_application', [LeadManagementCandidateController::class, 'candidate_application'])->name('lead-management.candidate_application');


        Route::post('/lead-management/commentInsertByApplicationsId', [LeadManagementCandidateController::class, 'commentInsertByApplicationsId'])->name('lead-management.commentInsertByApplicationsId');

        Route::post('/lead-management/commentAndApplicationGetByApplicationID',  [LeadManagementCandidateController::class, 'commentAndApplicationGetByApplicationID'])->name('lead-management.commentAndApplicationGetByApplicationID');

        Route::post('/lead-management/get_short_list',  [LeadManagementCandidateController::class, 'get_short_list'])->name('lead-management.get_short_list');
        Route::post('/lead-management/add_new_course',  [LeadManagementCandidateController::class, 'add_new_course'])->name('lead-management.add_new_course');
        Route::post('/lead-management/get_whatsapp_log',  [LeadManagementCandidateController::class, 'get_whatsapp_log'])->name('lead-management.get_whatsapp_log');

        Route::post('/lead-management/order_get',  [LeadManagementCandidateController::class, 'order_get'])->name('lead-management.order_get');

        Route::post('/lead-management/get_transaction',  [LeadManagementCandidateController::class, 'get_transaction'])->name('lead-management.get_transaction');


        Route::post('/lead-management/study_abroad_preference',  [LeadManagementCandidateController::class, 'study_abroad_preference'])->name('lead-management.study_abroad_preference');
        Route::post('/lead-management/get_answersheet',  [LeadManagementCandidateController::class, 'get_answersheet'])->name('lead-management.get_answersheet');
        Route::post('/lead-management/save_test_result',  [LeadManagementCandidateController::class, 'save_test_result'])->name('lead-management.save_test_result');
        Route::post('/lead-management/get_forms',  [LeadManagementCandidateController::class, 'get_forms'])->name('lead-management.get_forms');
        Route::post('/lead-management/get_candidate_data',  [LeadManagementCandidateController::class, 'get_candidate_data'])->name('lead-management.get_candidate_data');
        Route::post('/lead-management/applyApplication',  [LeadManagementCandidateController::class, 'applyApplication'])->name('lead-management.applyApplication');
        Route::post('/lead-management/deleteApplication',  [LeadManagementCandidateController::class, 'deleteApplication'])->name('lead-management.deleteApplication');
        Route::post('/lead-management/notes_save', [LeadManagementCandidateController::class, 'notes_save'])->name('lead-management.notes_save');
        Route::get('/lead-management/createAccount', [LeadManagementCandidateController::class, 'createAccount'])->name('lead-management.createAccount');
        Route::post('/lead-management/get_level_assessment_test', [LeadManagementCandidateController::class, 'get_level_assessment_test'])->name('lead-management.get_level_assessment_test');
        Route::get('/lead-management/download_student_case', [LeadManagementCandidateController::class, 'download_student_case'])->name('lead-management.download_student_case');

        Route::get('/lead-management/allTatUpdate', [LeadManagementController::class, 'allTatUpdate'])->name('admin.allTatUpdate');
        
        Route::post('/lead-management/get_last_followps_data', [LeadManagementCandidateController::class, 'get_last_followps_data'])->name('lead-management.get_last_followps_data');
        Route::post('/lead-management/get_test_data', [LeadManagementCandidateController::class, 'get_test_data'])->name('lead-management.get_test_data');
        Route::post('/lead-management/save_application_status', [LeadManagementCandidateController::class, 'save_application_status'])->name('lead-management.save_application_status');
        
        //  Route::get('/customerDetail', [LeadManagementController::class, 'customerDetail'])->name('admin.customerDetail');

        
        Route::post('/ticket/get_detail', [TicketController::class, 'get_ticket_detail'])->name('ticket.get_detail');

        Route::resource('slot', SlotController::class);
        Route::controller(SlotController::class)->prefix('slot')->group(function () {
            Route::post('getSummary', 'getSummary')->name('slot.getSummary');
            Route::post('get_data', 'get_data')->name('slot.get_data');
        });

        Route::resource('DemoClass', DemoClassController::class);
        Route::controller(DemoClassController::class)->prefix('DemoClass')->group(function () {
            Route::post('getSummary', 'getSummary')->name('DemoClass.getSummary');
             Route::post('delete', 'getSummary')->name('DemoClass.delete');
            Route::post('get_data', 'get_data')->name('DemoClass.get_data');
            Route::post('change_class_status', 'change_class_status')->name('DemoClass.change_class_status');
            
        });

        Route::resource('test_preparation_courses', TestPreparationCourses::class);
        Route::controller(TestPreparationCourses::class)->prefix('test_preparation_courses')->group(function () {
            Route::get('DaysCreate/{id}', 'DaysCreate')->name('test_preparation_courses.DaysCreate');
            Route::post('delete', 'getSummary')->name('test_preparation_courses.delete');
            Route::post('get_data', 'get_data')->name('test_preparation_courses.get_data');
            Route::post('change_status', 'change_status')->name('test_preparation_courses.change_status');
          
        });

        Route::resource('test_preparation_courses_detail', TestPreparationCoursesDetail::class);
        Route::controller(TestPreparationCoursesDetail::class)->prefix('test_preparation_courses_detail')->group(function () {
            Route::post('get_test_by_category', 'get_test_by_category')->name('test_preparation_courses_detail.get_test_by_category');
            Route::post('get_test_by_type', 'get_test_by_type')->name('test_preparation_courses_detail.get_test_by_type');
    
          
        });
        

        Route::resource('attendance', AttendanceController::class);

        Route::prefix('attendance')->group(function () {
            Route::post('getSummary', [AttendanceController::class, 'getSummary'])->name('attendance.getSummary');
            Route::post('delete', [AttendanceController::class, 'delete'])->name('attendance.delete');
            Route::post('get_data', [AttendanceController::class, 'get_data'])->name('attendance.get_data');
            Route::post('change_class_status', [AttendanceController::class, 'change_class_status'])->name('attendance.change_class_status');
            Route::post('change_status', [AttendanceController::class, 'change_status'])->name('attendance.change_status');
            Route::post('get_classes', [AttendanceController::class, 'get_classes'])->name('attendance.get_classes');
            Route::post('get_users', [AttendanceController::class, 'get_users'])->name('attendance.get_users');
            Route::post('get_attendance_record', [AttendanceController::class, 'get_attendance_record'])->name('attendance.get_attendance_record');
        });
        Route::resource('task', TaskController::class);
        Route::prefix('task')->group(function () {
            Route::post('change_status', [TaskController::class, 'change_status'])->name('task.change_status');
            Route::post('get_classes', [TaskController::class, 'get_classes'])->name('task.get_classes');
            Route::post('get_users', [TaskController::class, 'get_users'])->name('task.get_users');
            
        });
        

        Route::resource('campaign',CampaignController::class);
        Route::prefix('campaign')->group(function () {
            Route::post('change_status', [CampaignController::class, 'change_status'])->name('campaign.change_status');
            Route::post('get_classes', [CampaignController::class, 'get_classes'])->name('campaign.get_classes');
            Route::post('get_users', [CampaignController::class, 'get_users'])->name('campaign.get_users');
            
        });

        Route::resource('degree',DegreeController::class);
        Route::prefix('degree')->group(function () {
            Route::post('change_status', [DegreeController::class, 'change_status'])->name('degree.change_status');
            Route::post('get_classes', [DegreeController::class, 'get_classes'])->name('degree.get_classes');
            Route::post('get_users', [DegreeController::class, 'get_users'])->name('degree.get_users');
            
        });




        Route::get('/TestPreparationDashboard', [TestPreparationController::class, 'index'])->name('TestPreparationDashboard.index');






        Route::get('/customerDetail/edit/{customer}', [LeadManagementController::class, 'customerDetailEdit'])->name('admin.customerDetailEdit');



        Route::get('/customerDetail/edit/{customer}', [LeadManagementController::class, 'customerDetailEdit'])->name('admin.customerDetailEdit');
        //Campaign Management Route
        Route::get('/leadManagementDashboard', [LeadManagementController::class, 'leadManagementDashboard'])->name('admin.leadManagementDashboard');

        Route::get('/getStageWiseReportData', [LeadManagementController::class, 'getStageWiseReportData'])->name('admin.leadManagement.getStageWiseReportData');
        Route::get('/getTypeWiseReportData', [LeadManagementController::class, 'getTypeWiseReportData'])->name('admin.leadManagement.getTypeWiseReportData');
        Route::get('/getCountryWiseReportData', [LeadManagementController::class, 'getCountryWiseReportData'])->name('admin.leadManagement.getCountryWiseReportData');
        Route::get('/getIntakeCountryWiseReportData', [LeadManagementController::class, 'getIntakeCountryWiseReportData'])->name('admin.leadManagement.getIntakeCountryWiseReportData');
        Route::get('/getTargetsDataApplication', [LeadManagementController::class, 'getTargetsDataApplication'])->name('admin.leadManagement.getTargetsDataApplication');

        Route::get('/getPreTestReportData', [LeadManagementController::class, 'getPreTestReportData'])->name('admin.leadManagement.getPreTestReportData');
        Route::get('/getPreTestCounts', [LeadManagementController::class, 'getPreTestCounts'])->name('admin.leadManagement.getPreTestCounts');


        Route::get('/students', [LeadManagementController::class, 'students'])->name('admin.leadManagement.students');


        //Subscriber List Route
        Route::get('/subscriberlist', [SubscriberListController::class, 'index'])->name('admin.subscriberlist');

        // excel uplad
        Route::get('/excelupload', [ExcelUploadController::class, 'excelUpload'])->name('admin.exceluploads');
        Route::post('/excelupload', [ExcelUploadController::class, 'upload'])->name('excel.upload');
        Route::post('/coursesUpload', [ExcelUploadController::class, 'coursesUpload'])->name('excel.coursesUpload');



        Route::post('/notifications/read', [AdminController::class, 'notificationRead'])->name('admin.notification.read');

        Route::get('/notifications', [AdminController::class, 'allNotifications'])->name('admin.all.notification');

        //Roles Route
        Route::post('settings/user/branch/get', [UserController::class, 'branch_get'])->name('setting.user.branch_get');
        Route::post('settings/user/teams/get', [UserController::class, 'teams_get'])->name('setting.user.teams_get');
        Route::post('settings/user/department/get', [UserController::class, 'department_get'])->name('setting.user.department_get');
        Route::resource('settings/role', RolesController::class)->except(['show']);
        Route::get('/settings/role/permission/create',  [RolesController::class, 'permissionCreate'])->name('admin.role.permissionCreate');
        Route::post('/settings/role/permission/store',  [RolesController::class, 'permissionStore'])->name('admin.role.permissionStore');
        // Route::get('/settings/role/userWisedit/{id?}', [RolesController::class, 'userWisedit'])->name('admin.role.userWisedit');
        Route::get('/settings/role/userWisedit', [RolesController::class, 'userWisedit'])->name('admin.role.userWisedit');
        Route::put('/settings/role/userWisupdate/{id}', [RolesController::class, 'userWisupdate'])->name('admin.role.userWisupdate');
        
        //Users Route
        Route::resource('settings/user', UserController::class)->except(['show']);


        //Route::post('settings/user/teams/get/{branch_id}', [UserController::class, 'teams_get'])->name('setting.user.teams_get');

        Route::get('leadAssignSystem/assignedUser', [UserController::class, 'assignedUser'])->name('admin.assignedUser');
        Route::get('leadAssignSystem/assignedUser/Change', [UserController::class, 'userAssignleadChange'])->name('admin.userAssignleadChange');
        Route::get('leadAssignSystem/assignedUser/userAssignCountryID', [UserController::class, 'userAssignCountryID'])->name('admin.userAssignCountryID');

        Route::get('dialerManagementSystem/dialerManagementUser', [UserController::class, 'dialerManagementUser'])->name('admin.dialerManagementUser');
        Route::get('dialerManagementSystem/dialerManagementUser/Change', [UserController::class, 'userDealerStatusChange'])->name('admin.userDealerStatusChange');

        Route::get('settings/user/status', [UserController::class, 'userStatusChange'])->name('admin.userStatusChange');
        //Company Route resource
        Route::resource('company', CompanyController::class);
        Route::post('/company/citylist',  [CompanyController::class, 'getCityList'])->name('admin.getCityByCountry');
        Route::post('/company/statelist',  [CompanyController::class, 'getStateList'])->name('admin.getStateByCountry');
        Route::get('/company/change/status', [CompanyController::class, 'statusChange'])->name('company.status.change');
        Route::get('/company/verify/status', [CompanyController::class, 'verificationChange'])->name('company.verify.change');

        //Course Route resource
        Route::resource('course', CourseController::class);
        Route::resource('coursecategory', CourseCategoryController::class);
        Route::resource('courselevel', CourseLevelController::class);
        Route::get('/course/level/status', [CourseLevelController::class, 'courseLevelStatusChange'])->name('course.status.change');
        Route::get('/course/category/status', [CourseCategoryController::class, 'courseCategoryStatusChange'])->name('course.category.status.change');
        Route::post('/course/courselist',  [CourseController::class, 'courseGetByUniversityId'])->name('admin.courseGetByUniversityId');


        Route::resource('university', UniversityController::class);
        Route::post('/university/citylist',  [UniversityController::class, 'getCityList'])->name('admin.universityGetCityByCountry');
        Route::post('/university/statelist',  [UniversityController::class, 'getStateList'])->name('admin.universityGetStateByCountry');
        Route::get('/university/change/status', [UniversityController::class, 'statusChange'])->name('university.status.change');
        Route::get('/university/verify/status', [UniversityController::class, 'verificationChange'])->name('university.verify.change');
        Route::post('/university/universityListByName', [UniversityController::class, 'universityListByName'])->name('university.universityListByName');


        // ============ Lead ===========
        Route::prefix('review')->group(function () {
            Route::get('/add', [ReviewController::class, 'create'])->name('review.create');
            Route::get('/{slug?}', [ReviewController::class, 'index'])->name('review.index');
            Route::post('/add', [ReviewController::class, 'store'])->name('review.store');
            Route::get('/edit/{review}', [ReviewController::class, 'edit'])->name('review.edit');
            Route::put('/update/{review}', [ReviewController::class, 'update'])->name('review.update');
            Route::delete('/destroy/{review}', [ReviewController::class, 'destroy'])->name('review.destroy');
            Route::post('/selectlist',  [ReviewController::class, 'getSelectBycategory'])->name('review.getSelectBycategory');
        });
        // Route::resource('review', ReviewController::class);
        // Route::get('review/{slug?}', [ReviewController::class, 'index'])->name('review.index');
        // ============ Lead ===========
        Route::resource('lead', LeadController::class);
        Route::get('/export-lead', [LeadController::class, 'exportLead'])->name('export-lead');
        Route::get('/download', [LeadController::class, 'download'])->name('admin.download');
        Route::post('/leadfolloup/{id}', [LeadController::class, 'storeFollowup'])->name('lead-followup');
        Route::get('/getLeadBy', [LeadController::class, 'getLeadBy'])->name('lead-getLeadBy');

        // ============ Followup ===========
        Route::post('/storeFollowup/{id}', [FollowupController::class, 'storeFollowup'])->name('followup.storeFollowup');
        // ============ Candidate ===========
        Route::resource('candidate', CandidateController::class);

        Route::get('/candidateCounts', [CandidateController::class, 'candidateCounts'])->name('admin.candidateCounts');
        Route::post('/candidate/get/city', [CandidateController::class, 'city'])->name('candidate.city');
        Route::post('/candidate/get/state', [CandidateController::class, 'state'])->name('candidate.state');
        Route::get('/candidate/change/status', [CandidateController::class, 'statusChange'])->name('candidate.status.change');
        Route::post('/customerfolloup/{id}', [CandidateController::class, 'storeFollowup'])->name('customer-followup');

        Route::get('/checkfollowupsDatetime', [CandidateController::class, 'checkfollowupsDatetime'])->name('candidate.checkfollowupsDatetime');

        Route::get('/followup', [CandidateController::class, 'getFollowup'])->name('candidate.getFollowup');
        Route::get('/push-notification', [CandidateController::class, 'pushNotification'])->name('followup.notification');
        Route::get('/followup-other', [CandidateController::class, 'getOtherFollowup'])->name('followup.other');

        Route::post('/customernotes', [CandidateController::class, 'storeCustomerNotes'])->name('customer-postNotes');
        Route::post('/assignToChange', [CandidateController::class, 'assignToChange'])->name('candidate.assignToChange');
        Route::post('/stageToChange', [CandidateController::class, 'stageToChange'])->name('candidate.stageToChange');
      


        Route::post('/candidate/closeCandidateOpen/{id}', [CandidateController::class, 'closeCandidateOpen'])->name('candidate.closeCandidateOpen');
        Route::post('/candidate/agentAssignedCandidate/{id}', [CandidateController::class, 'agentAssignedCandidate'])->name('candidate.agentAssignedCandidate');

        Route::get('/courseFilter', [CandidateController::class, 'courseFilter'])->name('candidate.courseFilter');

        Route::get('/customerReport', [CandidateController::class, 'customerReport'])->name('candidate.customerReport');

        // Route::post('/candidate/update_new/{id}', [CandidateController::class, 'update_new'])->name('candidate.update_new');
        // Route::post('/candidate/education_document_get', [CandidateController::class, 'education_document_get'])->name('candidate.education_document_get');
        // Route::post('/candidate/education_detail_delete', [CandidateController::class, 'education_detail_delete'])->name('candidate.education_detail_delete');
        // Route::post('/candidate/check_qualification_year', [CandidateController::class, 'check_qualification_year'])->name('candidate.check_qualification_year');
        // Route::post('/candidate/get_documents_new', [CandidateController::class, 'get_documents_new'])->name('candidate.get_documents_new');
        // Route::post('/candidate/documents_upload_new', [CandidateController::class, 'documents_upload_new'])->name('candidate.documents_upload_new');
        Route::post('/candidate/delete_documents', [CandidateController::class, 'delete_documents'])->name('candidate.delete_documents');


        Route::post('/candidate/get_documents', [CandidateController::class, 'get_documents'])->name('candidate.get_documents');


        Route::post('/candidate/documents_upload', [CandidateController::class, 'documents_upload'])->name('candidate.documents_upload');

        // Route::post('/candidate/replace_document', [CandidateController::class, 'replace_document'])->name('candidate.replace_document');
        Route::delete('/candidate/multiple/delete', [CandidateController::class, 'multipleDestroy'])->name('candidate.multiple.delete');
        Route::post('/candidate/passwordUpdate/{id}', [CandidateController::class, 'passwordUpdate'])->name('candidate.passwordUpdate');
        Route::post('/candidate/welcomeEmail/{id}', [CandidateController::class, 'welcomeEmail'])->name('candidate.welcomeEmail');
        Route::post('/candidate/callBackEmail/{id}', [CandidateController::class, 'callBackEmail'])->name('candidate.callBackEmail');
        Route::post('/candidate/customEmail/{id}', [CandidateController::class, 'customEmail'])->name('candidate.customEmail');
        Route::post('/candidate/customWhatsApp/{id}', [CandidateController::class, 'customWhatsApp'])->name('candidate.customWhatsApp');
        Route::post('/candidate/multiple/restore', [CandidateController::class, 'multipleRestore'])->name('candidate.multiple.restore');

        Route::post('/candidate/suggestedunivercityDelete', [CandidateController::class, 'suggestedunivercityDelete'])->name('candidate.suggestedunivercityDelete');
        Route::post('/candidate/univercityAdd/{id}', [CandidateController::class, 'univercityAdd'])->name('candidate.univercityAdd');
        Route::post('/candidate/whatsappunivercity/{id}', [CandidateController::class, 'whatsappunivercity'])->name('candidate.whatsappunivercity');
        Route::get('/export/customerReport', [CandidateController::class, 'exportCustomerReport'])->name('candidate.exportCustomerReport');

        Route::post('/candidate/candidateListByName', [CandidateController::class, 'candidateListByName'])->name('candidate.candidateListByName');

        //JobCategory Route resource
        Route::resource('jobCategory', JobCategoryController::class)->except('show');

        //job Route resource
        Route::resource('job', JobController::class);
        Route::put('job/change/status/{job}', [JobController::class, 'jobStatusChange'])->name('admin.job.status.change');
        Route::get('job/clone/{job:slug}', [JobController::class, 'clone'])->name('admin.job.clone');
        Route::get('edited/job/list', [JobController::class, 'editedJobList'])->name('admin.job.edited.index');
        Route::get('edited/job/show/{job:slug}', [JobController::class, 'editedShow'])->name('admin.job.edited.show');
        Route::put('edited/job/approved/{job:slug}', [JobController::class, 'editedApproved'])->name('admin.job.edited.approved');

        // job role route resource
        Route::resource('jobRole', JobRoleController::class)->except('show', 'create');

        // industrytype route resource
        Route::resource('industryType', IndustryTypeController::class)->except('show', 'create');

        // profession route resource
        Route::resource('profession', ProfessionController::class)->except('show', 'create');
      

        // skills route resource
        Route::resource('skill', SkillController::class)->except('show', 'create');

        // benefit route resource
        Route::resource('benefit', BenefitController::class)->except('show', 'create');

        // tags route resource
        Route::resource('tags', TagController::class);
        Route::post('tags/status/change/{tag}', [TagController::class, 'statusChange'])->name('tags.status.change');


        // sources route resource
        Route::resource('settings/sources', SourcesController::class);
        Route::resource('settings/branch', BranchController::class);
        Route::resource('settings/department', DepartmentController::class);
        Route::resource('settings/team', TeamsController::class);


        // Route::post('tags/status/change/{tag}', [TagController::class, 'statusChange'])->name('tags.status.change');

        // About Page
        Route::controller(CmsController::class)->group(function () {
            Route::get('settings/delete/about/logo/{name}', 'aboutLogoDelete')->name('settings.aboutLogo.delete');
            Route::put('settings/about', 'aboutupdate')->name('settings.aboutupdate');
            Route::put('settings/others', 'othersupdate')->name('settings.others.update');
            Route::put('settings/home', 'home')->name('settings.home.update');
            Route::put('settings/contact', 'contact')->name('settings.contact.update');
            Route::put('settings/auth', 'auth')->name('settings.auth.update');
            Route::put('settings/faq', 'faq')->name('settings.faq.update');
            Route::put('settings/errorpages', 'updateErrorPages')->name('settings.errorpage.update');
            Route::put('settings/comingsoon', 'comingsoon')->name('settings.comingsoon.update');

            Route::put('settings/account/complete/update', 'accountCompleteUpdate')->name('settings.account.complate.update');
            Route::put('settings/maintenance/mode/update', 'maintenanceModeUpdate')->name('settings.maintenance.mode.update');
        });

        //Dashboard Route
        Route::controller(AdminController::class)->group(function () {
            Route::get('/',  'dashboard');
            Route::get('/dashboard', 'dashboard')->name('admin.dashboard');
            Route::post('/admin/search', 'search')->name('admin.search');
            Route::post('/admin/download/transaction/invoice/{transaction}', 'downloadTransactionInvoice')->name('admin.transaction.invoice.download');
        });

        //Profile Route
        Route::controller(ProfileController::class)->group(function () {
            Route::get('/profile/settings', 'setting')->name('profile.setting');
            Route::get('/profile', 'profile')->name('profile');
            Route::put('/profile', 'profile_update')->name('profile.update');
        });

        // Order Route
        //    Route::controller(OrderController::class)->group(function () {
        //     Route::get('/orders', 'index')->name('order.index');
        //     Route::get('/orders/create/{user_id}', 'create')->name('order.create');
        //     Route::post('/store', 'store')->name('order.store');
        //     Route::get('/orders/edit/{plan}', 'edit')->name('order.edit');
        //     // Route::get('/status/{order_id}', 'status')->name('order.status');
        //     Route::get('/searchCandidate', 'searchCandidate')->name('order.searchCandidate');
        //     Route::put('/update/{order}', 'update')->name('order.update');
        //     Route::delete('delete/{order}', 'destroy')->name('order.delete');
        //     Route::get('/plan_category/{plan_category_id}','changeCategory')->name('order.category');
        //     Route::get('/orders/{id}', 'show')->name('order.show');
        // });

        Route::controller(OrderController::class)->prefix('order')->group(function () {
            Route::post('getOrderSummary', 'getOrderSummary')->name('order.getOrderSummary');
            Route::post('get_data', 'get_data')->name('order.get_data');
            Route::get('/', 'index')->name('order.index');
            Route::get('create/{user_id}', 'create')->name('order.create');
            Route::get('create-order', 'createOrder')->name('order.create-order');
            Route::post('/store', 'store')->name('order.store');
            Route::get('/plan-details', 'planDetails')->name('order.plan-details');
            Route::get('/edit/{plan}', 'edit')->name('order.edit');
            Route::get('/edit-order/{plan}', 'editOrder')->name('order.edit-order');
            Route::get('/searchCandidate', 'searchCandidate')->name('order.searchCandidate');
            Route::get('/searchUser', 'searchUser')->name('order.searchUser');
            Route::get('/searchOrder', 'searchOrder')->name('order.searchOrder');
            Route::put('/update/{order}', 'update')->name('order.update');
            Route::delete('delete/{order}', 'destroy')->name('order.delete');
            Route::get('/plan_category/{plan_category_id}', 'changeCategory')->name('order.category');
            Route::post('/customWhatsApp/{id}', 'customWhatsApp')->name('order.customWhatsApp');
           
            
            
        });

        

        Route::controller(MediaController::class)->group(function () {
            Route::get('/media', 'index')->name('media.index');
            Route::get('/media/create', 'create')->name('media.create');
            Route::post('/media/store', 'store')->name('media.store');
            Route::delete('/media/delete/{media}', 'destroy')->name('media.delete');
            Route::get('/media/edit/{media}', 'edit')->name('media.edit');
            Route::put('/media/update/{media}', 'update')->name('media.update');
        });



        // ========================================================
        // ====================Setting=============================
        // ========================================================
        // Privacy && Terms Conditions Page
        Route::put('settings/terms/conditions/update', [CmsController::class, 'termsConditionsUpdate'])->name('admin.privacy.terms.update');
        Route::get('settings/websitesetting', [WebsiteSettingController::class, 'website_setting'])->name('settings.websitesetting');
        Route::put('settings/websitesetting', [WebsiteSettingController::class, 'websitesettingupdate'])->name('settings.websitesetting.update');
        Route::post('settings/session/terms-privacy', [WebsiteSettingController::class, 'sessionUpdateTermsPrivacy'])->name('settings.session.update.tems-privacy');
        Route::delete('settings/cms/content', [WebsiteSettingController::class, 'cmsContentDestroy'])->name('settings.cms.content.destroy');

        Route::controller(SettingsController::class)->prefix('settings')->name('settings.')->group(function () {
            Route::get('general', 'general')->name('general');
            Route::put('general', 'generalUpdate')->name('general.update');
            Route::get('layout', 'layout')->name('layout');
            Route::put('layout', 'layoutUpdate')->name('layout.update');
            Route::put('mode', 'modeUpdate')->name('mode.update');
            Route::get('theme', 'theme')->name('theme');
            Route::put('theme', 'colorUpdate')->name('theme.update');
            Route::get('custom', 'custom')->name('custom');
            Route::put('custom', 'custumCSSJSUpdate')->name('custom.update');
            Route::get('email', 'email')->name('email');
            Route::put('email', 'emailUpdate')->name('email.update');
            Route::post('test-email', 'testEmailSent')->name('email.test');

            // Document Category Manager
            Route::get('document_manager', 'document_manager')->name('document_manager');
            Route::get('document_category', 'document_category')->name('document_category');
            Route::get('document_subcategory', 'document_subcategory')->name('document_subcategory');

            // sytem update
            Route::get('system', 'system')->name('system');
            Route::put('system/update', 'systemUpdate')->name('system.update');
            Route::put('system/mode/update', 'systemModeUpdate')->name('system.mode.update');
            Route::put('system/jobdeadline/update', 'systemJobdeadlineUpdate')->name('system.jobdeadline.update');

            // sytem update end
            Route::put('search/indexing', 'searchIndexing')->name('search.indexing');
            Route::put('google-analytics', 'googleAnalytics')->name('google.analytics');
            Route::put('allowLangChanging', 'allowLaguageChanage')->name('allow.langChange');
            Route::put('change/timezone', 'timezone')->name('change.timezone');

            // cookies routes
            Route::get('cookies', 'cookies')->name('cookies');
            Route::put('cookies/update', 'cookiesUpdate')->name('cookies.update');

            // seo
            Route::get('seo/index', 'seoIndex')->name('seo.index');
            Route::get('seo/edit/{page}', 'seoEdit')->name('seo.edit');
            Route::put('seo/update/{content}', 'seoUpdate')->name('seo.update');
            Route::get('generate/sitemap', 'generateSitemap')->name('generateSitemap');

            // databse backup end
            Route::put('working-process/update', 'workingProcessUpdate')->name('working.process.update');

            // recaptcha Update
            Route::put('recaptcha/update', 'recaptchaUpdate')->name('recaptcha.update');

            // analytics Update
            Route::put('analytics/update', 'analyticsUpdate')->name('analytics.update');

            // indexing Update
            Route::put('indexing/update', 'indexingUpdate')->name('indexing.update');

            // payperjob Update
            Route::put('payperjob/update', 'payperjobUpdate')->name('payperjob.update');

            // upgrade application
            Route::get('upgrade', 'upgrade')->name('upgrade');
            Route::post('upgrade/apply', 'upgradeApply')->name('upgrade.apply');


            //
            Route::get('followUpAssignedChange', 'followUpAssignedChange')->name('followUpAssignedChange');
            Route::POST('followUpAssignedChangeCount', 'followUpAssignedChangeCount')->name('followUpAssignedChangeCount');
            Route::POST('followUpAssignedChangeCountByCountry', 'followUpAssignedChangeCountByCountry')->name('followUpAssignedChangeCountByCountry');

            Route::post('followUpAssignedChange/update', 'updateFollowUpAssignedChange')->name('updateFollowUpAssignedChange');

            Route::get('leadCategorization', 'leadCategorization')->name('leadCategorization');
        });

        Route::controller(AffiliateSettingsController::class)->prefix('settings/affiliate')->name('settings.')->group(function () {
            Route::get('/', 'index')->name('affiliate.index');
            Route::put('careerjet/update', 'careerjetUpdate')->name('careerjet.update');
            Route::put('indeed/update', 'indeedUpdate')->name('indeed.update');
        });

        Route::group(["prefix" => "settings/email-templates", "as" => "settings.email-templates."], function () {
            Route::get("/", [EmailTemplateController::class, "index"])->name("list");
            Route::post("/save", [EmailTemplateController::class, "save"])->name("save");
        });

        Route::controller(SocialiteController::class)->group(function () {
            Route::get('settings/social-login', 'index')->name('settings.social.login');
            Route::put('settings/social-login', 'update')->name('settings.social.login.update');
            Route::post('settings/social-login/status', 'updateStatus')->name('settings.social.login.status.update');
        });

        Route::controller(PaymentController::class)->prefix('settings/payment')->name('settings.')->group(function () {
            // Automatic Payment
            Route::get('/auto', 'autoPayment')->name('payment');
            Route::put('/', 'update')->name('payment.update');

            // Manual Payment
            Route::get('/manual', 'manualPayment')->name('payment.manual');
            Route::post('/manual/store', 'manualPaymentStore')->name('payment.manual.store');
            Route::get('/manual/{manual_payment}/edit', 'manualPaymentEdit')->name('payment.manual.edit');
            Route::put('/manual/{manual_payment}/update', 'manualPaymentUpdate')->name('payment.manual.update');
            Route::delete('/manual/{manual_payment}/delete', 'manualPaymentDelete')->name('payment.manual.delete');
            Route::get('/manual/status/change', 'manualPaymentStatus')->name('payment.manual.status');

            Route::get('/checkoutPayment', 'checkoutPayment')->name('payment.checkoutPayment');
        });
        // candidate language
        Route::resource('candidate/language/index', CandidateLanguageController::class, ['names' => 'admin.candidate.language']);

        // address CRUD
        Route::prefix('address')->group(function () {
            Route::get('/', [AddressController::class, 'index'])->name('address.index');
            Route::get('create', [AddressController::class, 'create'])->name('address.create');
            Route::post('store', [AddressController::class, 'store'])->name('address.store');
            Route::get('edit/{address}', [AddressController::class, 'edit'])->name('address.edit');
            Route::put('update/{address}', [AddressController::class, 'update'])->name('address.update');
            Route::delete('delete/{address}', [AddressController::class, 'destroy'])->name('address.delete');
            Route::delete('multiple/delete', [AddressController::class, 'multipleDestroy'])->name('address.multiple.delete');
            Route::post('/set/app/address', [AddressController::class, 'setAppAddress'])->name('set.app.address');
        });

        Route::prefix('seosetting')->group(function () {
            Route::get('/', [SeoSettingsController::class, 'index'])->name('seosetting.index');
            Route::put('update/{seosetting}', [SeoSettingsController::class, 'update'])->name('seosetting.update');
        });

        Route::resource('intake', IntakeController::class); //intake

        Route::resource('urlRedirection',  UrlRedirectionController::class); //urlRedirection
        Route::delete('urlRedirection/delete/{address}', [UrlRedirectionController::class, 'destroy'])->name('urlRedirection.delete');
        Route::delete('urlRedirection/multiple/delete', [UrlRedirectionController::class, 'multipleDestroy'])->name('urlRedirection.multiple.delete');

        Route::prefix('dashboard')->group(function () {
            Route::get('/agent', [DashboardController::class, 'agentDashboard'])->name('dashboard.agentDashboard');
            Route::get('/agentData', [DashboardController::class, 'agentDataDashboard'])->name('dashboard.agentDataDashboard');
            Route::get('/agentGetMonthlyData', [DashboardController::class, 'agentGetMonthlyData'])->name('dashboard.agentGetMonthlyData');
            Route::get('/agentGetDailyData', [DashboardController::class, 'agentGetDailyData'])->name('dashboard.agentGetDailyData');
            Route::get('/getAgentReport', [DashboardController::class, 'getAgentReport'])->name('dashboard.getAgentReport');
            
            Route::get('/agentGetWeeklyData', [DashboardController::class, 'agentGetWeeklyData'])->name('dashboard.agentGetWeeklyData');
            Route::get('/getMonthlyDataConversion', [DashboardController::class, 'getMonthlyDataConversion'])->name('dashboard.getMonthlyDataConversion');
            Route::get('/getMonthlyDataApplication', [DashboardController::class, 'getMonthlyDataApplication'])->name('dashboard.getMonthlyDataApplication');
            
            
            
        });
        Route::prefix('log')->group(function () {
            Route::get('/whatsappLog', [WhatsappLogController::class, 'whatsappLogIndex'])->name('log.whatsappLogIndex');
        });

        Route::resource('webinar', WebinarController::class);

        Route::post('webinar/status', [WebinarController::class, 'statusChanges'])->name('webinar.status.change');
        // Route::resource('candidate/Application', CandidateApplicationController::class);

        Route::prefix('candidateApplication')->group(function () {
            Route::get('/', [CandidateApplicationController::class, 'index'])->name('candidateApplication.index');
            Route::get('create', [CandidateApplicationController::class, 'create'])->name('candidateApplication.create');
            Route::post('store', [CandidateApplicationController::class, 'store'])->name('candidateApplication.store');
            Route::get('edit/{application}', [CandidateApplicationController::class, 'edit'])->name('candidateApplication.edit');
            Route::put('update/{application}', [CandidateApplicationController::class, 'update'])->name('candidateApplication.update');
            Route::delete('delete/{application}', [CandidateApplicationController::class, 'destroy'])->name('candidateApplication.delete');
            Route::delete('multiple/delete', [CandidateApplicationController::class, 'multipleDestroy'])->name('candidateApplication.multiple.delete');
            Route::get('editPage/{application}', [CandidateApplicationController::class, 'editPage'])->name('candidateApplication.editPage');
            Route::post('/commentAndApplicationGetByApplicationID',  [CandidateApplicationController::class, 'commentAndApplicationGetByApplicationID'])->name('candidateApplication.commentAndApplicationGetByApplicationID');
            Route::post('/commentInsertByApplicationsId', [CandidateApplicationController::class, 'commentInsertByApplicationsId'])->name('candidateApplication.commentInsertByApplicationsId');
            Route::post('/storeFollowup/{id}', [CandidateApplicationController::class, 'storeFollowup'])->name('candidateApplication.storeFollowup');
            Route::post('/import', [CandidateApplicationController::class, 'import'])->name('candidateApplication.import');
            Route::get('/mappIngList', [CandidateApplicationController::class, 'mappIngList'])->name('candidateApplication.mappIngList');
            Route::post('mapListCreate/{application}', [CandidateApplicationController::class, 'mapListCreate'])->name('candidateApplication.mapListCreate');
            Route::post('mappIngList/mapListCreate', [CandidateApplicationController::class, 'multipleMapListCreate'])->name('candidateApplication.multiple.mapListCreate');
            Route::put('mappIngList/update/{application}', [CandidateApplicationController::class, 'mapListUpdate'])->name('candidateApplication.mapListUpdate');
            Route::post('/candidateApplication/universityListByName', [CandidateApplicationController::class, 'universityListByName'])->name('candidateApplication.universityListByName');
            Route::post('/candidateApplication/candidateListByName', [CandidateApplicationController::class, 'candidateListByName'])->name('candidateApplication.candidateListByName');
        });

        //////////////////////partner/////////////////////////////////////
        Route::resource('/settings/partner', PartnerController::class);

        //////////////////////Followup /////////////////////////////////////
        // Route::resource('followup', FollowupController::class);

        ///////////////////////////////////////Presentation/////////////////////
        Route::resource('presentation', PresentationController::class);
        Route::post('/presentation/delete_documents', [PresentationController::class, 'delete_documents'])->name('presentation.delete_documents');
        Route::post('/presentation/documents_upload', [PresentationController::class, 'documents_upload'])->name('presentation.documents_upload');
        Route::post('/presentation/get_documents', [PresentationController::class, 'get_documents'])->name('presentation.get_documents');
        Route::get('/presentationDocument', [PresentationController::class, 'presentationDocument'])->name('presentationDocument.view');

        Route::resource('presentationcategory', PresentationCategoryController::class);
        Route::get('/getPresentationCategory', [PresentationCategoryController::class, 'getPresentationCategory'])->name('presentation.getPresentationCategory');
        Route::get('/presentation/category/status', [PresentationCategoryController::class, 'presentationCategoryStatusChange'])->name('presentation.category.status.change');
        Route::get('/getCountryPresentationCategory', [PresentationController::class, 'getCountryPresentationCategory'])->name('presentation.getCountryPresentationCategory');


        ////////////////////////////////studentCase//////////////////////////////////

        Route::get('studentCase', [CandidateController::class, 'studentCase'])->name('candidate.studentCase');

        ////////////////////////////////BusinessCard//////////////////////////////////
        Route::resource('settings/businessCard', BusinessCardsController::class)->except(['show']);
        Route::get('settings/businessCard/status', [BusinessCardsController::class, 'businessCardStatusChange'])->name('admin.businessCardStatusChange');
    });


    ///////////////////////////////////////Presentation/////////////////////
    Route::resource('testPreparation', TestPreparationController::class)->except(['show']);
    //  Route::resource('settings/whatsapp/templete', WhatsAppTemplateController::class)->except(['show']);
    Route::resource('settings/whatsapp/templete', WhatsAppTemplateController::class)->except(['show'])->names([
        'index' => 'whatsapp.templates.index',
        'create' => 'whatsapp.templates.create',
        'store' => 'whatsapp.templates.store',
        'edit' => 'whatsapp.templates.edit',
        'update' => 'whatsapp.templates.update',
        'destroy' => 'whatsapp.templates.destroy',
    ]);


    // Route::resource('settings/payments', AdminPaymentController::class)->except(['show'])
    //     ->names([
    //         'index'   => 'admin.payments.index',
    //         // 'create'  => 'admin.payments.create',
    //         // 'store'   => 'admin.payments.store',
    //         // 'edit'    => 'admin.payments.edit',
    //         // 'update'  => 'admin.payments.update',
    //         // 'destroy' => 'admin.payments.destroy',
    //     ]);


    Route::resource('payments', AdminPaymentController::class)->except(['show'])
        ->names([
            'index'   => 'admin.payment.index',
            'create'  => 'admin.payment.create',
            'store'   => 'admin.payment.store',
            'edit'    => 'admin.payment.edit',
            'update'  => 'admin.payment.update',
            'destroy' => 'admin.payment.destroy',
            
        ]);
    Route::get('payments/export', [AdminPaymentController::class, 'export'])->name('admin.payment.export');
    Route::get('/payments/invoice_download/{id}', [AdminPaymentController::class, 'invoice_download'])->name('admin.payment.invoice_download');

    Route::get('payments/oderIdUpdatePaymentStatus/{id}', [AdminPaymentController::class, 'oderIdUpdatePaymentStatus'])->name('admin.payment.oderIdUpdatePaymentStatus');
        
    Route::resource('failedJob', FailedJobController::class)->except(['show']);
    Route::post('common/customWhatsApp', [CommonController::class, 'customWhatsApp'])->name('commonController.customWhatsApp');
    Route::post('/common/customWhatsAppWithUserID/{id}', [CommonController::class, 'customWhatsAppWithUserID'])->name('commonController.customWhatsAppWithUserID');
    Route::get('common/newPage', [CommonController::class, 'newPage'])->name('commonController.newPage');
    Route::get('common/sendBulkMail', [CommonController::class, 'sendBulkMail'])->name('commonController.sendBulkMail');
    Route::get('common/sendBulkWhatsapp', [CommonController::class, 'sendBulkWhatsapp'])->name('commonController.sendBulkWhatsapp');
    Route::post('/common/sendBulkWhatsapps', [CommonController::class, 'sendBulkWhatsapps'])->name('candidate.sendBulkWhatsapps');
    Route::any('/common/getUserData', [CommonController::class, 'getUserData'])->name('commonController.getUserData');

    Route::get('coursefinder', [CourseFinderController::class, 'index'])->name('coursefinder.index');
    Route::post('/universities/by/country', [CourseFinderController::class, 'universitiesGetByCountry'])->name('coursefinder.universitiesGetByCountry');
    Route::post('/universities/by/country/filter', [CourseFinderController::class, 'universitiesGetByCountryFilter'])->name('coursefinder.universitiesGetByCountryFilter');
    Route::post('/courses/by/country', [CourseFinderController::class, 'coursesGetByCountry'])->name('coursefinder.GetByCountry');
    Route::post('/courses/by/country/filter', [CourseFinderController::class, 'coursesGetByCountryFilter'])->name('coursefinder.coursesGetByCountryFilter');
    Route::post('/common/levelAssessmentTestEmail/{id}', [CommonController::class, 'levelAssessmentTestEmail'])->name('commonController.levelAssessmentTestEmail');

    Route::post('/common/s3FileShow', [CommonController::class, 's3FileShow'])->name('commonController.s3FileShow');
    
    Route::resource('ieltExamsTest', IeltExamsTestController::class)->except(['show'])
        ->names([
            'index'   => 'admin.ieltExamsTest.index',
            'create'  => 'admin.ieltExamsTest.create',
            'store'   => 'admin.ieltExamsTest.store',
            'edit'    => 'admin.ieltExamsTest.edit',
            'update'  => 'admin.ieltExamsTest.update',
            'destroy' => 'admin.ieltExamsTest.destroy',
        ]);


    

    Route::get('coursefinder', [CourseFinderController::class, 'index'])->name('coursefinder.index');
    Route::post('/courseFinder/searchFilter', [CourseFinderController::class, 'searchFilter'])->name('coursefinder.searchFilter');
    Route::post('/courseFinder/details/{courseId}', [CourseFinderController::class, 'showDetails'])->name('course.details');
    Route::post('/courseFinder/suggestion/{courseId}', [CourseFinderController::class, 'suggestion'])->name('course.suggestion');
    Route::get('/courseFinder/searchCandidate', [CourseFinderController::class, 'searchCandidate'])->name('coursefinder.searchCandidate');
    Route::post('/courseFinder/candidateAutofill/{userId}', [CourseFinderController::class, 'candidateAutofill'])->name('coursefinder.candidateAutofill');
    Route::get('/courseFinder/currencyUpdate', [CourseFinderController::class, 'currencyUpdate'])->name('coursefinder.currencyUpdate');
    Route::post('/courseFinder/courseShortlistAdd/{courseId}', [CourseFinderController::class, 'courseShortlistAdd'])->name('coursefinder.courseShortlistAdd');
    Route::post('/courseFinder/courseShortlistDelete/{courseId}', [CourseFinderController::class, 'courseShortlistDelete'])->name('coursefinder.courseShortlistDelete');

    Route::resource('LMS/batch', BatchController::class)->except(['show'])
    ->names([
        'index'   => 'admin.batch.index',
        'create'  => 'admin.batch.create',
        'store'   => 'admin.batch.store',
        'edit'    => 'admin.batch.edit',
        'update'  => 'admin.batch.update',
        'destroy' => 'admin.batch.destroy',
    ]);
    Route::get('LMS/batch/calendarEvent', [BatchController::class, 'calendarEvent'])->name('admin.batch.calendarEvent');
    Route::put('LMS/batch/calendareventDrop/{id}', [BatchController::class, 'calendareventDrop'])->name('admin.batch.calendareventDrop');
    Route::get('LMS/batch/searchCandidate', [BatchController::class, 'searchCandidate'])->name('admin.batch.searchCandidate');
    Route::get('LMS/batch/getplanByCategoryId', [BatchController::class, 'getplanByCategoryId'])->name('admin.batch.getplanByCategoryId');
    Route::get('LMS/batch/getUserByPlanId', [BatchController::class, 'getUserByPlanId'])->name('admin.batch.getUserByPlanId');
    
    Route::get('LMS/batch/planGetBacthData', [BatchController::class, 'planGetBacthData'])->name('admin.batch.planGetBacthData');

    Route::get('LMS/batch/getBatchCode', [BatchController::class, 'getBatchCode'])->name('admin.batch.getBatchCode');
    
    
    Route::middleware(['auth:admin'])->group(function () {
    Route::resource('LMS/class', ClassController::class)->except(['show'])
    ->names([
        'index'   => 'admin.class.index',
        'create'  => 'admin.class.create',
        'store'   => 'admin.class.store',
        'edit'    => 'admin.class.edit',
        'update'  => 'admin.class.update',
        'destroy' => 'admin.class.destroy',
    ]);
    Route::post('LMS/class/hostZoomMeeting', [ClassController::class, 'hostZoomMeeting'])
    ->name('admin.class.hostZoomMeeting');
    Route::get('LMS/class/hostZoomMeetingLeave', [ClassController::class, 'hostZoomMeetingLeave'])->name('admin.class.hostZoomMeetingLeave');

    Route::get('LMS/class/{id}', [ClassController::class, 'show'])->name('admin.class.show');
    Route::post('LMS/class/calendar-event', [ClassController::class, 'calendarEvent'])->name('admin.class.calendarEvent');
    
    Route::post('LMS/class/change_attendees_status', [ClassController::class, 'change_attendees_status'])->name('admin.class.change_attendees_status');
    Route::get('LMS/class/attendeesTable/{id}', [ClassController::class, 'attendeesTable'])->name('admin.class.attendeesTable');

    Route::post('LMS/class/getClassCode', [ClassController::class, 'getClassCode'])->name('admin.batch.getClassCode');
    // Route::get('script/indiaStateUpdate', [ScriptsController::class, 'indiaStateUpdate']);
    Route::post('/payment/createOrder',[AdminPaymentController::class, 'createOrder'])->name('admin.payment.createOrder');
    Route::any('/failed', [AdminPaymentController::class ,'payment_failed'])->name('admin.payment.failed');

    
    Route::post('LMS/class/getBatchClassData', [ClassController::class, 'getBatchClassData'])->name('admin.class.getBatchClassData');

    Route::get('/filemanager', [FileManagerController::class, 'index'])->name('filemanager.index');
    Route::post('/filemanager/delete', [FileManagerController::class, 'delete'])->name('filemanager.delete');
    Route::post('/filemanager/addFolder', [FileManagerController::class, 'addFolder'])->name('filemanager.addFolder');
    Route::post('/filemanager/upload', [FileManagerController::class, 'upload'])->name('filemanager.upload');

   });

   Route::get('LMS/zoom/meetingCreate', [ZoomController::class,  'meetingCreate']);
   Route::get('LMS/zoom/listMeetings', [ZoomController::class,  'listMeetings']);
   Route::get('LMS/zoom/zoomMeetingList', [ZoomController::class,  'zoomMeetingList']);
   Route::get('LMS/zoom/generateZoomAccessToken', [ZoomController::class,  'generateZoomAccessToken']);
//    Route::get('LMS/zoom/meetingCreateByBatchId/{id}', [ZoomController::class, 'meetingCreateBYBatch'])->name('meetingCreateByBatchId');
   Route::get('LMS/zoom/meetingCreateBYBatch', [ZoomController::class, 'meetingCreateBYBatch'])->name('meetingCreateByBatchId');
});