ldc-dam/app/Jobs/SendMediasModificationsReport.php

59 lines
1.7 KiB
PHP
Raw Normal View History

<?php
namespace App\Jobs;
use App\Models\Media;
use App\Models\Setting;
use Illuminate\Support\Facades\Mail;
use App\Mail\SendMediaReportMail;
use App\Models\Sujet;
use Illuminate\Support\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class SendMediasModificationsReport implements ShouldQueue
{
2022-04-19 16:07:27 +02:00
use Dispatchable;
use InteractsWithQueue;
use Queueable;
use SerializesModels;
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
// Gather Medias to report.
$subjectsToFetch = [
// * Marques
2,
// * Sociétés
4,
];
$yesterday = Carbon::now()->subDay(1);
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */
$sujets = Sujet::whereIn('codeSujet', $subjectsToFetch)->get();
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Media> */
$mediaList = Media::whereDate('updated_at', '>=', $yesterday)
->whereIn('sujet_id', [2,4])
->get();
/** @var \App\Models\Setting|null Send mail */
$toMailSetting = Setting::where('key', 'media_report_to_mail')->first();
if ($toMailSetting and !empty(\strval(optional($toMailSetting)->value))) {
Mail::to(\strval($toMailSetting->value))->send(new SendMediaReportMail(
$mediaList,
$yesterday,
$sujets->pluck('libelle')->implode(', ')
));
}
}
}