Gejala::count(), 'penyakit' => Penyakit::count(), 'aturan' => Aturan::count(), 'user' => User::where('role', 'user')->count(), ]; return view('admin.dashboard', compact('data')); } public function user() { $users = User::where('role', 'user')->get(); // ambil semua user biasa return view('admin.user', compact('users')); } public function destroyUser($id) { $user = User::findOrFail($id); // Pastikan hanya user biasa yang bisa dihapus if ($user->role === 'user') { $user->delete(); return redirect()->back()->with('success', 'Pengguna berhasil dihapus.'); } return redirect()->back()->with('error', 'Tidak bisa menghapus user ini.'); } public function gejala() { $gejala = Gejala::all(); return view('admin.gejala', compact('gejala')); } // Tampilkan daftar penyakit public function penyakit() { $penyakit = Penyakit::all(); return view('admin.penyakit', compact('penyakit')); } // Tampilkan daftar aturan dengan relasi public function aturan() { $gejala = Gejala::all(); $penyakit = Penyakit::all(); $aturan = Aturan::with(['gejala', 'penyakit'])->get(); return view('admin.aturan', compact('gejala', 'penyakit', 'aturan')); } public function solusi() { $solusi = Solusi::with('penyakit')->get(); // join ke tabel penyakit $penyakit = Penyakit::all(); // ambil semua penyakit untuk dropdown return view('admin.solusi', compact('solusi', 'penyakit')); } public function editProfile() { $admin = Auth::user(); return view('admin.profile', compact('admin')); } public function updateProfile(Request $request) { $admin = Auth::user(); $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|max:255', 'current_password' => 'nullable|required_with:new_password|string', 'new_password' => 'nullable|string|min:6|confirmed', ]); // Cek password lama jika ingin ganti password if ($request->filled('new_password')) { if (!Hash::check($request->current_password, $admin->password)) { return back()->withErrors(['current_password' => 'Password lama salah.']); } $admin->password = Hash::make($request->new_password); } // Update nama dan email $admin->name = $request->name; $admin->email = $request->email; $admin->save(); return redirect()->back()->with('success', 'Profil berhasil diperbarui.'); } public function indexRiwayatAdmin() { $riwayat = RiwayatDiagnosa::with(['penyakit', 'user']) ->orderBy('created_at', 'desc') ->get(); return view('admin.riwayat', compact('riwayat')); } }