arcos-backend/app/Events/VehiculoRobadoDetectado.php
Juan Felipe Zapata Moreno 1b4eba2c6c laravel reverb
2026-01-10 08:51:36 -06:00

60 lines
1.6 KiB
PHP

<?php
namespace App\Events;
use App\Models\AlertaRobo;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class VehiculoRobadoDetectado implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public AlertaRobo $alerta;
public function __construct(AlertaRobo $alerta)
{
$this->alerta = $alerta;
}
/**
* Canal público para todos los usuarios
*/
public function broadcastOn(): Channel
{
return new Channel('alertas-robos');
}
/**
* Nombre del evento en el frontend
*/
public function broadcastAs(): string
{
return 'vehiculo.robado.detectado';
}
/**
* Datos que se envían al frontend
*/
public function broadcastWith(): array
{
return [
'alerta_id' => $this->alerta->id,
'fast_id' => $this->alerta->fast_id,
'vin' => $this->alerta->vin,
'placa' => $this->alerta->placa,
'marca' => $this->alerta->marca,
'modelo' => $this->alerta->modelo,
'color' => $this->alerta->color,
'arco_id' => $this->alerta->arco_id,
'arco_nombre' => $this->alerta->arco_nombre,
'antena' => $this->alerta->antena,
'fecha_deteccion' => $this->alerta->fecha_deteccion->toIso8601String(),
'mensaje' => "🚨 VEHÍCULO ROBADO DETECTADO: {$this->alerta->placa} en {$this->alerta->arco_nombre}",
];
}
}