where('any', '.*'); // Public routes Route::post('/register', [AuthController::class, 'register']); Route::post('/login', [AuthController::class, 'login']); // E2E test routes (development/testing only) Route::prefix('e2e/test')->group(function () { Route::post('/setup/user', [TestSetupController::class, 'createTestUser']); Route::post('/cleanup', [TestSetupController::class, 'cleanup']); }); // Protected routes Route::middleware('auth:sanctum')->group(function () { Route::get('/user', function (Request $request) { return $request->user(); }); Route::get('/profile', [AuthController::class, 'profile']); Route::post('/logout', [AuthController::class, 'logout']); // Trip routes Route::apiResource('trips', TripController::class); // Plannable items routes Route::get('trips/{trip}/plannables', [PlannableItemController::class, 'index']); Route::post('trips/{trip}/plannables', [PlannableItemController::class, 'store']); Route::get('plannables/{plannableItem}', [PlannableItemController::class, 'show']); Route::put('plannables/{plannableItem}', [PlannableItemController::class, 'update']); Route::delete('plannables/{plannableItem}', [PlannableItemController::class, 'destroy']); // Calendar slots routes Route::get('trips/{trip}/calendar-slots', [CalendarSlotController::class, 'index']); Route::put('calendar-slots/{calendarSlot}', [CalendarSlotController::class, 'update']); Route::put('calendar-slots/{calendarSlot}/reorder', [CalendarSlotController::class, 'reorder']); // Planned items routes Route::post('planned-items', [PlannedItemController::class, 'store']); Route::put('planned-items/{plannedItem}', [PlannedItemController::class, 'update']); Route::delete('planned-items/{plannedItem}', [PlannedItemController::class, 'destroy']); });