<?php

use App\Http\Controllers\api\agency\AgencyController;
use App\Http\Controllers\api\beautification\BeautyController;
use App\Http\Controllers\api\documentation\PhotoController;
use App\Http\Controllers\api\inspection\InspectionController;
use App\Http\Controllers\api\LoginController;
use App\Http\Controllers\api\Project\ProjectController;
use App\Http\Controllers\api\Space\SpaceSiteFinalApprovalController;
use App\Http\Controllers\api\User\UserController;
use App\Http\Controllers\api\Admin\AdminController;
use App\Http\Controllers\api\Admin\AdminDashboardController;
use App\Http\Controllers\api\officer\OfficerController;
use App\Http\Controllers\api\removal\RemovalPlanningController;
use App\Http\Controllers\api\vehicle\VehicleController;
use App\Http\Controllers\api\Zone\NewSiteController;
use App\Http\Controllers\api\Zone\ZonalOfficerController;
use App\Http\Controllers\api\ZoneController;
use App\Http\Controllers\api\SfiOfficerController;
use App\Http\Controllers\api\WardController;
use App\Http\Controllers\api\WardwisereportController;


use App\Http\Controllers\api\Plantation\PlantationSiteController;
use App\Http\Controllers\api\Plantation\PlantationInspectionController;
use App\Http\Controllers\api\Plantation\PlantationStatusController;
use App\Http\Controllers\api\Plantation\PlantationPlanningController;
use App\Http\Controllers\api\Plantation\PlantationPlanningWorkController;
use App\Http\Controllers\api\Plantation\PlantationWorkInspectionController;

use App\Http\Controllers\api\CityPlantation\CityPlantationSiteController;
use App\Http\Controllers\api\CityPlantation\CityPlantationInspectionController;
use App\Http\Controllers\api\CityPlantation\CityPlantationStatusController;
use App\Http\Controllers\api\CityPlantation\CityPlantationPlanningController;
use App\Http\Controllers\api\CityPlantation\CityPlantationPlanningWorkController;
use App\Http\Controllers\api\CityPlantation\CityPlantationWorkInspectionController;



use App\Http\Controllers\api\Space\SpaceSiteController;
use App\Http\Controllers\api\Space\SpaceSiteInspectionController;
use App\Http\Controllers\api\Space\SpaceSitePlanningController;
use App\Http\Controllers\api\Space\SpaceSitePlanningWorkController;


use App\Http\Controllers\api\PlantationDrive\PlantationDriveController;

use App\Http\Controllers\CronController;
use App\Services\SmsService;
use Illuminate\Support\Facades\Route;
use PhpParser\Node\Expr\New_;
use App\Http\Controllers\api\PlantationRoleWiseWardMappingController;
use App\Http\Controllers\api\SpotPlantation\SpotPlantationController;
use App\Http\Controllers\api\Space\SpaceSiteWorkInspectionController;

Route::get('/name', function () {
    return view('welcome');
});

// Route::get('/sms-debug', function () {
//     return response()->json([
//         'url'    => config('sms.url'),
//         'key'    => config('sms.key'),
//         'secret' => config('sms.secret'),
//     ]);
// });


Route::get('/cron_job', [CronController::class, 'handleSiteMissed']);
Route::get('/app-version', [AdminController::class, 'getVersion']);



Route::get('/sms', [LoginController::class, 'sms']);
Route::post('/login', [LoginController::class, 'login']);
Route::post('/verify-otp', [LoginController::class, 'verifyOtp']);
Route::post('/identify-and-set-number', [LoginController::class, 'identifyAndSetNumber']);

// ---------- Spot Unplanned Plantation ----------
Route::middleware('auth:sanctum')->group(function () {
    Route::post('/spot-plantation/road/add',              [SpotPlantationController::class, 'addRoad']);
    Route::get('/spot-plantation/roads/{ward_id}',        [SpotPlantationController::class, 'listRoads']);
    Route::post('/spot-plantation/entry/create',          [SpotPlantationController::class, 'createEntry']);
    Route::post('/spot-plantation/entry/{id}/add-photo',  [SpotPlantationController::class, 'addPhoto']);
    Route::get('/spot-plantation/road/{road_id}/entries', [SpotPlantationController::class, 'roadEntries']);
    Route::get('/spot-plantation/entry/{id}',             [SpotPlantationController::class, 'show']);
    Route::get('/spot-plantation-report',                 [SpotPlantationController::class, 'report']);
});

