name('landing-page'); // ======================================================= // LOGIN PAGES (VIEW ONLY) // ======================================================= // Selector login (opsional) Route::get('/login', function () { return view('auth.login-selector'); })->name('login.selector'); // LOGIN ADMIN Route::get('/admin/login', function () { return view('auth.login-admin'); })->name('admin.login'); // LOGIN GURU Route::get('/guru/login', function () { return view('auth.login-guru'); })->name('guru.login'); // LOGIN SISWA Route::get('/siswa/login', function () { return view('auth.login-siswa'); })->name('siswa.login'); // ======================================================= // PROSES LOGIN (POST) // ======================================================= // ADMIN LOGIN PROCESS Route::post('/admin/login', [LoginController::class, 'loginAdmin']) ->name('admin.login.submit'); // GURU LOGIN PROCESS Route::post('/guru/login', function (Request $request) { $credentials = $request->only('nip', 'password'); if (Auth::guard('guru')->attempt($credentials)) { return redirect()->route('guru.dashboard'); } return back()->withErrors(['nip' => 'NIP atau password salah']); })->name('guru.login.submit'); // SISWA LOGIN PROCESS Route::post('/siswa/login', function (Request $request) { $credentials = $request->only('nisn', 'password'); if (Auth::guard('siswa')->attempt($credentials)) { return redirect()->route('siswa.dashboard'); } return back()->withErrors(['nisn' => 'NISN atau password salah']); })->name('siswa.login.submit'); // ======================================================= // ADMIN AREA (HARUS LOGIN ADMIN) // ======================================================= Route::middleware(['auth:admin'])->prefix('admin')->name('admin.')->group(function () { Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard'); Route::get('/notif', function () { return view('admin.notif'); })->name('notif'); Route::get('/profil', function () { return view('admin.profil'); })->name('profil'); // CRUD AREA Route::resource('guru', GuruController::class); Route::resource('siswa', SiswaController::class); Route::resource('kelas', KelasController::class); Route::resource('mapel', MapelController::class); Route::resource('challenge', ChallengeController::class); Route::get('leaderboard', [LeaderboardController::class, 'index']) ->name('leaderboard.index'); // LOGOUT ADMIN Route::post('/logout', [LoginController::class, 'logout']) ->name('logout'); }); // ======================================================= // GURU AREA // ======================================================= Route::middleware(['auth:guru'])->group(function () { Route::get('/guru/dashboard', function () { return view('guru.dashboard'); })->name('guru.dashboard'); }); // ======================================================= // SISWA AREA // ======================================================= Route::middleware(['auth:siswa'])->group(function () { Route::get('/siswa/dashboard', function () { return view('siswa.dashboard'); })->name('siswa.dashboard'); });