name('guest.symptoms'); Route::post('/guest/diagnosis', [GuestDiagnosisController::class, 'process'])->name('guest.diagnosis'); // ── Halaman utama ───────────────────────────────────────────────── Route::get('/', [WelcomeController::class, 'index'])->name('home'); Route::delete('/profile/delete', [ProfileController::class, 'destroy'])->name('profile.destroy')->middleware('auth'); // ── Guest routes ────────────────────────────────────────────────── Route::middleware('guest')->group(function () { Route::get('/login', [AuthController::class, 'showLogin'])->name('login'); Route::get('/register', [AuthController::class, 'showRegister'])->name('register'); Route::post('/login', [AuthController::class, 'login']); Route::post('/register',[AuthController::class, 'register']); Route::get('/forgot-password', [ForgotPasswordController::class, 'showEmailForm'])->name('password.email'); Route::post('/forgot-password', [ForgotPasswordController::class, 'sendOtp'])->name('password.send-otp'); Route::get('/forgot-password/otp', [ForgotPasswordController::class, 'showOtpForm'])->name('password.otp.form'); Route::post('/forgot-password/otp', [ForgotPasswordController::class, 'verifyOtp'])->name('password.otp.verify'); Route::post('/forgot-password/otp/resend', [ForgotPasswordController::class, 'resendOtp'])->name('password.otp.resend'); Route::get('/forgot-password/reset', [ForgotPasswordController::class, 'showResetForm'])->name('password.reset.form'); Route::post('/forgot-password/reset', [ForgotPasswordController::class, 'resetPassword'])->name('password.reset'); }); // ── Logout ──────────────────────────────────────────────────────── Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // ── Authenticated routes ───────────────────────────────────────── Route::middleware('auth')->group(function () { // Dashboard Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); // Diagnosis Route::prefix('diagnosis')->name('diagnosis.')->group(function () { Route::get('/', [DiagnosisController::class, 'index'])->name('index'); Route::get('/create', [DiagnosisController::class, 'create'])->name('create'); Route::post('/', [DiagnosisController::class, 'store'])->name('store'); Route::get('/{id}/result', [DiagnosisController::class, 'result'])->name('result'); }); // Riwayat Route::get('/riwayat', [HistoryController::class, 'index'])->name('history'); // ── KAMUS (READ dulu) ───────────────────────────── Route::get('/kamus', [DiseaseController::class, 'index'])->name('diseases.index'); // ⚠️ JANGAN TARUH {disease} DI ATAS // nanti bentrok dengan /kamus/tambah // Notifikasi Route::get('/notifications', [NotificationController::class, 'index'])->name('notifications'); Route::post('/notifications/{id}/read', [NotificationController::class, 'markRead'])->name('notifications.read'); Route::delete('/notifications/{id}', [NotificationController::class, 'destroy'])->name('notifications.destroy'); Route::delete('/notifications', [NotificationController::class, 'destroyAll'])->name('notifications.destroyAll'); // Profil Route::get('/profile', [ProfileController::class, 'show'])->name('profile'); Route::post('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::post('/profile/password', [ProfileController::class, 'updatePassword'])->name('profile.password'); }); // ── ADMIN ONLY ─────────────────────────────────────────────────── Route::middleware(['auth', 'role:admin'])->group(function () { Route::get('/kamus/tambah', [DiseaseController::class, 'create'])->name('diseases.create'); Route::post('/kamus', [DiseaseController::class, 'store'])->name('diseases.store'); Route::delete('/kamus/{disease}', [DiseaseController::class, 'destroy'])->name('diseases.destroy'); Route::get('/diseases/{disease}/edit',[DiseaseController::class, 'edit'])->name('diseases.edit'); Route::put('/diseases/{disease}', [DiseaseController::class, 'update'])->name('diseases.update'); // User management Route::get('/users', [UserController::class, 'index'])->name('users.index'); Route::patch('/users/{user}/role', [UserController::class, 'updateRole'])->name('users.updateRole'); Route::delete('/users/{user}', [UserController::class, 'destroy'])->name('users.destroy'); }); // ── TARUH PALING BAWAH (ANTI BENTROK) ─────────────────────────── Route::get('/kamus/{disease}', [DiseaseController::class, 'show']) ->middleware('auth') ->name('diseases.show'); // Redirect /diseases/{id} ke /kamus/{id} supaya tidak 405 Route::get('/diseases/{disease}', function($disease) { return redirect()->route('diseases.show', $disease); })->middleware('auth');