Route::get('/links', function () { return view('links'); })->name('links'); use Illuminate\Support\Facades\Route; use App\Http\Controllers\PublicController; use App\Http\Controllers\AuthController; use App\Http\Controllers\AdminController; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; Route::get('/', [PublicController::class, 'index'])->name('home'); Route::get('/coaching', [PublicController::class, 'coaching'])->name('coaching'); Route::get('/pago', function () { return redirect('https://www.paypal.com/ncp/payment/BMSDZ95ZBLRC2'); })->name('pago'); Route::get('/proyecto/{id}', [PublicController::class, 'projectDetail'])->name('project.detail'); Route::get('/login', [AuthController::class, 'showLogin'])->name('login'); Route::post('/login', [AuthController::class, 'login']); Route::get('/logout', [AuthController::class, 'logout'])->name('logout'); // Redirect old /ws-admin to new Filament path (avoids Hostinger WAF blocking "admin" in URL) Route::redirect('/ws-admin', '/ws-admin-panel', 301); Route::redirect('/ws-admin/login', '/ws-admin-panel/login', 301); Route::middleware([\App\Http\Middleware\AdminAuth::class])->group(function () { Route::get('/admin', [AdminController::class, 'dashboard'])->name('admin.dashboard'); Route::get('/admin/projects', [AdminController::class, 'projects'])->name('admin.projects'); Route::post('/admin/projects', [AdminController::class, 'storeProject']); Route::post('/admin/projects/edit', [AdminController::class, 'updateProject']); Route::post('/admin/projects/delete/{id}', [AdminController::class, 'destroyProject']); Route::post('/admin/projects/toggle/{id}', [AdminController::class, 'toggleProject']); Route::post('/admin/projects/toggle-business/{id}', [AdminController::class, 'toggleBusiness']); Route::post('/admin/projects/reorder', [AdminController::class, 'reorderProjects']); Route::get('/admin/projects/{projectId}/tasks', [AdminController::class, 'tasks'])->name('admin.tasks'); Route::post('/admin/projects/{projectId}/tasks', [AdminController::class, 'storeTask']); Route::post('/admin/projects/{projectId}/tasks/edit/{taskId}', [AdminController::class, 'updateTask']); Route::post('/admin/projects/{projectId}/tasks/delete/{taskId}', [AdminController::class, 'destroyTask']); Route::post('/admin/projects/{projectId}/tasks/toggle/{taskId}', [AdminController::class, 'toggleTask']); Route::post('/admin/projects/{projectId}/tasks/reorder', [AdminController::class, 'reorderTasks']); Route::get('/admin/negocios', [AdminController::class, 'negocios'])->name('admin.negocios'); Route::get('/admin/negocios/create', [AdminController::class,'negocioCreate'])->name('admin.negocio.create'); Route::post('/admin/negocios', [AdminController::class, 'storeNegocio'])->name('admin.negocios.store'); Route::get('/admin/negocios/{id}', [AdminController::class, 'negocioDetail'])->name('admin.negocio.detail'); Route::get('/admin/negocios/{id}/edit', [AdminController::class, 'negocioEdit'])->name('admin.negocio.edit'); Route::get('/admin/reports', [AdminController::class, 'reports'])->name('admin.reports'); Route::post('/admin/refresh-analytics', [AdminController::class, 'refreshAnalyticsCache'])->name('admin.refresh_analytics'); Route::get('/admin/hostinger', [AdminController::class, 'hostinger'])->name('admin.hostinger'); Route::get('/admin/tutorials', [AdminController::class, 'tutorials'])->name('admin.tutorials'); Route::get('/admin/tutorials/{id}', [AdminController::class, 'tutorialDetail'])->name('admin.tutorial.detail'); Route::get('/admin/plans', [AdminController::class, 'plans'])->name('admin.plans'); Route::post('/admin/plans', [AdminController::class, 'storePlan']); Route::post('/admin/plans/edit', [AdminController::class, 'updatePlan']); Route::post('/admin/plans/delete/{id}', [AdminController::class, 'destroyPlan']); Route::post('/admin/plans/reorder', [AdminController::class, 'reorderPlans']); Route::get('/admin/reminders', [AdminController::class, 'reminders'])->name('admin.reminders'); Route::post('/admin/reminders', [AdminController::class, 'storeReminder']); Route::get('/admin/reminders/{id}/edit', [AdminController::class, 'reminderEdit'])->name('admin.reminder.edit'); Route::post('/admin/reminders/edit', [AdminController::class, 'updateReminder']); Route::post('/admin/reminders/delete/{id}', [AdminController::class, 'destroyReminder']); Route::post('/admin/reminders/toggle/{id}', [AdminController::class, 'toggleReminder']); Route::post('/admin/reminders/reorder', [AdminController::class, 'reorderReminders']); Route::get('/admin/clear-cache', function () { \Illuminate\Support\Facades\Artisan::call('optimize:clear'); return "¡Caché de Hostinger borrado con éxito!"; })->name('admin.clear_cache'); });