middleware(['auth', 'admin.security'])->group(function () { Route::get('/radio/setup', [RadioSetupController::class, 'index'])->name('admin.radio.setup'); Route::post('/radio/setup', [RadioSetupController::class, 'setup'])->name('admin.radio.setup.post'); Route::post('/radio/setup/do', [RadioSetupController::class, 'doSetup'])->name('admin.radio.setup.do'); Route::post('/radio/setup/reset', [RadioSetupController::class, 'reset'])->name('admin.radio.setup.reset'); // Radio wizard (multi-step) Route::prefix('radio/wizard')->group(function () { Route::get('/', [RadioWizardController::class, 'index'])->name('admin.radio.wizard'); Route::post('/step-1', [RadioWizardController::class, 'processStep1'])->name('admin.radio.wizard.process-step-1'); Route::get('/step/{step}', [RadioWizardController::class, 'step'])->name('admin.radio.wizard.step')->where('step', '[2-5]'); Route::post('/step-2', [RadioWizardController::class, 'processStep2'])->name('admin.radio.wizard.process-step-2'); Route::post('/step-3', [RadioWizardController::class, 'processStep3'])->name('admin.radio.wizard.process-step-3'); Route::post('/step-4', [RadioWizardController::class, 'processStep4'])->name('admin.radio.wizard.process-step-4'); Route::get('/test', [RadioWizardController::class, 'runTest'])->name('admin.radio.wizard.test'); Route::post('/complete', [RadioWizardController::class, 'complete'])->name('admin.radio.wizard.complete'); }); }); // Furni editor API Route::prefix('api/admin/furni-editor')->middleware(['auth', 'admin.security', 'throttle:api'])->group(function () { Route::get('/', [FurniEditorController::class, 'search']); Route::post('/', [FurniEditorController::class, 'create']); Route::get('/detail', [FurniEditorController::class, 'detail']); Route::post('/update', [FurniEditorController::class, 'update']); Route::post('/delete', [FurniEditorController::class, 'delete']); Route::get('/interactions', [FurniEditorController::class, 'interactions']); Route::get('/by-sprite', [FurniEditorController::class, 'bySprite']); });