Route::middleware('auth:sanctum')->prefix('admin')->group(function () {


    Route::get('/register-list', [UserController::class, 'list']);
    Route::post('/register', [UserController::class, 'register']);
    Route::get('/register/{id}', [UserController::class, 'show']);
    Route::post('/register-update/{id}', [UserController::class, 'update']);
    //-----------------------------userManagement-----------------------------

    Route::get('/user-list', [UserController::class, 'userList']);
    Route::get('/user-show/{id}', [UserController::class, 'userShow']);
    Route::post('/user-edit/{id}', [UserController::class, 'userEdit']);
    Route::post('/user-delete/{id}', [UserController::class, 'userDelete']);


    Route::get('/zone', [ZoneController::class, 'zone']);
    Route::get('/roles', [ZoneController::class, 'roles']);
    Route::post('/wards', [ZoneController::class, 'wards']);
    Route::post('/wards-officer', [ZoneController::class, 'wardOfficerList']);
    Route::get('/assigned-officers', [ZoneController::class, 'assignedOfficers']);
    Route::get('/vehicle-list', [VehicleController::class, 'vehicleList']);
    Route::get('officer-list', [OfficerController::class, 'officerList']);

    //agency-list
    Route::get('agency-list', [AgencyController::class, 'agencyList']);
    Route::post('/agency-create', [AgencyController::class, 'store']);

    Route::get('/php-upload-check', function () {
        return response()->json([
            'sapi' => php_sapi_name(),
            'loaded_ini' => php_ini_loaded_file(),
            'file_uploads' => ini_get('file_uploads'),
            'upload_tmp_dir' => ini_get('upload_tmp_dir'),
            'sys_temp_dir' => ini_get('sys_temp_dir'),
            'upload_max_filesize' => ini_get('upload_max_filesize'),
            'post_max_size' => ini_get('post_max_size'),
            'open_basedir' => ini_get('open_basedir'),
        ]);
    });

    //######################################## site ##############################

    Route::post('add-new-site', [NewSiteController::class, 'addNewSite']);
    Route::post('edit-site/{id}', [NewSiteController::class, 'editSite']);
    Route::post('update-duration-date/{id}', [NewSiteController::class, 'updateDurationValue']);

    Route::post('edit-new-site/{id}', [NewSiteController::class, 'editNewSite']);
    Route::post('/waste-sites', [NewSiteController::class, 'siteList']);
    Route::get('/waste-sites', [NewSiteController::class, 'siteList']);
    Route::get('/site-detail/{id}', [NewSiteController::class, 'siteDetail']);
    Route::post('/convert-status/{id}', [NewSiteController::class, 'convertStatus']);
    Route::post('/update-site-status', [NewSiteController::class, 'updateSiteStatus']);
    Route::post('/today-shedule', [NewSiteController::class, 'todayPlans']);
    Route::get('/plan-details', [NewSiteController::class, 'getPlanDetails']);


    //add reschedule and missed site api
    Route::post('/rescheduled-site-missed', [NewSiteController::class, 'rescheduleMissedSite']);


    //------------------------------update Timelapse date when reschedule or Missed-------------------------//
    Route::post('/reschedule-requests', [NewSiteController::class, 'rescheduleRequests']);
    Route::post('/action-reschedule-requests', [NewSiteController::class, 'actionRescheduleRequest']);






    //######################################## Cleaning ##############################
    Route::post('waste-removal-plan/{id}', [RemovalPlanningController::class, 'wasteRemovalPlanning']);

    // Route::get('/select-waste-site',[PhotoController::class,'selectWasteSite']);
    Route::post('/site-cleaning/{id}', [PhotoController::class, 'siteCleaning']);
    Route::get('/cleaning-log-with-photos', [PhotoController::class, 'cleaningLogWithPhotos']);
    Route::post('/cleaning-photos', [PhotoController::class, 'cleaningPhotos']);

    Route::post('/time-laps-list', [PhotoController::class, 'getMissedAndRescheduled']);
    Route::get('/site-hitory/{id}', [PhotoController::class, 'siteHistory']);



    //######################################## site-inspection ##############################
    Route::post('/site-inspection/{id}', [InspectionController::class, 'siteInspection']);
    Route::post('/site-inspection-history/{id}', [InspectionController::class, 'siteInspectionHistory']);
    Route::get('/site-inspections', [InspectionController::class, 'getSiteInspections']);
    Route::post('/update-by-site-date', [InspectionController::class, 'updateBySiteAndDate']);
    Route::post('/verify-inspection/{id}', [InspectionController::class, 'verifyInspection']);
    Route::get('/details-inspection/{id}', [InspectionController::class, 'getInspectionDetails']);

    //------------------------------------ saurabh Inspection cross verified -----------------------------------------
    Route::post('/inspection_verify/{id}', [InspectionController::class, 'inspection_verify']);

    Route::get('/inspection_get/{id}', [InspectionController::class, 'inspection_get']);


    //######################################## beautification-list ##############################
    Route::get('/beautification-sites', [BeautyController::class, 'beautificationSites']);
    Route::post('/dashboard', [UserController::class, 'dashboard']);
    Route::post('/dashboardnew', [UserController::class, 'dashboardnew']);
    Route::post('/waste-sites-newuser', [UserController::class, 'siteListingNew']);






    //######################################## site inspection verifyed ##############################
    Route::apiResource('/projects', ProjectController::class);
    Route::post('/logout', [LoginController::class, 'logout']);




    //######################################## Site Listing-all ##############################
    Route::post('/total-sites', [AdminController::class, 'totalSites']);
    Route::post('/create-plan', [AdminController::class, 'createPlan']);
    Route::post('/cleaning-list', [AdminController::class, 'cleaningList']);
    Route::post('/site-inspection-list', [AdminController::class, 'siteInspectionList']);
    Route::post('/overdue-report', [AdminController::class, 'overdueCleaningInspectionReport']);
    Route::get('/sfi-officers', [AdminController::class, 'sfiOfficers']);
    Route::post('/zone-ward-list', [AdminController::class, 'zoneWardList']);
    Route::get('/zone-list', [AdminController::class, 'zoneList']);
    Route::post('/ward-list', [AdminController::class, 'wardList']);




    //############################################ Bhanu Sir Dashboard ######################################################

    Route::get('/meerut-dashboard', [AdminController::class, 'meerut_dashboard']);
    Route::get('/garbage-hotspot', [AdminController::class, 'garbage_hotspot']);


    Route::post('/zone-wise-hotspot', [ZonalOfficerController::class, 'zone_wise_hotspot']);
    Route::post('/hotspot-list', [ZonalOfficerController::class, 'hotspotList']);
    Route::post('/hotspot-list-timelap', [ZonalOfficerController::class, 'hotspotListTimelap']);

    Route::post('/hotspot-list-verification', [ZonalOfficerController::class, 'hotspotListVerification']);

    // montly report of cleaning  
    Route::post('/monthly-cleaning-report', [ZonalOfficerController::class, 'monthlyCleaningReport']);

    Route::post('/get-cleaning-report', [ZonalOfficerController::class, 'getCleaningReport']);
    Route::post('/get-cleaning-report-date-wise', [ZonalOfficerController::class, 'getCleaningReportDateWise']);

    //----------- Plants and plantation site api ------------------/

    //step-1
    Route::post('/add-plantation-site', [PlantationSiteController::class, 'store']);
    Route::post('/update-plantation-site/{id}', [PlantationSiteController::class, 'update']);
    Route::get('/list-plantation-site', [PlantationSiteController::class, 'index']);
    Route::get('/list-plantation-site/{id}', [PlantationSiteController::class, 'show']);


    Route::post('/plantation-status', [PlantationStatusController::class, 'store']);
    Route::post('/update-plantation-status/{id}', [PlantationStatusController::class, 'update']);
    Route::get('/list-plantation-status', [PlantationStatusController::class, 'index']);
    Route::get('/list-plantation-status/{id}', [PlantationStatusController::class, 'show']);


    Route::get('/plantation-dashboard', [PlantationSiteController::class, 'dashboard']);

    //step-2 Verification by Nagar Ayukt of plantation site
    Route::post('/plantation-verify/{id}', [PlantationSiteController::class, 'verifyPlantationSite']);

    //step-3 Assigned team for site 
    Route::post('/plantation-approval-list', [PlantationSiteController::class, 'plantationApprovalList']);
    Route::get('/plantation-team-list/{id}', [PlantationSiteController::class, 'plantationTeamList']);
    Route::post('/assign-team-plantation', [PlantationSiteController::class, 'assignTeamPlantation']); // gave permission to AE,JE,XEN for assign team
    Route::post('/assign-alloted-team', [PlantationSiteController::class, 'assignAllotedTeam']); //display the list

    //step-4 Inspection of  site by AE,JE,XEN
    Route::post('/plantation-inspection/{id}', [PlantationInspectionController::class, 'storeInspection']);
    Route::post('/update-plantation-inspection/{id}', [PlantationInspectionController::class, 'updateInspection']);
    Route::post('/plantation-inspection-list', [PlantationInspectionController::class, 'inspectionList']);
    Route::post('/plantation-inspection-history/{id}', [PlantationInspectionController::class, 'inspectionListHistory']);

    //step-5 Make a Planning by AE,JE,XEN
    Route::post('/add-plantation-planning', [PlantationPlanningController::class, 'store']);
    Route::post('/update-plantation-planning/{id}', [PlantationPlanningController::class, 'update']);
    Route::post('/plantation-planning-list', [PlantationPlanningController::class, 'index']);
    Route::get('/plantation-planning-list/{id}', [PlantationPlanningController::class, 'show']);

    //step-6 Approval of Plantation Planning by Chief Engineer,Zonal Officer,Nagar Ayukt
    Route::post('/plantation-planning-approval-list', [PlantationPlanningController::class, 'plantationPlanningList']);
    Route::post('/approve-plantation-planning/{id}', [PlantationPlanningController::class, 'updateWorkflow']);

    //step -7 Start the Work in PlantationPlannning // 1. Start Plantation Work
    Route::post('/plantation-planning-work/start', [PlantationPlanningWorkController::class, 'startWork']);
    Route::post('/plantation-planning-work/complete/{id}', [PlantationPlanningWorkController::class, 'completeWork']);
    Route::get('/plantation-planning-work/{id}', [PlantationPlanningWorkController::class, 'show']);
    Route::post('/plantation-planning-work-list', [PlantationPlanningWorkController::class, 'showList']);
    Route::post('/plantation-work-progress-logs', [PlantationPlanningWorkController::class, 'progressLogs']);


    //step -8 Start the Inspection of plantation Planning work done 
    Route::post('/plantation-work-inspection/{id}', [PlantationWorkInspectionController::class, 'storeInspection']);
    Route::post('/update-work-plantation-inspection/{id}', [PlantationWorkInspectionController::class, 'updateInspection']);
    Route::post('/plantation-work-inspection-list', [PlantationWorkInspectionController::class, 'inspectionList']);

    //step -9 Start the apporval to cheif Enginer ,Zonal Officer ,Nagar Ayukt
    //When the final step done work Inspection completed by AE XE and XEN 
    //then need to final approval of that site 
    //please display all with status cheif Enginer ,Zonal Officer ,Nagar Ayukt and AE JE XEN

    Route::post('/final-approval-list', [PlantationPlanningController::class, 'finalApprovalPendingList']);
    Route::post('/final-approval-action/{id}', [PlantationPlanningController::class, 'finalApprovalAction']);



    //------------------ city infrastructure api Divider,Railling,Street Light -------------------------------------//

    //step-1
    Route::post('/city-add-plantation-site', [CityPlantationSiteController::class, 'store']);
    Route::post('/city-update-plantation-site/{id}', [CityPlantationSiteController::class, 'update']);
    Route::get('/city-list-plantation-site', [CityPlantationSiteController::class, 'index']);
    Route::get('/city-list-plantation-site/{id}', [CityPlantationSiteController::class, 'show']);

    Route::post('/city-plantation-dashboard', [CityPlantationSiteController::class, 'dashboard']);


    //step-2 Verification by Nagar Ayukt of plantation site
    Route::post('/city-plantation-verify/{id}', [CityPlantationSiteController::class, 'verifyPlantationSite']);


    //step-3 Assigned team for site 
    Route::post('/city-plantation-approval-list', [CityPlantationSiteController::class, 'plantationApprovalList']);
    Route::get('/city-plantation-team-list/{id}', [CityPlantationSiteController::class, 'plantationTeamList']);
    Route::post('/city-assign-team-plantation', [CityPlantationSiteController::class, 'assignTeamPlantation']); // gave permission to AE,JE,XEN for assign team
    Route::post('/city-assign-alloted-team', [CityPlantationSiteController::class, 'assignAllotedTeam']); //display the list

    //step-4 Inspection of  site by AE,JE,XEN
    Route::post('/city-plantation-inspection/{id}', [CityPlantationInspectionController::class, 'storeInspection']);
    Route::post('/city-update-plantation-inspection/{id}', [CityPlantationInspectionController::class, 'updateInspection']);
    Route::post('/city-plantation-inspection-list', [CityPlantationInspectionController::class, 'inspectionList']);
    Route::post('/city-plantation-inspection-history/{id}', [CityPlantationInspectionController::class, 'inspectionListHistory']);

    //step-5 Make a Plan by AE,JE,XEN
    Route::post('/city-add-plantation-planning', [CityPlantationPlanningController::class, 'store']);
    Route::post('/city-update-plantation-planning/{id}', [CityPlantationPlanningController::class, 'update']);
    Route::post('/city-plantation-planning-list', [CityPlantationPlanningController::class, 'index']);
    Route::get('/city-plantation-planning-list/{id}', [CityPlantationPlanningController::class, 'show']);

    //step-6 Approval of Plantation Planning by Chief Engineer,Zonal Officer,Nagar Ayukt
    Route::post('/city-plantation-planning-approval-list', [CityPlantationPlanningController::class, 'plantationPlanningList']);
    Route::post('/city-approve-plantation-planning/{id}', [CityPlantationPlanningController::class, 'updateWorkflow']);

    //step -7 Start the Work in PlantationPlannning // 1. Start Plantation Work
    Route::post('/city-plantation-planning-work/start', [CityPlantationPlanningWorkController::class, 'startWork']);
    Route::post('/city-plantation-planning-work/complete/{id}', [CityPlantationPlanningWorkController::class, 'completeWork']);
    Route::get('/city-plantation-planning-work/{id}', [CityPlantationPlanningWorkController::class, 'show']);
    Route::post('/city-plantation-planning-work-list', [CityPlantationPlanningWorkController::class, 'showList']);
    Route::post('/city-plantation-work-progress-logs', [CityPlantationPlanningWorkController::class, 'progressLogs']);


    //step -8 Start the Inspection of plantation Planning work done 
    Route::post('/city-plantation-work-inspection/{id}', [CityPlantationWorkInspectionController::class, 'storeInspection']);
    Route::post('/city-update-work-plantation-inspection/{id}', [CityPlantationWorkInspectionController::class, 'updateInspection']);
    Route::post('/city-plantation-work-inspection-list', [CityPlantationWorkInspectionController::class, 'inspectionList']);

    //step -9 Start the apporval to cheif Enginer ,Zonal Officer ,Nagar Ayukt
    //When the final step done work Inspection completed by AE XE and XEN 
    //then need to final approval of that site 
    //please display all with status cheif Enginer ,Zonal Officer ,Nagar Ayukt and AE JE XEN

    Route::post('/city-final-approval-list', [CityPlantationPlanningController::class, 'finalApprovalPendingList']);
    Route::post('/city-final-approval-action/{id}', [CityPlantationPlanningController::class, 'finalApprovalAction']);




























    //-saurabh api for plantation site------------------//
    Route::post('/plantation-update/{zone_id}/{role_id}', [PlantationRoleWiseWardMappingController::class, 'plantation_update']);
    Route::post('/plantation-destroy/{zone_id}/{role_id}', [PlantationRoleWiseWardMappingController::class, 'plantation_destroy']);
    Route::get('/plantation-show/{zone_id}/{role_id}', [PlantationRoleWiseWardMappingController::class, 'plantation_show']);
    Route::apiResource('/plantation-role-ward-mapping', PlantationRoleWiseWardMappingController::class);




    //----------- Space plantation site api ------------------//
    Route::apiResource('/space-site', SpaceSiteController::class);
    Route::get('/space-dashboard', [SpaceSiteController::class, 'dashboard']);
    //step-2 Verification by Nagar Ayukt of plantation site
    Route::post('/space-site-verify/{id}', [SpaceSiteController::class, 'verifySpaceSite']);


    //step-3 Assigned team for site 
    Route::post('/space-site-approval-list', [SpaceSiteController::class, 'spaceApprovalList']);
    Route::get('/space-site-team-list/{id}', [SpaceSiteController::class, 'spaceTeamList']);
    Route::post('/space-site-assign-team-space', [SpaceSiteController::class, 'assignTeamspace']); // gave permission to AE,JE,XEN for assign team
    Route::post('/space-site-assign-alloted-team', [SpaceSiteController::class, 'assignAllotedTeam']); //display the list


    //step-4 Inspection of  site by AE,JE,XEN, Archiecture 
    Route::post('/space-inspection/{id}', [SpaceSiteInspectionController::class, 'storeInspection']);
    Route::post('/update-space-inspection/{id}', [SpaceSiteInspectionController::class, 'updateInspection']);
    Route::post('/space-inspection-list', [SpaceSiteInspectionController::class, 'inspectionList']);
    Route::post('/space-inspection-history/{id}', [SpaceSiteInspectionController::class, 'inspectionListHistory']);

    //step-5 Make a Planning by AE,JE,XEN, Archiecture

    Route::post('/space-add-planning', [SpaceSitePlanningController::class, 'store']);
    Route::post('/space-update-plantation-planning/{id}', [SpaceSitePlanningController::class, 'update']);
    Route::post('/space-planning-list', [SpaceSitePlanningController::class, 'index']);
    Route::get('/space-planning-list/{id}', [SpaceSitePlanningController::class, 'show']);



    //step-6 Approval of Space Planning by Chief Engineer, Zonal Officer, Nagar Ayukt

    Route::post('/space-plantation-planning-approval-list', [SpaceSitePlanningController::class, 'spacePlanningList']);
    Route::post('/space-approve-plantation-planning/{id}', [SpaceSitePlanningController::class, 'updateWorkflow']);


    //step -7 Start the Work in SpaceMakingPlannning // 1. Start Plantation Work
    Route::post('/space-planning-work/start', [SpaceSitePlanningWorkController::class, 'startWork']);
    Route::post('/space-planning-work/complete/{id}', [SpaceSitePlanningWorkController::class, 'completeWork']);
    Route::get('/space-planning-work/{id}', [SpaceSitePlanningWorkController::class, 'show']);
    Route::post('/space-planning-work-list', [SpaceSitePlanningWorkController::class, 'showList']);
    Route::post('/space-work-progress-logs', [SpaceSitePlanningWorkController::class, 'progressLogs']);



    //step -8 Start the Inspection of space Planning work done 
    Route::post('/space-work-inspection/{id}', [SpaceSiteWorkInspectionController::class, 'storeInspection']);
    Route::post('/update-work-space-inspection/{id}', [SpaceSiteWorkInspectionController::class, 'updateInspection']);
    Route::post('/space-work-inspection-list', [SpaceSiteWorkInspectionController::class, 'inspectionList']);

    //step -9 Start the apporval to cheif Enginer ,Zonal Officer ,Nagar Ayukt
    //When the final step done work Inspection completed by AE XE and XEN 
    //then need to final approval of that site 
    //please display all with status cheif Enginer ,Zonal Officer ,Nagar Ayukt and AE JE XEN

    Route::post('/space-final-approval-list', [SpaceSiteFinalApprovalController::class, 'finalApprovalPendingList']);
    Route::post('/space-final-approval-action/{id}', [SpaceSiteFinalApprovalController::class, 'finalApprovalAction']);





    //######################################## reports ##############################
    Route::post('/report-zone', [AdminController::class, 'reportsZoneWise']);
    Route::post('/report-ward', [AdminController::class, 'reportsWardWise']);
    Route::post('/report-cleaning', [AdminController::class, 'reportsCleaningHistory']);
    Route::get('/audit-logs', [AdminController::class, 'getAuditLogs']);
    Route::get('/scheduled', [AdminController::class, 'scheduledReport']);
    Route::get('/verified', [AdminController::class, 'verifiedReport']);
    Route::post('/check-sheduled-list', [AdminController::class, 'checkSheduledList']);
    Route::post('/reports-zone-wise-date-range', [AdminController::class, 'reportsZoneWiseDateRange']);




    //######################################## Graph ##############################
    Route::post('/monthly-progress-graph', [AdminController::class, 'monthlyProgressGraph']);
    Route::get('/dashboard-graph', [AdminController::class, 'dashboardGraphs']);
    Route::get('/graph-dashboard', [AdminDashboardController::class, 'dashboard']);


    //######################################## pushed ##############################


    Route::get('/plantation-drive/report', [PlantationDriveController::class, 'index']);
    Route::post('/plantation-drive/store', [PlantationDriveController::class, 'store']);
    Route::get('/plantation-drive/show/{id}', [PlantationDriveController::class, 'show']);
    Route::post('/plantation-drive/update/{id}', [PlantationDriveController::class, 'update']);
    Route::post('plantation-drive/{id}/upload-images', [PlantationDriveController::class, 'uploadImages']);
    Route::get('plantation-drive/zone-wise-report', [PlantationDriveController::class, 'zoneWiseReport']);
    Route::get('plantation-drive/zone-wise-report/{zone_id}', [PlantationDriveController::class, 'zoneWiseReportDetails']);

    Route::get('plantation-drive/ward-wise-report', [PlantationDriveController::class, 'wardWiseReport']);
    Route::get('plantation-drive/ward-wise-report/{ward_id}', [PlantationDriveController::class, 'wardWiseReportDetails']);
});



