<?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\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\CronController;
use App\Services\SmsService;
use Illuminate\Support\Facades\Route;
use PhpParser\Node\Expr\New_;


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::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']);


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']);





//######################################## 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::post('/rescheduled-site', [PhotoController::class, 'rescheduleMissedSite']);
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-----------------------------------------
Route::post('/inspection_verify/{id}',[InspectionController::class,'inspection_verify']);
Route::get('/inspection_list',[InspectionController::class,'inspection_list']);
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']);



















//######################################## 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']);



  });



//######################################## 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::delete('/sfidelete/{zoneId}/{sfiId}', [SfiOfficerController::class, 'sfiDelete']);
Route::apiResource('sfiofficer', SfiOfficerController::class);
Route::apiResource('zones', ZoneController::class);
Route::apiResource('ward', WardController::class);




  });  


