SendVacancyToTelegramJob.php 1.05 KB
<?php

namespace App\Jobs;

use App\Components\Integrations\Telegram\VacancyChannel;
use App\Models\Ad_employer;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Telegram\Bot\Exceptions\TelegramSDKException;

class SendVacancyToTelegramJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private array $employerIds;
    private VacancyChannel $telegramSenderHelper;

    public function __construct(array $employerIds)
    {
        $this->employerIds = $employerIds;
        $this->telegramSenderHelper = new VacancyChannel();
    }

    /**
     * @throws TelegramSDKException
     */
    public function handle(): void
    {
        $vacancies = Ad_employer::query()
            ->whereIn('id', $this->employerIds)
            ->get();

        foreach ($vacancies as $vacancy) {
            $this->telegramSenderHelper->sendVacancy($vacancy);
        }
    }
}