clrghouz/app/Notifications/Emails/NodeMarkedHold.php
Deon George 617901f7df
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 38s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m50s
Create Docker Image / Final Docker Image Manifest (push) Successful in 9s
Add AKA to email notification
2024-06-30 11:25:04 +10:00

63 lines
2.1 KiB
PHP

<?php
namespace App\Notifications\Emails;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Log;
use App\Models\Address;
class NodeMarkedHold extends Notification //implements ShouldQueue
{
use Queueable;
private const LOGKEY = 'NEH';
/**
* Create a new notification instance.
*/
public function __construct(private Address $ao)
{
}
/**
* Get the notification's delivery channels.
*
* @return array<int, string>
*/
public function via(object $notifiable): array
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*/
public function toMail(object $notifiable): MailMessage
{
Log::info(sprintf('%s:+ Sending a NODE MARKED HOLD EMAIL for address [%s]',self::LOGKEY,$this->ao->ftn));
$now = Carbon::now();
return (new MailMessage)
->cc(our_address($this->ao)->system->users->first()->email)
->subject('Your system has been marked HOLD')
->line(sprintf('Your system has been marked **HOLD**, because it hasnt polled **%s** with address %s since **%s** (%d days).',
$this->ao->zone->domain->name,
$this->ao->ftn4d,
$this->ao->system->last_session->format('Y-m-d'),
$this->ao->system->last_session->diffInDays($now)))
->line('')
->line('You have (waiting for collection):')
->lineIf($this->ao->uncollected_netmail,sprintf('* %s Netmails',number_format($this->ao->uncollected_netmail)))
->lineIf($this->ao->uncollected_echomail,sprintf('* %s Echomails',number_format($this->ao->uncollected_echomail)))
->lineIf($this->ao->uncollected_files,sprintf('* %s Files',number_format($this->ao->uncollected_files)))
->line('')
->line(sprintf('To clear this status, all you need to do make sure your system polls and collects mail by **%s**',$this->ao->system->last_session->addDays(config('fido.idle.down'))->format('Y-m-d')))
->line('If you think you\'ve received this email by mistake or need help, please let me know.');
}
}