middleware('web')->group(function () { Route::post('login', [AuthController::class, 'login']); Route::post('logout', [AuthController::class, 'logout'])->middleware('auth:sanctum'); Route::get('user', [AuthController::class, 'user'])->middleware('auth:sanctum'); }); // Google Drive callback needs web middleware for session but not auth:sanctum (handles auth internally) Route::get('admin/google-drive/callback', [AdminGoogleDriveController::class, 'callback'])->middleware('web'); Route::prefix('admin')->middleware('auth:sanctum')->group(function () { Route::get('google-drive/auth-url', [AdminGoogleDriveController::class, 'authUrl']); Route::get('google-drive/status', [AdminGoogleDriveController::class, 'status']); Route::delete('google-drive/disconnect', [AdminGoogleDriveController::class, 'disconnect']); Route::get('google-drive/shared-drives', [AdminGoogleDriveController::class, 'sharedDrives']); Route::get('google-drive/folders', [AdminGoogleDriveController::class, 'folders']); Route::post('google-drive/folders', [AdminGoogleDriveController::class, 'createFolder']); Route::apiResource('events', \App\Http\Controllers\Admin\EventsController::class); Route::get('events/{event}/uploads', [\App\Http\Controllers\Admin\EventsController::class, 'uploads']); Route::get('uploads/{upload}', [\App\Http\Controllers\Admin\UploadsController::class, 'show']); Route::delete('uploads/{upload}', [\App\Http\Controllers\Admin\UploadsController::class, 'destroy']); Route::get('uploads/{upload}/download-url', [\App\Http\Controllers\Admin\UploadsController::class, 'downloadUrl']); }); Route::prefix('events')->group(function () { Route::get('{slug}', [\App\Http\Controllers\Public\EventUploadController::class, 'show']); Route::post('{slug}/verify-password', [\App\Http\Controllers\Public\EventUploadController::class, 'verifyPassword']) ->middleware('throttle.password'); Route::post('{slug}/upload', [\App\Http\Controllers\Public\EventUploadController::class, 'upload']) ->middleware('throttle:30,60'); Route::get('{slug}/upload/{uploadId}/status', [\App\Http\Controllers\Public\EventUploadController::class, 'uploadStatus']); });