paginate(15); return view('admin.mensajes.index', compact('mensajes')); } /** * Mostrar mensaje específico */ public function show(Mensaje $mensaje): View { // Marcar como leído al ver if (! $mensaje->leido) { $mensaje->marcarLeido(); } return view('admin.mensajes.show', compact('mensaje')); } /** * Alternar estado de leído/no leído */ public function markRead(Mensaje $mensaje): RedirectResponse { if ($mensaje->leido) { $mensaje->marcarNoLeido(); $message = 'Mensaje marcado como no leído.'; } else { $mensaje->marcarLeido(); $message = 'Mensaje marcado como leído.'; } return back()->with('success', $message); } /** * Eliminar mensaje */ public function destroy(Mensaje $mensaje): RedirectResponse { $mensaje->delete(); return redirect()->route('admin.mensajes.index')->with('success', 'Mensaje eliminado correctamente.'); } /** * Marcar todos los mensajes como leídos */ public function markAllRead(): RedirectResponse { Mensaje::where('leido', false)->update(['leido' => true]); return back()->with('success', 'Todos los mensajes marcados como leídos.'); } }