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'); // 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'); });