name('login'); Route::post('/login', [AuthController::class, 'login']); Route::post('/register', [AuthController::class, 'register'])->name('register'); // 2. Route Diproteksi Auth Route::middleware(['auth'])->group(function () { // Route Pengarah Pintar: Arahkan Otomatis Berdasarkan Role Route::get('/dashboard', function () { if (Auth::user()->role === 'admin' || Auth::user()->is_admin) { return redirect()->route('admin.dashboard'); } return redirect()->route('siswa.dashboard'); })->name('dashboard'); // Dashboard Admin Route::get('/admin/dashboard', [DashboardController::class, 'index'])->name('admin.dashboard'); // Dashboard Siswa Route::get('/siswa/dashboard', function () { // Jika Admin mencoba buka manual URL siswa, lempar balik ke admin dashboard if (Auth::user()->role === 'admin' || Auth::user()->is_admin) { return redirect()->route('admin.dashboard'); } return view('siswa.dashboard'); })->name('siswa.dashboard'); // Data Training Route::resource('training', DataTrainingController::class); // Perhitungan C4.5 (Admin Panel) Route::get('/c45', [C45Controller::class, 'index'])->name('c45.index'); Route::get('/c45/create', [C45Controller::class, 'create'])->name('c45.create'); Route::get('/c45/hasil', [C45Controller::class, 'hasil'])->name('c45.hasil'); Route::post('/c45/hitung', [C45Controller::class, 'hitungRekomendasi'])->name('c45.hitung'); // Prediksi / Rekomendasi Route::get('/prediksi', [PrediksiController::class, 'index'])->name('prediksi.index'); Route::post('/prediksi/hitung', [PrediksiController::class, 'hitungRekomendasi'])->name('prediksi.hitung'); Route::get('/riwayat-rekomendasi', [PrediksiController::class, 'riwayat'])->name('riwayat.index'); Route::get('/riwayat-rekomendasi/{id}', [PrediksiController::class, 'showRiwayat'])->name('riwayat.show'); Route::delete('/riwayat-rekomendasi/{id}', [PrediksiController::class, 'destroyRiwayat'])->name('riwayat.destroy'); // 1. Halaman Dashboard Rekapitulasi & Grafik Route::get('/rekap-konsultasi', [RekapController::class, 'index'])->name('admin.rekap'); // 2. Action Download Laporan PDF Route::get('/rekap-konsultasi/export-pdf', [RekapController::class, 'exportPdf'])->name('admin.rekap.pdf'); // Profile Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::put('/profile/password', [ProfileController::class, 'updatePassword'])->name('profile.password.update'); // Management User / Akun Internal Route::get('/admin/users', [UserController::class, 'index'])->name('admin.users.index'); Route::post('/admin/users', [UserController::class, 'store'])->name('admin.users.store'); Route::delete('/admin/users/{user}', [UserController::class, 'destroy'])->name('admin.users.destroy'); // Logout Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); });