Segue o código EnviarEmailNovaSerieCadastrada.php
<?php
namespace App\Listeners;
// Note aqui que temos 2 classes com nomes iguais, alterei o nome da segunda para este arquivo
use App\Events\NovaSerie;
use App\Mail\NovaSerie as MailNovaSerie;
// #########################################
use App\User;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Mail;
class EnviarEmailNovaSerieCadastrada
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param NovaSerie $event
* @return void
*/
public function handle(NovaSerie $event) // NameSpace => App\Events\NovaSerie
{
$nomeSerie = $event->nomeSerie;
$qntTemporada = $event->qntTemporada;
$qntEpisodio = $event->qntEpisodio;
// Emissão Evento
$users = User::all();
foreach($users as $indice => $user){
$multiplicador = $indice +1;
// Alterei o nome da Classe, mas a mesma possui esse namespace => App\Mail\NovaSerie
$email = new MailNovaSerie(
$nomeSerie,
$qntTemporada,
$qntEpisodio
);
$email->subject = 'Nova Série Adicionada';
// Adicionando tempo entre uma chamada e outra
$when = now()->addSecond($multiplicador * 5);
// Adicionando a fila de processos
Mail::to($user)->later($when, $email);
}
}
}
Estou deixando esse código aqui para consulta , pois notei que a variável $email estava com problemas de identificação, isso acontece pois precisávamos criar 2 objetos com o mesmo nome "NovaSerie()", então para separamos precisamos identificar o namespace que estamos usando