//######################################## main admin ##############################
Route::middleware('auth:sanctum')->prefix('madmin')->group(function () {
    Route::get('/dashboard', [AdminController::class, 'dashboard']);
    Route::post('/zone-data-list', [AdminController::class, 'zonewiseList']);
    Route::get('/cleaning-logs', [AdminController::class, 'cleaningLogs']);
});




//######################################## web api admin ##############################
Route::middleware('auth:sanctum')->prefix('web')->group(function () {
    Route::get('/dashboard', [AdminDashboardController::class, 'index']);
    Route::get('/site-inspections', [AdminDashboardController::class, 'siteInspectionList']);
    Route::get('/zones', [AdminDashboardController::class, 'zonesList']);
    Route::get('/officers', [AdminDashboardController::class, 'officersList']);
    Route::get('/res-officers/{id}', [AdminDashboardController::class, 'officersListRes']);
    Route::get('/projects', [AdminDashboardController::class, 'projectsList']);



    //########################################### saurabh ################################
    Route::post('/sfiofficer-update', [SfiOfficerController::class, 'sfiofficerUpdate']);
    Route::get('/sfishow/{sfiId}', [SfiOfficerController::class, 'sfiShow']);
    Route::delete('/sfidelete/{sfiId}', [SfiOfficerController::class, 'sfiDelete']);
    Route::get('/sfiuser', [SfiOfficerController::class, 'sfiuser']);

    Route::apiResource('sfiofficer', SfiOfficerController::class);
    Route::apiResource('zones', ZoneController::class);
    Route::apiResource('ward', WardController::class);
});
