2024-05-25 12:25:57 +00:00
< ? php
namespace App\Notifications\Netmails ;
use Carbon\Carbon ;
use Illuminate\Bus\Queueable ;
use Illuminate\Support\Facades\Log ;
use App\Classes\FTN\Message ;
use App\Notifications\Netmails ;
use App\Models\ { Address , Netmail };
use App\Traits\PageTemplate ;
class NodeMarkedHold extends Netmails //implements ShouldQueue
{
use Queueable , PageTemplate ;
2024-05-26 10:53:59 +00:00
private const LOGKEY = 'NNH' ;
2024-05-25 12:25:57 +00:00
/**
* Create a new notification instance .
*/
public function __construct ( private Address $ao )
{
parent :: __construct ();
}
/**
* Get the mail representation of the notification .
*/
public function toNetmail ( object $notifiable ) : Netmail
{
$now = Carbon :: now ();
$o = $this -> setupNetmail ( $notifiable );
$ao = $notifiable -> routeNotificationFor ( static :: via );
Log :: info ( sprintf ( '%s:+ Sending a NODE MARKED HOLD for address [%s]' , self :: LOGKEY , $ao -> ftn ));
$o -> subject = 'Your system has been marked HOLD' ;
$o -> flags = ( Message :: FLAG_LOCAL | Message :: FLAG_PRIVATE | Message :: FLAG_CRASH );
// Message
$msg = $this -> page ( TRUE , 'hold' );
$msg -> addText ( sprintf ( " Hi %s, \r \r " , $this -> ao -> system -> sysop ))
2024-09-15 12:00:40 +00:00
-> addText ( sprintf ( " Your system has been marked **HOLD**, because it hasnt polled **%s** with address %s since **%s** (%d days). \r " , $this -> ao -> zone -> domain -> name , $this -> ao -> ftn4d , $this -> ao -> system -> last_seen ? -> format ( 'Y-m-d' ) ? : 'Not seen' , $this -> ao -> system -> last_seen ? -> diffInDays ( $now )))
2024-05-25 12:25:57 +00:00
-> addText ( " \r " )
-> addText ( " You have (waiting for collection): \r " )
2024-10-09 04:41:08 +00:00
-> addText ( sprintf ( '* %s Netmails' , number_format ( $this -> ao -> netmailWaiting () -> count ())))
-> addText ( sprintf ( '* %s Echomails' , number_format ( $this -> ao -> echomailWaiting () -> count ())))
-> addText ( sprintf ( '* %s Files' , number_format ( $this -> ao -> filesWaiting () -> count ())))
2024-05-25 12:25:57 +00:00
-> addText ( " \r " )
2024-09-15 12:00:40 +00:00
-> addText ( sprintf ( " To clear this status, all you need to do make sure your system polls and collects mail by **%s** \r \r " ,( $this -> ao -> system -> last_seen ? : Carbon :: now ()) -> addDays ( config ( 'fido.idle.down' )) -> format ( 'Y-m-d' )))
2024-05-25 12:25:57 +00:00
-> addText ( " If you think you've received this netmail by mistake or need help, please let me know. \r " );
$o -> msg = $msg -> render ();
2024-06-03 09:08:40 +00:00
$o -> set_tagline = 'You\'ve been marked HOLD' ;
2024-05-25 12:25:57 +00:00
$o -> save ();
return $o ;
}
}