Files
backend/routes/v3.php

708 lines
41 KiB
PHP

<?php
use App\Http\Controllers\V3\Auth\LogoutController;
use App\Http\Controllers\V3\CityController;
use App\Http\Controllers\V3\CMMSMachinesController;
use App\Http\Controllers\V3\DamageManagementController;
use App\Http\Controllers\V3\Dashboard\Accident\AccidentReceiptController;
use App\Http\Controllers\V3\Dashboard\Accident\AccidentReceiptReportController;
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshController;
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshSampleController;
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshTypeController;
use App\Http\Controllers\V3\Dashboard\Harim\GeneralManagerController;
use App\Http\Controllers\V3\Dashboard\Harim\HarimOfficeController;
use App\Http\Controllers\V3\Dashboard\Harim\ProvinceOfficeController;
use App\Http\Controllers\V3\Dashboard\Harim\TechnicalDeputyController;
use App\Http\Controllers\V3\Dashboard\ItemsManagementController;
use App\Http\Controllers\V3\Dashboard\Mission\ControlUnitController;
use App\Http\Controllers\V3\Dashboard\Mission\DetailController;
use App\Http\Controllers\V3\Dashboard\Mission\Report\ReportMachineController;
use App\Http\Controllers\V3\Dashboard\Mission\Report\ReportTradodController;
use App\Http\Controllers\V3\Dashboard\Mission\Report\ReportViolationController;
use App\Http\Controllers\V3\Dashboard\Mission\RequestPortalController;
use App\Http\Controllers\V3\Dashboard\Mission\TransportationUnitController;
use App\Http\Controllers\V3\Dashboard\Mission\ViolationManagementController;
use App\Http\Controllers\V3\Dashboard\ObservedItemController;
use App\Http\Controllers\V3\Dashboard\OtpManagementController;
use App\Http\Controllers\V3\Dashboard\RoadMaintenanceStationController;
use App\Http\Controllers\V3\Dashboard\RoadPatrol\ReportController;
use App\Http\Controllers\V3\Dashboard\RoleManagementController;
use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorController;
use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\AccessRoadActivityController;
use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\ConstructionActivityController;
use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\UtilityPassingActivityController;
use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\SupervisorController;
use App\Http\Controllers\V3\Dashboard\UserManagementController;
use App\Http\Controllers\V3\FMSVehicleManagementController;
use App\Http\Controllers\V3\Harim\DivarkeshiController;
use App\Http\Controllers\V3\LogListManagementController;
use App\Http\Controllers\V3\NotificationController;
use App\Http\Controllers\V3\PermissionManagementController;
use App\Http\Controllers\V3\ProfileController;
use App\Http\Controllers\V3\ProvinceController;
use App\Http\Controllers\V3\RahdaranController;
use App\Http\Controllers\V3\WebServices\RoadItemController;
use Illuminate\Support\Facades\Route;
Route::get('admin/permissions', function () {
if (auth()->user()->username == 'witel') {
auth()->user()->syncPermissions(\App\Models\Permission::all());
return response('done');
}
abort(404);
});
Route::prefix('harim')->name('harim')->group(function () {
Route::prefix('divarkeshi')->name('divarkeshi')->controller(DivarkeshiController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/{divarkeshi}', 'details')->name('details');
Route::post('/store', 'store')->name('store');
// Route::get('/report/map', 'V3\Dashboard\ContractController@getAllDataToMap')->name('V3.contract.report.map');
// Route::get('/{contract}', 'V3\Dashboard\ContractController@detail')->name('V3.contract.detail');
});
Route::prefix('rah_dastresi')->name('rah_dastresi')->group(function () {
// Route::get('/store', 'V3\Dashboard\ContractController@unserialize')->name('store');
// Route::get('/report/map', 'V3\Dashboard\ContractController@getAllDataToMap')->name('V3.contract.report.map');
// Route::get('/{contract}', 'V3\Dashboard\ContractController@detail')->name('V3.contract.detail');
});
Route::prefix('tasisat_zirbana')->group(function () {
// Route::get('/{contract}/unserialize', 'V3\Dashboard\ContractController@unserialize')->name('V3.contract.unserialize');
// Route::get('/report/map', 'V3\Dashboard\ContractController@getAllDataToMap')->name('V3.contract.report.map');
// Route::get('/{contract}', 'V3\Dashboard\ContractController@detail')->name('V3.contract.detail');
});
});
Route::prefix('profile')
->name('profile.')
->controller(ProfileController::class)
->group(function () {
Route::get('info', 'info')->name('info');
Route::post('edit', 'edit')->name('edit');
Route::post('change_password', 'changePassword')->name('changePassword');
Route::post('add_activity', 'addActivity')->name('addActivity');
});
Route::prefix('azmayesh_types')
->name('azmayesh_types.')
->controller(AzmayeshTypeController::class)
->group(function () {
Route::get('/', 'index')->middleware('permission:azmayesh-type-management')->name('index');
Route::get('/list', 'list')->middleware(['permission:azmayesh-type-management|azmayesh-management'])->name('list');
Route::get('/fields/{azmayeshType}', 'fields')->middleware('permission:azmayesh-type-management')->name('fields');
Route::get('/{azmayeshType}', 'show')->middleware('permission:azmayesh-type-management')->name('show');
Route::post('/store', 'store')->middleware('permission:azmayesh-type-management')->name('store');
Route::post('/update/{azmayeshType}', 'update')->middleware('permission:azmayesh-type-management')->name('update');
Route::post('/delete/{azmayeshType}', 'destroy')->middleware('permission:azmayesh-type-management')->name('delete');
});
Route::prefix('azmayesh_samples')
->name('azmayesh_samples.')
->middleware('permission:azmayesh-management')
->controller(AzmayeshSampleController::class)
->group(function () {
Route::get('/index/{azmayesh_id}', 'index')->name('index');
Route::get('/{azmayeshSample}', 'show')->name('show');
Route::post('/store', 'store')->name('store');
Route::post('/update/{azmayeshSample}', 'update')->name('update');
Route::post('/delete/{azmayeshSample}', 'destroy')->name('delete');
});
Route::prefix('azmayeshes')
->name('azmayeshes.')
->middleware('permission:azmayesh-management')
->controller(AzmayeshController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/{azmayesh}', 'show')->name('show');
Route::post('/store', 'store')->name('store');
Route::post('/update/{azmayesh}', 'update')->name('update');
Route::post('/delete/{azmayesh}', 'destroy')->name('delete');
});
Route::post('logout', LogoutController::class)->name('logout');
Route::prefix('road_items')
->name('road_items.')
->group(function () {
Route::prefix('operator')
->name('operator.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadItem\OperatorController::class)
->group(function () {
Route::get('/', 'index')->middleware('permission:create-road-item')->name('index');
Route::get('/excel', 'excel')->name('excel');
Route::post('/', 'store')
->middleware(['permission:create-road-item', 'validate-store-access'])
->name('store');
Route::get('/{roadItemsProject}', 'show')->name('show');
Route::post('/{roadItemsProject}', 'update')->name('update');
Route::delete('/{roadItemsProject}', 'destroy')->middleware('permission:delete-road-item')->name('destroy');
});
Route::prefix('supervisor')
->name('supervisor.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadItem\SupervisorController::class)
->middleware(['permission:show-road-item-supervise-cartable|show-road-item-supervise-cartable-province'])
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/excel', 'excel')->name('excel');
Route::post('/confirm/{roadItemsProject}', 'confirm')->name('confirm');
Route::post('/reject/{roadItemsProject}', 'reject')->name('reject');
Route::post('/restore/{roadItemsProject}', 'restore')->middleware('permission:restore-road-item')->name('restore');
});
Route::prefix('details')
->name('details.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadItem\DetailController::class)
->group(function () {
Route::get('/machines/{roadItemsProject}', 'machines')->name('machines');
Route::get('/rahdaran/{roadItemsProject}', 'rahdaran')->name('rahdaran');
Route::get('/files/{roadItemsProject}', 'files')->name('files');
});
Route::prefix('reports')
->name('reports.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadItem\ReportController::class)
->group(function () {
Route::get('/get_sub_items', 'getSubItems')->name('getSubItems');
Route::get('/country_activity_per_sub_item', 'countryActivityPerSubItem')->name('countryActivityPerSubItem');
Route::get('/province_activity_per_sub_item', 'provinceActivityPerSubItem')->name('provinceActivityPerSubItem');
Route::get('/country_activity_per_item', 'countryActivityPerItem')->name('countryActivityPerItem');
Route::get('/province_activity_per_item', 'provinceActivityPerItem')->name('provinceActivityPerItem');
Route::get('/country_activity_excel_per_item', 'countryActivityExcelPerItem')->name('countryActivityExcelPerItem');
Route::get('/province_activity_excel_per_item', 'provinceActivityExcelPerItem')->name('provinceActivityExcelPerItem');
Route::get('/country_activity_excel_per_sub_item', 'countryActivityExcelPerSubItem')->name('countryActivityExcelPerSubItem');
Route::get('/province_activity_excel_per_sub_item', 'provinceActivityExcelPerSubItem')->name('provinceActivityExcelPerSubItem');
Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap');
Route::get('/show_on_map/{roadItemsProject}', 'showOnMap')->name('showOnMap');
});
Route::prefix('webservice')
->name('webservice.')
->controller(RoadItemController::class)
->group(function () {
Route::get('/', 'getRoadItems')->name('getRoadItem');
});
});
Route::prefix('cmms_machines')
->name('cmms_machines.')
->controller(CMMSMachinesController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/list', 'list')->name('list');
Route::get('/search', 'search')->name('search');
Route::get('/car_types', 'carTypes')->name('carTypes');
Route::post('/{machine}', 'update')->name('update')->middleware('permission:update-machine');
});
Route::prefix('rahdaran')
->name('rahdaran.')
->middleware('permission:manage-rahdaran-province|manage-rahdaran-edareh|manage-rahdaran-country')
->controller(RahdaranController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/list', 'list')->name('list');
Route::get('/search', 'search')->name('search');
Route::post('/', 'store')->name('store');
Route::get('/{rahdaran}', 'show')->name('show');
Route::post('/{rahdaran}', 'update')->name('update');
Route::delete('/{rahdaran}', 'destroy')->name('destroy');
});
Route::prefix('fms_vehicle')
->name('fmsVehicle.')
->controller(FMSVehicleManagementController::class)
->group(function () {
Route::post('/get_activity', 'getActivity')->name('getActivity');
});
Route::prefix('observed_items')
->name('observedItem.')
->controller(ObservedItemController::class)
->group(function () {
Route::post('/', 'store')->name('store');
Route::get('/filter', 'filter')->name('filter');
Route::get('/{observedItem}', 'show')->name('show');
});
Route::prefix('road_patrols')
->group(function () {
Route::prefix('details')
->name('details.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadPatrol\DetailController::class)
->group(function () {
Route::get('/{roadPatrol}', 'show')->name('show');
Route::get('/machines/{roadPatrol}', 'machines')->name('machines');
Route::get('/rahdaran/{roadPatrol}', 'rahdaran')->name('rahdaran');
});
Route::prefix('operator')
->name('operator.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController::class)
->group(function () {
Route::get('/', 'index')->middleware('permission:add-road-patrol')->name('index');
Route::get('/excel', 'excel')->name('excel');
Route::post('/delete/{roadPatrol}', 'delete')
->middleware('permission:partial-delete-road-patrol|complete-delete-road-patrol')
->name('delete');
Route::post('/store', 'store')
->middleware(['permission:add-road-patrol', 'validate-store-access'])
->name('store');
});
Route::prefix('report')
->name('report.')
->controller(ReportController::class)
->group(function () {
Route::get('/country_activity', 'countryPatrolActivity')->name('countryPatrolActivity');
Route::get('/province_activity', 'provincePatrolActivity')->name('provincePatrolActivity');
Route::get('/country_activity_excel', 'countryActivityExcel')->name('countryActivityExcel');
Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel');
Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap');
Route::get('/show_on_map/{roadPatrol}', 'showOnMap')->name('showOnMap');
Route::get('/{roadPatrol}', 'getReport')->name('getReport');
});
Route::prefix('supervisor')
->name('supervisor.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadPatrol\SupervisorController::class)
->group(function () {
Route::get('/','index')
->middleware(['permission:show-road-patrol-supervise-cartable|show-road-patrol-supervise-cartable-province'])
->name('index');
Route::get('/excel', 'excel')->name('excel');
});
});
Route::prefix('damages')
->name('damages.')
->middleware('permission:manage-damage')
->controller(DamageManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/list', 'list')->name('list')->withoutMiddleware('permission:manage-damage');
Route::post('/', 'store')->name('store');
Route::get('/excel', 'excel')->name('excel');
Route::get('/{damage}', 'show')->name('show');
Route::post('/{damage}', 'update')->name('update');
Route::post('/activate/{damage}', 'activate')->name('activate');
});
Route::prefix('receipts')
->name('receipts.')
->controller(AccidentReceiptController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/excel_report', 'excelReport')->name('excelReport');
Route::post('/', 'store')->name('store');
Route::get('/accident_types', 'accidentTypes')->name('accidentTypes');
Route::get('/{accident}', 'show')->name('show');
Route::post('/{accident}', 'update')->name('update');
Route::delete('/{accident}', 'destroy')->name('destroy');
Route::get('/generate_insurance_letter/{accident}', 'generateInsuranceLetter')->name('generateInsuranceLetter');
Route::post('/confirm_payment_info/{accident}', 'confirmPaymentInfo')->name('confirmPaymentInfo');
Route::get('/submit_invoice/{accident}', 'submitInvoice')->name('submitInvoice');
Route::get('/check_payment_status/{accident}', 'checkPaymentStatus')->name('checkPaymentStatus');
Route::get('/generate_police_document/{accident}', 'generatePoliceDocument')->name('generatePoliceDocument');
Route::get('/send_sms_again/{accident}', 'sendSmsAgain')->name('sendSmsAgain');
Route::post('change_status/{accident}', 'changeStatus')->name('changeStatus');
});
Route::prefix('receipt_reports')
->name('receiptReports.')
->controller(AccidentReceiptReportController::class)
->group(function () {
Route::get('/country_report', 'countryReport')->name('countryReport');
Route::get('/province_report', 'provinceReport')->name('provinceReport');
Route::get('/country_excel_report', 'countryExcelReport')->name('countryExcelReport');
Route::get('/province_excel_report', 'provinceExcelReport')->name('provinceExcelReport');
});
Route::prefix('road_observations')
->name('roadObservations.')
->group(function () {
Route::name('operator.')
->controller(\App\Http\Controllers\V3\Dashboard\RoadObservation\OperatorController::class)
->group(function () {
Route::get('operator/cartable','cartableIndex')->name('cartableIndex')->middleware('permission:show-fast-react-edarate-shahri');
Route::get('operator/report','cartableReport')->name('cartableReport')->middleware('permission:show-fast-react-edarate-shahri');
Route::get('/complaints_index', 'complaintsIndex')
->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react')
->name('complaintsIndex');
Route::get('/complaints_report', 'complaintsReport')->name('complaintsReport')
->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react');
Route::post('operator/register/{roadObserved}', 'register')
->middleware('permission:show-fast-react-edarate-shahri')
->name('register');
Route::post('operator/modify_registration/{roadObserved}', 'modifyRegistration')
->middleware('permission:show-fast-react-edarate-shahri')
->name('modifyRegistration');
Route::post('/refer/{roadObserved}', 'refer')
->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react')
->name('refer');
Route::get('/refer_list/{roadObserved}', 'referList')
->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react')
->name('referList');
Route::get('/{roadObserved}', 'show')->name('show');
});
Route::name('supervisor.')
->prefix('supervisor')
->controller(\App\Http\Controllers\V3\Dashboard\RoadObservation\SupervisorController::class)
->group(function () {
Route::get('/index', 'index')->name('index')->middleware('permission:show-fast-react-province|show-fast-react');
Route::post('/verify/{roadObserved}', 'verify')->name('verify');
Route::get('/report', 'report')->name('report')->middleware('permission:show-fast-react-province|show-fast-react');
Route::post('/restore/{roadObserved}', 'restore')->middleware('permission:restore-fast-react')->name('restore');
});
Route::name('report.')
->prefix('report')
->controller(\App\Http\Controllers\V3\Dashboard\RoadObservation\ReportController::class)
->group(function () {
Route::get('/index', 'index')->name('index')->middleware('permission:show-fast-react-province|show-fast-react');
Route::get('/excel', 'excel')->name('excel')->middleware('permission:show-fast-react-province|show-fast-react');
Route::get('/map', 'map')->name('map');
Route::get('/country_activity', 'countryActivity')->name('countryActivity');
Route::get('/province_activity', 'provinceActivity')->name('provinceActivity');
Route::get('/country_activity_excels', 'countryActivityExcel')->name('countryExcelActivity');
Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceExcelActivity');
});
});
Route::prefix('log_list')
->name('logList.')
->middleware('permission:manage-log-list')
->controller(LogListManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/list', 'list')->name('list');
Route::post('/', 'store')->name('store');
Route::get('/{logList}', 'show')->name('show');
Route::post('/{logList}', 'update')->name('update');
Route::delete('/{logList}', 'destroy')->name('destroy');
});
Route::prefix('safety_and_privacy')
->name('SafetyAndPrivacy.')
->group(function () {
Route::name('operator.')
->controller(OperatorController::class)
->group(function () {
Route::get('operator', 'index')->name('index')
->middleware('permission:show-safety-and-privacy-operator-cartable-edarate-shahri');
Route::get('operator/excel_report', 'excelReport')->name('excelReport')
->middleware('permission:show-safety-and-privacy-operator-cartable-edarate-shahri');
Route::post('operator/first_step_store', 'firstStepStore')->name('firstStepStore')->middleware(['validate-store-access', 'permission:add-safety-and-privacy']);
Route::get('/sub_items', 'subItems')->name('subItems');
Route::get('/map', 'map')->name('map');
Route::post('operator/second_step_store/{safetyAndPrivacy}', 'secondStepStore')->name('secondStepStore')->middleware(['validate-store-access','permission:add-safety-and-privacy','check-axis-type']);
Route::post('operator/third_step_store/{safetyAndPrivacy}', 'thirdStepStore')->name('thirdStepStore')->middleware(['validate-store-access','permission:add-safety-and-privacy','check-axis-type']);
Route::post('operator/{safetyAndPrivacy}', 'update')->name('update');
Route::get('operator/{safetyAndPrivacy}', 'show')->name('show');
Route::delete('operator/{safetyAndPrivacy}', 'destroy')->name('destroy')->middleware('permission:delete-safety-and-privacy');
Route::get('/deserialize/{safetyAndPrivacy}', 'deserialize')->name('deserialize');
Route::post('operator/finish/{safetyAndPrivacy}', 'finish')->middleware(['check-axis-type'])->name('finish');
});
Route::prefix('supervisor')
->name('supervisor.')
->controller(SupervisorController::class)
->group(function () {
Route::get('/', 'index')->name('index')
->middleware('permission:show-safety-and-privacy-operator-cartable|show-safety-and-privacy-operator-cartable-province');
Route::get('/excel_report', 'excelReport')->name('excelReport')
->middleware('permission:show-safety-and-privacy-operator-cartable|show-safety-and-privacy-operator-cartable-province');
Route::post('/confirm/{safetyAndPrivacy}', 'confirm')->name('confirm');
Route::post('/reject/{safetyAndPrivacy}', 'reject')->name('reject');
});
Route::prefix('operator_report')
->name('operatorReport.');
Route::prefix('access_road')
->name('accessRoad.')
->controller(AccessRoadActivityController::class)
->group(function () {
Route::get('/country_activity', 'countryActivity')->name('countryActivity');
Route::get('/province_activity', 'provinceActivity')->name('provinceActivity');
Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity');
Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity');
});
Route::prefix('construction_activity')
->name('constructionActivity.')
->controller(ConstructionActivityController::class)
->group(function () {
Route::get('/country_activity', 'countryActivity')->name('countryActivity');
Route::get('/province_activity', 'provinceActivity')->name('provinceActivity');
Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity');
Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity');
});
Route::prefix('utility_passing_activity')
->name('utilityPassingActivity.')
->controller(UtilityPassingActivityController::class)
->group(function () {
Route::get('/country_activity', 'countryActivity')->name('countryActivity');
Route::get('/province_activity', 'provinceActivity')->name('provinceActivity');
Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity');
Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity');
});
});
Route::prefix('otp')
->name('otp.')
->controller(OtpManagementController::class)
->group(function () {
Route::post('/get_token', 'getOtpToken')->name('getOtpToken');
});
Route::name('items.')
->controller(ItemsManagementController::class)
->group(function () {
Route::get('/items', 'getItems')->name('list');
Route::get('/sub_items/{item}', 'getSubItems')->name('subItems');
});
Route::prefix('permissions')
->name('permissions.')
->middleware('permission:manage-permissions')
->controller(PermissionManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/', 'store')->name('store');
Route::get('/{permission}', 'show')->name('show');
Route::post('/{permission}', 'update')->name('update');
Route::delete('/{permission}', 'destroy')->name('destroy');
});
Route::get('/notifications', NotificationController::class)->name('notifications');
Route::prefix('road_maintenance_station')
->name('roadMaintenanceStation.')
->controller( RoadMaintenanceStationController::class)
->group(function () {
Route::get('/', 'index')->name('index')->middleware('permission:show-tollhouse|show-tollhouse-province');
Route::post('/', 'store')->name('store');
Route::get('/map', 'map')->name('map');
Route::get('/search_by_city', 'findByCity')->name('findByCity');
Route::get('/images/{rahdariPoint}', 'images')->name('images');
Route::get('/{rahdariPoint}', 'show')->name('show')->middleware('permission:show-tollhouse|show-tollhouse-province');
Route::post('/{rahdariPoint}', 'update')->name('update')->middleware('permission:edit-tollhouse|edit-tollhouse-province');
Route::delete('/{rahdariPoint}', 'destroy')->name('destroy')->middleware('permission:delete-tollhouse|delete-tollhouse-province');
});
Route::prefix('missions')
->name('missions.')
->group(function () {
Route::name('requestPortal.')
->prefix('request_portal')
->middleware('permission:manage-request-portal-city|manage-request-portal-province|manage-request-portal-country|manage-request-portal-station')
->controller(RequestPortalController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/violations', 'violations')->name('violations');
Route::post('/', 'store')->name('store');
Route::post('/clarify_unauthorized_exit/{violation}','clarifyUnauthorizedExit')->name('clarifyUnauthorizedExit');
Route::post('/continue/{mission}','continueMission')->name('continueMission');
Route::get('/{mission}', 'show')->name('show');
Route::post('/{mission}', 'update')->name('update');
Route::delete('/{mission}', 'destroy')->name('destroy');
Route::post('/change_state/{mission}', 'changeState')->name('changeState')->middleware('permission:mission-change-state');
});
Route::name('transportationUnit.')
->prefix('transportation_unit')
->middleware('permission:manage-transportation-unit-city|manage-transportation-unit-province|manage-transportation-unit-country|manage-transportation-unit-station')
->controller(TransportationUnitController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/allocate/{mission}', 'allocate')->name('allocate');
Route::post('/deallocate/{mission}', 'deallocate')->name('deallocate');
Route::post('/machines_list/{mission}', 'machinesList')->name('machinesList');
});
Route::name('controlUnit.')
->prefix('control_unit')
->middleware('permission:manage-control-unit-city|manage-control-unit-province|manage-control-unit-country|manage-control-unit-station')
->controller(ControlUnitController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/start/{mission}', 'start')->name('start');
Route::post('/finish/{mission}', 'finish')->name('finish');
});
Route::prefix('details')
->name('details.')
->controller(DetailController::class)
->group(function () {
Route::get('/machines/{mission}', 'machines')->name('machines');
Route::get('/rahdaran/{mission}', 'rahdaran')->name('rahdaran');
});
Route::prefix('violation_management')
->name('violationManagement.')
->middleware('permission:manage-violation-city|manage-violation-province|manage-violation-country|manage-violation-station')
->controller(ViolationManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/', 'store')->name('store');
Route::get('/{violation}', 'show')->name('show');
Route::post('/{violation}', 'update')->name('update');
Route::delete('/{violation}', 'destroy')->name('destroy');
});
Route::prefix('report_violation')
->name('reportsViolation.')
->middleware(['permission:mission-report-province|mission-report-country'])
->controller(ReportViolationController::class)
->group(function () {
Route::get('/country_activity', 'countryActivity')->name('countryActivity');
Route::get('/province_activity', 'provinceActivity')->name('provinceActivity');
Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity');
Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity');
});
Route::prefix('report_taradod')
->name('reportsTaradod.')
->middleware(['permission:mission-report-province|mission-report-country'])
->controller(ReportTradodController::class)
->group(function () {
Route::get('/country_activity', 'countryActivity')->name('countryActivity');
Route::get('/province_activity', 'provinceActivity')->name('provinceActivity');
Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity');
Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity');
});
Route::prefix('report_machine')
->name('reportsMachine.')
->middleware(['permission:mission-report-province|mission-report-country'])
->controller(ReportMachineController::class)
->group(function () {
Route::get('/machines_activity', 'machinesActivity')->name('machinesActivity');
Route::get('/machines_activity_excel', 'machinesActivityExcel')->name('machinesActivityExcel');
Route::get('/machine_types_activity', 'machineTypesActivity')->name('machineTypesActivity');
Route::get('/machine_types_activity_excel', 'machineTypesActivityExcel')->name('machineTypesActivityExcel');
Route::get('/machine_drivers_activity', 'machineDriversActivity')->name('machineDriversActivity');
Route::get('/machine_drivers_activity_excel', 'machineDriversActivityExcel')->name('machineDriversActivityExcel');
Route::get('/machine_details_report/{machine_id}', 'machineDetailsReport')->name('machineDetailsReport');
Route::get('/machine_details_report_excel/{machine_id}', 'machineDetailsReportExcel')->name('machineDetailsReportExcel');
Route::get('/machine_type_details_report/{car_type}', 'machineTypeDetailsReport')->name('machineTypeDetailsReport');
Route::get('/machine_type_details_report_excel/{car_type}', 'machineTypeDetailsReportExcel')->name('machineTypeDetailsReportExcel');
Route::get('/machine_driver_details_report/{driver_id}', 'machineDriverDetailsReport')->name('machineDriverDetailsReport');
Route::get('/machine_driver_details_report_excel/{driver_id}', 'machineDriverDetailsReportExcel')->name('machineDriverDetailsReportExcel');
});
});
Route::prefix('harim')
->name('harim.')
->group(function () {
Route::prefix('detail')
->name('detail.')
->controller(\App\Http\Controllers\V3\Dashboard\Harim\DetailController::class)
->group(function () {
Route::get('/states', 'states')->name('states');
Route::get('/histories/{harim}', 'histories')->name('histories');
});
Route::prefix('province_office')
->name('province_office.')
->controller(ProvinceOfficeController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/feedback/{harim}', 'feedback')->name('feedback');
Route::get('/{harim}', 'show')->name('show');
});
Route::prefix('harim_office')
->name('harim_office.')
->controller(HarimOfficeController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/reject_request/{harim}', 'rejectRequest')->name('rejectRequest');
Route::post('/refer_request/{harim}', 'referRequest')->name('referRequest');
Route::post('/need_road_access/{harim}', 'needRoadAccess')->name('needRoadAccess');
Route::post('/without_road_access/{harim}', 'withoutRoadAccess')->name('withoutRoadAccess');
Route::post('/file_accepted/{harim}', 'fileAccepted')->name('fileAccepted');
Route::post('/file_rejected/{harim}', 'fileRejected')->name('fileRejected');
Route::get('/{harim}', 'show')->name('show');
Route::post('/computing_payment/{harim}', 'computingPayment')->name('computingPayment');
Route::post('/refer_to_city/{harim}', 'referToCity')->name('referToCity');
});
Route::prefix('technical_deputy')
->name('technical_deputy.')
->controller(TechnicalDeputyController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/confirm_request/{harim}', 'confirmRequest')->name('confirmRequest');
Route::post('/refer_request/{harim}', 'referRequest')->name('referRequest');
Route::post('/confirm_road_access/{harim}', 'confirmRoadAccess')->name('confirmRoadAccess');
Route::post('/refer_road_access/{harim}', 'referRoadAccess')->name('referRoadAccess');
Route::get('/{harim}', 'show')->name('show');
Route::post('/refer_payment/{harim}', 'referPayment')->name('referPayment');
Route::post('/confirm_payment/{harim}', 'confirmPayment')->name('confirmPayment');
});
Route::prefix('general_manager')
->name('general_manager.')
->controller(GeneralManagerController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/reject_request/{harim}', 'rejectRequest')->name('rejectRequest');
Route::post('/refer_request/{harim}', 'referRequest')->name('referRequest');
Route::post('/refer_file/{harim}', 'referFile')->name('referFile');
Route::post('/confirm_road_access_need/{harim}', 'confirmRoadAccessNeed')->name('confirmRoadAccessNeed');
Route::post('/confirm_no_road_access_need/{harim}', 'confirmNoRoadAccessNeed')->name('confirmNoRoadAccessNeed');
Route::post('/confirm_road_access_edit_need/{harim}', 'confirmRoadAccessEditNeed')->name('confirmRoadAccessEditNeed');
Route::post('/confirm_guarantee_letter_need/{harim}', 'confirmGuaranteeLetterNeed')->name('confirmGuaranteeLetterNeed');
Route::get('/{harim}', 'show')->name('show');
Route::post('/refer_payment/{harim}', 'referPayment')->name('referPayment');
Route::post('/confirm_payment/{harim}', 'confirmPayment')->name('confirmPayment');
});
});
Route::prefix('user_management')
->name('user_management.')
->controller(UserManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index')->middleware(
'permission:full-user-management|limited-user-management');
Route::post('/limit_store', 'limitStore')->name('limitStore');
Route::post('/full_store', 'fullStore')->name('fullStore');
Route::get('/{user}', 'show')->name('show');
Route::get('/user_permissions/{user}', 'userPermissions')->name('userPermissions');
Route::post('/{user}', 'update')->name('update');
Route::delete('/{user}', 'destroy')->name('destroy');
Route::post('/change_password/{user}', 'changePassword')->name('changePassword');
Route::post('/give_permissions_to/{user}', 'givePermissionsTo')->name('givePermissionsTo');
Route::post('/give_role_to_user/{user}','giveRoleToUser')->name('giveRoleToUser');
Route::post('/change_confirmed_status/{user}', 'changeConfirmedStatus')->name('changeConfirmedStatus');
Route::post('/change_user_enabeld/{user}','changeUserEnabeld')->name('changeUserEnabeld')->middleware(
'permission:full-user-management|limited-user-management');
Route::get('/activity_report', 'activityReport')->name('activityReport');
Route::get('/userActivityLogs', 'userActivityLogs')->name('userActivityLogs');
Route::get('/give_permissions_to', 'givePermissionsTo')->name('givePermissionsTo');
Route::get('/get_user_permissions', 'getUserPermissions')->name('getUserPermissions');
Route::get('/get_user_summary_report', 'getUserSummaryReport')->name('getUserSummaryReport');
Route::get('/print_group', 'printGroup')->name('printGroup');
Route::get('/user_permission', 'userPermission')->name('userPermission');
Route::get('/assign_permission', 'assignPermission')->name('assignPermission');
});
Route::prefix('role')
->name('role.')
->controller(RoleManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/', 'store')->name('store');
Route::get('/{role}', 'show')->name('show');
Route::post('/{role}', 'update')->name('update');
Route::delete('/{role}', 'destroy')->name('destroy');
});
Route::get('/test', function () {
$csvExporter = new \Laracsv\Export();
$csvExporter->build(\App\Models\User::all(), ['id' => 'کد یکتا', 'username' => 'نام کاربری'])->download();
});
Route::prefix('provinces')
->name('provinces.')
->controller(ProvinceController::class)
->group(function () {
Route::get('/list', 'list')->name('list');
});
Route::prefix('cities')
->name('cities.')
->controller(CityController::class)
->group(function () {
Route::get('/list', 'list')->name('list');
});