/
DATKAI
/
ITCUP
Обзор
Документация
Войти
/
DATKAI
/
ITCUP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/Notifications/LicenseExpiring.php
46 строк
2 KB
DATKAI
feat(licenses): уведомления, email, тип 1С:Предприятие/ИТС, продление с историей
02 июл 2026, 11:04
02 июл 2026, 11:04
ce115fc
Код
Авторство
О чём код?
<?php namespace App\Notifications; use App\Models\License; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; class LicenseExpiring extends Notification { use Queueable; public function __construct( public License $license, public string $stage, // 'soon' | 'expired' ) {} public function via(object $notifiable): array { return ['mail']; } public function toMail(object $notifiable): MailMessage { $l = $this->license; $date = $l->expires_at?->format('d.m.Y') ?? '—'; if ($this->stage === 'expired') { return (new MailMessage) ->subject("Лицензия истекла: {$l->name}") ->greeting('Внимание!') ->line("Лицензия «{$l->name}» ({$l->type?->name}) истекла {$date}.") ->line($l->number ? "Номер: {$l->number}" : '') ->line('Необходимо продлить или отозвать её.'); } $days = $l->daysUntilExpiry(); return (new MailMessage) ->subject("Скоро истекает лицензия: {$l->name}") ->greeting('Напоминание') ->line("Лицензия «{$l->name}» ({$l->type?->name}) истекает {$date} — осталось {$days} дн.") ->line($l->number ? "Номер: {$l->number}" : '') ->line('Запланируйте продление заранее.'); } }