Files
lash_vanshy/app/Http/Controllers/Admin/MensajeController.php

71 lines
1.7 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Mensaje;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
class MensajeController extends Controller
{
/**
* Mostrar lista de mensajes
*/
public function index(): View
{
$mensajes = Mensaje::orderBy('created_at', 'desc')->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.');
}
}