validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255', 'message' => 'required|string', ]); ContactMessage::create($validated); return redirect()->back()->with('success', 'Pesan Anda telah terkirim! Terima kasih telah menghubungi kami.'); } /** * Display a listing of contact messages for admin. * * @return \Illuminate\Http\Response */ public function index() { $messages = ContactMessage::orderBy('created_at', 'desc')->paginate(10); return view('admin.contact-messages.index', compact('messages')); } /** * Display the specified contact message. * * @param \App\Models\ContactMessage $contactMessage * @return \Illuminate\Http\Response */ public function show(ContactMessage $contactMessage) { // Mark as read if (!$contactMessage->is_read) { $contactMessage->is_read = true; $contactMessage->save(); } return view('admin.contact-messages.show', compact('contactMessage')); } /** * Remove the specified contact message from storage. * * @param \App\Models\ContactMessage $contactMessage * @return \Illuminate\Http\Response */ public function destroy(ContactMessage $contactMessage) { $contactMessage->delete(); return redirect()->route('admin.contact-messages.index') ->with('success', 'Pesan kontak berhasil dihapus.'); } }