<?php

namespace {{ namespace }};

use {{ namespacedEvent }};
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;

class {{ class }} implements ShouldQueue
{
    use InteractsWithQueue;

    /**
     * El número de veces que el listener puede ser intentado.
     */
    public $tries = 3;

    /**
     * Create the event listener.
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     */
    public function handle({{ event }} $event): void
    {
        try {
            // Acceder a las propiedades del evento usando $event->propiedad
        } catch (\Exception $e) {
            // Nivel Staff: Si falla, podemos liberar el job de vuelta a la cola
            // $this->release(30); 
            Log::error('Fallo en Listener {{ class }}: ' . $e->getMessage());
            throw $e; // Lanzar para agotar intentos
        }
    }
}