You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

626 lines
30 KiB

<?php
use App\Http\Controllers\Api\{
AuthController,
MenuController,
RoleMenuController,
DashboardBoDController,
RoleController,
ProjectDokumenController,
ActivityDokumenController,
ProjectController,
ProjectCharterController,
DivisiController,
ConfigAlertController,
ConfigAlertUserController,
HumanResourceController,
ProjectRoleController,
ProjectTypeController,
ProjectPhaseController,
UserProyekController,
RequestMaterialController,
MaterialProjectController,
MaterialResourceController,
ToolsProjectController,
ToolsResourceController,
ToolsRequestController,
VersionGanttController,
UserToVersionGanttController,
UserToActivityController,
ActivityController,
LinkController,
TemplateGanttController,
CommentActivityController,
PresenceController,
AbsentController,
AssignMaterialController,
AssignToolsController,
ChecklistK3Controller,
FolderDocumentProyekController,
HierarchyFtthController,
HolidayController,
ImageController,
OfficeHoursController,
PanicButtonController,
ProjectApprovalController,
ProjectCommentController,
ProjectMileStoneController,
ProjectParticipantsController,
ProjectToChecklistK3Controller,
RateSallaryController,
ReportActivityController,
ReportActivityMaterialController,
ReportK3Controller,
ReportK3DetailController,
SatuanController,
ShiftController,
ShowHideColumnController,
UserMonthlyShiftController,
UserToProyekController,
UserToShiftController,
WaypointController
};
use Illuminate\Support\Facades\Route;
// cors Middleware
Route::middleware('cors')->group(function () {
// Authentication
Route::post('/login', AuthController::class);
// Menu Route
Route::group(['prefix' => 'menu', 'controller' => MenuController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::post('/search', 'search');
Route::get('/management/{id}', 'listMenu');
Route::get('/list', 'list');
});
// Role Menu Route
Route::group(['prefix' => 'role-menu', 'controller' => RoleMenuController::class], function () {
Route::post('/add', 'add');
Route::get('/get-role/{id}', 'listMenu');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::delete('/delete-byrole/{id}', 'deleteByRole');
Route::post('/search', 'search');
});
// auth widdleware
Route::middleware('auth')->group(function () {
// Dasboard Route
Route::group(['prefix' => 'dashboard', 'controller' => DashboardBoDController::class], function () {
Route::get('/get-company-cashflow[/{year}]', 'getCompanyCashFlow'); // project expenditure
Route::get('/get-invoice-outstanding[/{year}]', 'getInvoiceOutstanding'); // project invoice vs cash in
Route::get('/get-total-project-per-schedule-health[/{year}]', 'getTotalProjectPerScheduleHealth');
Route::get('/get-total-project-per-budget-health[/{year}]', 'getTotalProjectPerBudgetHealth');
Route::get('/get-total-project-schedule-health-per-division[/{year}]', 'getTotalProjectScheduleHealthPerDivision');
Route::get('/get-total-project-budget-health-per-division[/{year}]', 'getTotalProjectBudgetHealthPerDivision');
Route::get('/get-total-project-per-phase[/{year}]', 'getTotalProjectPerPhase');
Route::get('/get-total-project-per-division[/{year}]', 'getTotalProjectPerDivision');
Route::get('/get-total-project-value-per-division[/{year}]', 'getTotalProjectValuePerDivision');
Route::get('/get-detail-expenditure[/{year}]', 'getDetailExpenditure');
});
// Role Route
Route::group(['prefix' => 'role', 'controller' => RoleController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// document-project Route
Route::group(['prefix' => 'document-project', 'controller' => ProjectDokumenController::class], function () {
Route::post('/upload', 'uploadProjectDokumen');
Route::get('/get/{id}', 'dokumenByProyekId');
Route::delete('/delete/{id}', 'delete');
Route::post('/search', 'searchDocProject');
Route::get('/download/{id}', 'downloadDokumen');
});
// document-activity Route
Route::group(['prefix' => 'document-activity', 'controller' => ActivityDokumenController::class], function () {
Route::post('/upload', 'uploadProjectDokumen');
Route::get('/get/{id}', 'dokumenByActivityId');
Route::delete('/delete/{id}', 'delete');
Route::post('/search', 'searchDocProject');
Route::get('/download/{id}', 'downloadDokumen');
});
// Project Route
Route::group(['prefix' => 'project', 'controller' => ProjectController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::put('/update/{id}', 'update');
Route::get('/edit/{id}', 'edit');
Route::get('/detail/{id}', 'detail');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/set-baseline/{gantt_id}', 'setBaseline');
Route::get('/synchronize-report/{gantt_id}', 'synchronizeReport');
Route::get('/manpower/{proyek_id}', 'getManpower');
Route::get('/manpower/assigned/{gantt_id}', 'getAssignedHR');
Route::post('/get-s-curve', 'getSCurve');
Route::post('/calculate-s-curve', 'calculateSCurve');
Route::post('/s-curve-command', 'sCurveCommand');
Route::post('/get-linear-s-curve', 'getLinearSCurve');
Route::post('/get-overdue-activities', 'getOverdueActivities');
Route::post('/get-integration-invoice', 'getInvoiceIntegration');
Route::post('/get-report-distribution', 'getReportDistribution');
});
// project-charter Route
Route::group(['prefix' => 'project-charter', 'controller' => ProjectCharterController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::put('/update/{id}', 'update');
});
// divisi Route
Route::group(['prefix' => 'divisi', 'controller' => DivisiController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// config-alert Route
Route::group(['prefix' => 'config-alert', 'controller' => ConfigAlertController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// config-alert-to-user Route
Route::group(['prefix' => 'config-alert-to-user', 'controller' => ConfigAlertUserController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
});
Route::get('config-alert/get-user/{id}', [ConfigAlertUserController::class, 'getConfigUser']);
// human-resource Route
Route::group(['prefix' => 'human-resource', 'controller' => HumanResourceController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/select', 'select');
Route::post('/check-old-password/{id}', 'checkOldPassword');
Route::get('/sync', 'sync');
});
// project-role
Route::group(['prefix' => 'project-role', 'controller' => ProjectRoleController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/select', 'select');
});
// project-type Route
Route::group(['prefix' => 'project-type', 'controller' => ProjectTypeController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// project-phase Route
Route::group(['prefix' => 'project-phase', 'controller' => ProjectPhaseController::class], function () {
Route::post('/search', 'search');
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// user-to-project Route
Route::post('/user-to-project/assign', [UserProyekController::class, 'assignUserProyek']);
// request-material Route
Route::group(['prefix' => 'request-material', 'controller' => RequestMaterialController::class], function () {
Route::post('/add', 'add');
Route::post('/search', 'search');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/get-material-integration', 'getMaterialIntegration');
Route::put('/update-warehouse-site/{id}', 'updateWarehouseSite');
});
// material-to-project Route
Route::post('/material-to-project/assign', [MaterialProjectController::class, 'assignMaterial']);
// material-resource Route
Route::group(['prefix' => 'material-resource', 'controller' => MaterialResourceController::class], function () {
Route::post('/add', 'add');
Route::post('/search', 'search');
Route::get('/update/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/select', 'select');
});
// tools-to-project Route
Route::group(['prefix' => 'tools-to-project', 'controller' => ToolsProjectController::class], function () {
Route::post('/assign', 'assignTools');
Route::get('/search', 'searchTools');
});
// tools-resource Route
Route::group(['prefix' => 'tools-resource', 'controller' => ToolsResourceController::class], function () {
Route::post('/add', 'add');
Route::post('/search', 'search');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/select', 'select');
});
// req-tools Route
Route::group(['prefix' => 'req-tools', 'controller' => ToolsRequestController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// Version Gantt Route
Route::group(['prefix' => 'version-gantt', 'controller' => VersionGanttController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// user-to-version-gantt Route
Route::group(['prefix' => 'user-to-version-gantt', 'controller' => UserToVersionGanttController::class], function () {
Route::post('/add', 'UserToVersionGanttController@add');
Route::post('/add-multiple', 'UserToVersionGanttController@addMultiple');
Route::get('/edit/{id}', 'UserToVersionGanttController@edit');
Route::put('/update/{id}', 'UserToVersionGanttController@update');
Route::post('/search', 'UserToVersionGanttController@search');
Route::delete('/delete/{id}', 'UserToVersionGanttController@delete');
Route::get('/list', 'UserToVersionGanttController@list');
Route::get('/get-by-gantt/{gantt_id}', 'UserToVersionGanttController@getByUserGantt');
});
// user-to-activity Route
Route::group(['prefix' => 'user-to-activity', 'controller' => UserToActivityController::class], function () {
Route::post('/add', 'add');
Route::post('/add-multiple', 'addMultiple');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::post('/list-filtered', 'listFiltered');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/datatables', 'datatables');
});
Route::controller(ActivityController::class)->group(function () {
// sumVolActualM Route
Route::get('/sumVolActualM/{id}', 'sumVolumeActualMaterial');
// activity Route
Route::prefix('activity')->group(function () {
Route::get('/{id}/{proyek_id}/get', 'getByGanttId');
Route::get('/search', 'search');
Route::post('/import', 'import');
Route::post('/import-update', 'importUpdate');
Route::post('/import-old', 'importOld');
});
// task Route
Route::prefix('task')->group(function () {
Route::post('', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/{id}', 'update');
Route::put('/update-regular/{id}', 'updateRegular');
Route::delete('/{id}', 'delete');
Route::get('/get-update/{id}', 'getUpdate');
});
Route::post('/tmp-import/upload', 'uploadTmpImport');
});
// link Route
Route::group(['prefix' => 'link', 'controller' => LinkController::class], function () {
Route::post('', 'add');
Route::put('/{id}', 'update');
Route::delete('/{id}', 'delete');
});
// template-gantt Route
Route::group(['prefix' => 'template-gantt', 'controller' => TemplateGanttController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/get-tree/{id}', 'getTreeByTypeProject');
});
// comment-activity Route
Route::group(['prefix' => 'comment-activity', 'controller' => CommentActivityController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
Route::group(['prefix' => 'presence', 'controller' => PresenceController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/clockinout/{id}', 'clockinout');
Route::post('/reportk3', 'reportK3');
Route::get('/bulk-update-location', 'bulkUpdateLocation');
});
// permit Route
Route::group(['prefix' => 'permit', 'controller' => AbsentController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// assign-tools Route
Route::group(['prefix' => 'assign-tools', 'controller' => AssignToolsController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/datatables', 'datatables');
});
// assign-material Route
Route::group(['prefix' => 'assign-material', 'controller' => AssignMaterialController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/datatables', 'datatables');
Route::get('/datatablesForReportActivity', 'datatablesForReportActivity');
Route::post('/ForReportActivityByMaterial', 'ForReportActivityByMaterial');
});
// image Route
Route::group(['prefix' => 'image', 'controller' => ImageController::class], function () {
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::delete('/delete/{id}/{category}', 'deleteByRef');
Route::post('/upload', 'uploadImage');
Route::get('/{id}/{category}', 'getByRefId');
});
// panic-button Route
Route::group(['prefix' => 'panic-button', 'controller' => PanicButtonController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// rate-sallary Route
Route::group(['prefix' => 'rate-sallary', 'controller' => RateSallaryController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// project-participants Route
Route::group(['prefix' => 'project-participants', 'controller' => ProjectParticipantsController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::delete('/delete-by-proyek/{id}', 'deleteByProyek');
Route::get('/list', 'list');
Route::get('/{where}/{val}', 'customWhere');
});
// project-approval Route
Route::group(['prefix' => 'project-approval', 'controller' => ProjectApprovalController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::delete('/delete-by-proyek/{id}', 'deleteByProyek');
Route::get('/list', 'list');
Route::get('/{where}/{val}', 'customWhere');
});
// project-milestone Route
Route::group(['prefix' => 'project-milestone', 'controller' => ProjectMileStoneController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::delete('/delete-by-proyek/{id}', 'deleteByProyek');
Route::get('/list', 'list');
Route::get('/select', 'select');
Route::get('/{where}/{val}', 'customWhere');
});
// report-activity Route
Route::group(['prefix' => 'report-activity', 'controller' => ReportActivityController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::post('/search-point', 'searchPoint');
Route::get('/datatables', 'datatables');
});
// report-activity-material Route
Route::group(['prefix' => 'report-activity-material', 'controller' => ReportActivityMaterialController::class], function () {
Route::post('/add', 'add');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/datatables', 'datatables');
Route::post('/update-status', 'updateStatusStartFinish');
});
// waypoint Route
Route::group(['prefix' => 'waypoint', 'controller' => WaypointController::class], function () {
Route::post('/add', 'add');
Route::post('/add-bulk', 'addBulk');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// holiday Route
Route::group(['prefix' => 'holiday', 'controller' => HolidayController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/datatables', 'datatables');
});
// satuan Route
Route::group(['prefix' => 'satuan', 'controller' => SatuanController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// checklist-k3 Route
Route::group(['prefix' => 'checklist-k3', 'controller' => ChecklistK3Controller::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// report-k3 Route
Route::group(['prefix' => 'report-k3', 'controller' => ReportK3Controller::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// report-k3-detail Route
Route::group(['prefix' => 'report-k3-detail', 'controller' => ReportK3DetailController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// user-to-proyek Route
Route::group(['prefix' => 'user-to-proyek', 'controller' => UserToProyekController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/select', 'select');
Route::get('/get-employee-integration', 'getEmployeeIntegration');
});
// folder-document-proyek Route
Route::group(['prefix' => 'folder-document-proyek', 'controller' => FolderDocumentProyekController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
Route::get('/get-tree/{id}', 'getTree');
});
// office-hours Route
Route::group(['prefix' => 'office-hours', 'controller' => OfficeHoursController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// gantt-show-hide Route
Route::group(['prefix' => 'gantt-show-hide', 'controller' => ShowHideColumnController::class], function () {
Route::get('/get-by-gantt/{gantt_id}', 'getByUserGantt');
Route::post('/add', 'add');
Route::post('/update/{gantt_id}', 'update');
Route::get('/get-column-by-type/{type}', 'getColumnByType');
});
// shift Route
Route::group(['prefix' => 'shift', 'controller' => ShiftController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// user-monthly-shift Route
Route::group(['prefix' => 'user-monthly-shift', 'controller' => UserMonthlyShiftController::class], function () {
Route::post('/add', 'add');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::delete('/delete-at/{yyyymm}', 'deleteYYYYMM');
Route::get('/list', 'list');
Route::post('/import', 'import');
Route::get('/list/{yyyymm}', 'listYYYYMM');
});
// user-to-shift
Route::group(['prefix' => 'user-to-shift', 'controller' => UserToShiftController::class], function () {
Route::post('/add', 'add');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// control-monitoring & currency Route
Route::post('/control-monitoring/search', [ControlMonitoringController::class, 'search']);
Route::get('/currency/list', [CurrencyController::class, 'list']);
// project-to-checklist-k3 Route
Route::group(['prefix' => 'project-to-checklist-k3', 'controller' => ProjectToChecklistK3Controller::class], function () {
Route::post('/add', 'add');
Route::post('/add-multiple', 'addMultiple');
Route::get('/edit/{id}', 'edit');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
Route::delete('/delete/{id}', 'delete');
Route::get('/list', 'list');
});
// project-comment Route
Route::group(['prefix' => 'project-comment', 'controller' => ProjectCommentController::class], function () {
Route::post('/add', 'add');
Route::put('/update/{id}', 'update');
Route::post('/search', 'search');
});
// hierarchy-ftths Route
Route::group(['prefix' => 'hierarchy-ftths', 'controller' => HierarchyFtthController::class], function () {
Route::get('', 'index');
Route::post('', 'store');
Route::post('/search', 'search');
Route::get('/{id}', 'show');
Route::put('/{id}', 'update');
Route::delete('/{id}', 'destroy');
Route::get('/tree/{project_id}', 'getTreeByProject');
Route::get('/tree-gantt/{gantt_id}', 'getTreeByGantt');
});
// map-monitoring Route
Route::post('/map-monitoring/search', [MapMonitoringController::class, 'search']);
}); // End Auth Middleware
}); // End cors Middleware