Initial commit: Lash Vanshy - Complete project with admin panel, gallery, products, and contact
This commit is contained in:
70
app/Http/Controllers/Admin/MensajeController.php
Executable file
70
app/Http/Controllers/Admin/MensajeController.php
Executable file
@@ -0,0 +1,70 @@
|
||||
<?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.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user