session()->invalidate(); request()->session()->regenerateToken(); return redirect()->route('admin.login'); })->name('logout'); // ============================ // REDIRECT ROOT KE LOGIN ADMIN // ============================ Route::get('/', function () { return redirect()->route('admin.login'); }); // ============================ // ADMIN ROUTES // ============================ Route::prefix('admin')->name('admin.')->group(function () { // ---------------------------- // AUTH (LOGIN ADMIN) // ---------------------------- Route::middleware('guest:admin')->group(function () { Route::get('/login', [AdminAuthController::class, 'showLogin'])->name('login'); Route::post('/login', [AdminAuthController::class, 'login'])->name('login.post'); }); // ---------------------------- // ADMIN AREA (AUTH PROTECTED) // ---------------------------- Route::middleware('auth:admin')->group(function () { // Dashboard Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); // Logout Route::post('/logout', [AdminAuthController::class, 'logout'])->name('logout'); // ---------------------------- // KATEGORI // ---------------------------- Route::resource('kategori', KategoriController::class); // ---------------------------- // TEMPLATE // ---------------------------- Route::get('/template', [TemplateController::class, 'index'])->name('template.index'); Route::get('/template/{template}/edit', [TemplateController::class, 'edit'])->name('template.edit'); Route::put('/template/{template}', [TemplateController::class, 'update'])->name('template.update'); // ---------------------------- // PELANGGAN // ---------------------------- Route::resource('pelanggan', PelangganController::class)->except(['create', 'edit']); // ---------------------------- // REVIEW / ULASAN // ---------------------------- Route::resource('reviews', ReviewController::class)->except(['create', 'edit', 'update', 'show', 'store']); // Dashboard Route::get('/admin/pelanggan/{id}', [PelangganController::class, 'show'])->name('pelanggan.show'); }); });