group(function () { Route::get('/search', [CityController::class, 'search']); Route::get('/{city}', [CityController::class, 'show']); Route::get('/{city}/attractions', [CityController::class, 'attractions']); Route::get('/{city}/map-data', [CityController::class, 'mapData']); }); // Protected routes (require authentication) Route::middleware('auth:sanctum')->group(function () { // Auth routes Route::post('/logout', [AuthController::class, 'logout']); Route::get('/user', [AuthController::class, 'user']); // User profile Route::get('/profile', [UserController::class, 'show']); Route::put('/profile', [UserController::class, 'update']); // Cities (protected actions) Route::post('/cities', [CityController::class, 'store']); // Favorites Route::get('/favorites', [FavoriteController::class, 'index']); Route::post('/favorites/{city}', [FavoriteController::class, 'store']); Route::delete('/favorites/{city}', [FavoriteController::class, 'destroy']); // Trips Route::apiResource('trips', TripController::class); });