Files
GSB-Construction/Modules/TaskManagement/routes/web.php
Ajjj ccbd23d474
Some checks failed
Tests / PHP 8.3 (push) Has been cancelled
Tests / PHP 8.4 (push) Has been cancelled
Tests / PHP 8.5 (push) Has been cancelled
feat: enhance module RBAC permissions, financial billing workflows, task evidence uploading, and role analytics
2026-08-13 18:46:26 +08:00

36 lines
2.6 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Modules\TaskManagement\Http\Controllers\TaskController;
use Modules\TaskManagement\Http\Controllers\TaskDelayController;
use Modules\TaskManagement\Http\Controllers\TaskImportController;
use Modules\TaskManagement\Http\Controllers\TaskMaterialController;
Route::middleware(['web', 'auth', 'permission:projects.access'])->group(function () {
// Tasks Index
Route::get('tasks', [TaskController::class, 'index'])->name('projects.tasks.index');
Route::post('tasks', [TaskController::class, 'store'])->name('projects.tasks.store');
Route::put('tasks/{task}', [TaskController::class, 'update'])->name('projects.tasks.update');
Route::delete('tasks/{task}', [TaskController::class, 'destroy'])->name('projects.tasks.destroy');
Route::patch('tasks/{task}/transition', [TaskController::class, 'transition'])->name('projects.tasks.transition');
Route::post('tasks/reorder', [TaskController::class, 'reorder'])->name('projects.tasks.reorder');
Route::post('tasks/{task}/evidence', [TaskController::class, 'uploadEvidence'])->name('projects.tasks.evidence.store');
Route::delete('tasks/{task}/evidence/{media}', [TaskController::class, 'deleteEvidence'])->name('projects.tasks.evidence.destroy');
// Task Import
Route::get('projects/{project}/tasks/template', [TaskImportController::class, 'template'])->name('projects.tasks.template');
Route::post('projects/{project}/tasks/import', [TaskImportController::class, 'import'])->name('projects.tasks.import');
// Task Materials
Route::post('projects/{project}/tasks/{task}/materials', [TaskMaterialController::class, 'store'])->name('projects.tasks.materials.store');
Route::post('projects/{project}/tasks/{task}/materials/bulk', [TaskMaterialController::class, 'storeBulk'])->name('projects.tasks.materials.storeBulk');
Route::put('projects/{project}/tasks/{task}/materials/{taskMaterial}', [TaskMaterialController::class, 'update'])->name('projects.tasks.materials.update');
Route::delete('projects/{project}/tasks/{task}/materials/{taskMaterial}', [TaskMaterialController::class, 'destroy'])->name('projects.tasks.materials.destroy');
// Task Delays
Route::post('projects/{project}/tasks/{task}/delays', [TaskDelayController::class, 'store'])->name('projects.tasks.delays.store');
Route::put('projects/{project}/tasks/{task}/delays/{delay}', [TaskDelayController::class, 'update'])->name('projects.tasks.delays.update');
Route::delete('projects/{project}/tasks/{task}/delays/{delay}', [TaskDelayController::class, 'destroy'])->name('projects.tasks.delays.destroy');
});