names('api.posts'); // Project Management API Route::apiResource('projects', ProjectController::class)->names('api.projects'); Route::get('/projects/{project}/tasks', [ProjectController::class, 'tasks'])->name('api.projects.tasks'); Route::get('/projects/{project}/ideas', [ProjectController::class, 'ideas'])->name('api.projects.ideas'); Route::apiResource('tasks', TaskController::class)->names('api.tasks'); Route::get('/tasks/{task}/comments', [TaskController::class, 'comments'])->name('api.tasks.comments'); Route::post('/tasks/{task}/status', [TaskController::class, 'changeStatus'])->name('api.tasks.status'); Route::apiResource('tasks.comments', TaskCommentController::class)->shallow()->names('api.task_comments'); // Ideas API Route::apiResource('ideas', \App\Http\Controllers\Api\IdeaController::class)->names('api.ideas'); Route::post('/ideas/{idea}/status', [\App\Http\Controllers\Api\IdeaController::class, 'changeStatus'])->name('api.ideas.status'); Route::post('/ideas/{idea}/link-project', [\App\Http\Controllers\Api\IdeaController::class, 'linkToProject'])->name('api.ideas.link_project'); Route::post('/ideas/{idea}/unlink-project', [\App\Http\Controllers\Api\IdeaController::class, 'unlinkFromProject'])->name('api.ideas.unlink_project'); // Webhook endpoints (require X-Muninn-Token header) Route::prefix('webhooks')->group(function () { Route::post('/posts', [WebhookController::class, 'createPost']); Route::get('/posts', [WebhookController::class, 'listPosts']); Route::post('/posts/{post}/publish', [WebhookController::class, 'publishPost']); Route::get('/posts/{post}/status', [WebhookController::class, 'getPostStatus']); });