prefix('professional-project') ->group(function () { // Install Route::get('/install', [InstallController::class, 'index']); Route::post('/install', [InstallController::class, 'install']); Route::get('/install/uninstall', [InstallController::class, 'uninstall']); Route::get('/install/update', [InstallController::class, 'update']); // Projects Route::get('/projects', [ProjectController::class, 'index']); Route::get('/projects/create', [ProjectController::class, 'create']); Route::post('/projects', [ProjectController::class, 'store']); Route::get('/projects/{id}', [ProjectController::class, 'show']); Route::get('/projects/{id}/edit', [ProjectController::class, 'edit']); Route::put('/projects/{id}', [ProjectController::class, 'update']); Route::delete('/projects/{id}', [ProjectController::class, 'destroy']); Route::put('/projects/{id}/status', [ProjectController::class, 'postStatus']); Route::put('/projects/{id}/archive', [ProjectController::class, 'archive']); // Tasks Route::get('/tasks', [TaskController::class, 'index']); Route::get('/tasks/create', [TaskController::class, 'create']); Route::post('/tasks', [TaskController::class, 'store']); Route::get('/tasks/{id}/edit', [TaskController::class, 'edit']); Route::put('/tasks/{id}', [TaskController::class, 'update']); Route::delete('/tasks/{id}', [TaskController::class, 'destroy']); Route::post('/tasks/kanban-position', [TaskController::class, 'updateKanbanPosition']); Route::post('/tasks/dependency', [TaskController::class, 'storeDependency']); Route::delete('/tasks/dependency/{id}', [TaskController::class, 'destroyDependency']); Route::get('/tasks/milestones/{project_id}', [TaskController::class, 'getMilestonesByProject']); // Milestones Route::get('/projects/{project_id}/milestones', [MilestoneController::class, 'index']); Route::post('/milestones', [MilestoneController::class, 'store']); Route::put('/milestones/{id}', [MilestoneController::class, 'update']); Route::delete('/milestones/{id}', [MilestoneController::class, 'destroy']); // Gantt Route::get('/projects/{project_id}/gantt', [GanttController::class, 'index']); // Gantt API (session auth) Route::post('/gantt/task', [GanttApiController::class, 'storeTask']); Route::put('/gantt/task/{id}', [GanttApiController::class, 'updateTask']); Route::delete('/gantt/task/{id}', [GanttApiController::class, 'destroyTask']); Route::post('/gantt/link', [GanttApiController::class, 'storeLink']); Route::put('/gantt/link/{id}', [GanttApiController::class, 'updateLink']); Route::delete('/gantt/link/{id}', [GanttApiController::class, 'destroyLink']); // Task statuses Route::get('/task-statuses', [TaskStatusController::class, 'index']); Route::post('/task-statuses', [TaskStatusController::class, 'store']); Route::put('/task-statuses/{id}', [TaskStatusController::class, 'update']); Route::delete('/task-statuses/{id}', [TaskStatusController::class, 'destroy']); // Integrations Route::post('/integrations/essentials/todo/{task_id}', [IntegrationController::class, 'createEssentialsTodo']); Route::post('/integrations/essentials/reminder/{task_id}', [IntegrationController::class, 'createEssentialsReminder']); Route::post('/integrations/crm/follow-up/{task_id}', [IntegrationController::class, 'createCrmFollowUp']); });