group(function () { Route::get ('auth/me', [AuthController::class, 'me']); Route::post('auth/logout', [AuthController::class, 'logout']); }); // ─── Endpoints del DummyBot (ESP32) ─── // Usa el token del dispositivo en Authorization: Bearer Route::middleware('auth.device')->prefix('device')->group(function () { Route::get ('tasks/pending', [TaskController::class, 'pending']); Route::post ('tasks', [TaskController::class, 'store']); Route::post ('tasks/{task}/done', [TaskController::class, 'done']); Route::post ('tasks/{task}/snooze', [TaskController::class, 'snooze']); Route::delete('tasks/{task}', [TaskController::class, 'destroy']); Route::post ('heartbeat', function (Request $r) { return response()->json([ 'ok' => true, 'server_time' => now()->toIso8601String(), 'device' => $r->attributes->get('device')?->only('id','name'), ]); }); }); // ─── Web UI (mismo backend; usa sesiones + Sanctum) ─── // Tareas Route::middleware('auth:sanctum')->group(function () { Route::get ('/tasks', [TaskController::class, 'index']); Route::post ('/tasks', [TaskController::class, 'store']); Route::put ('/tasks/{task}', [TaskController::class, 'update']); Route::delete('/tasks/{task}', [TaskController::class, 'destroy']); Route::post ('/tasks/{task}/done', [TaskController::class, 'done']); Route::post ('/tasks/{task}/snooze', [TaskController::class, 'snooze']); Route::post ('/tasks/{task}/restore',[TaskController::class, 'restore']); Route::get ('/tasks/stats', [TaskController::class, 'stats']); // Proyectos Route::get ('/projects', [\App\Http\Controllers\Api\ProjectController::class, 'index']); Route::post ('/projects', [\App\Http\Controllers\Api\ProjectController::class, 'store']); Route::put ('/projects/{project}',[\App\Http\Controllers\Api\ProjectController::class, 'update']); Route::delete('/projects/{project}',[\App\Http\Controllers\Api\ProjectController::class, 'destroy']); // Tags Route::get ('/tags', [\App\Http\Controllers\Api\TagController::class, 'index']); Route::post ('/tags', [\App\Http\Controllers\Api\TagController::class, 'store']); Route::delete('/tags/{tag}', [\App\Http\Controllers\Api\TagController::class, 'destroy']); // Devices Route::get ('/devices', [\App\Http\Controllers\Api\DeviceController::class, 'index']); Route::post ('/devices', [\App\Http\Controllers\Api\DeviceController::class, 'store']); Route::post ('/devices/{device}/rotate', [\App\Http\Controllers\Api\DeviceController::class, 'rotate']); Route::delete('/devices/{device}',[\App\Http\Controllers\Api\DeviceController::class, 'destroy']); });