<?php namespace App\Notifications\Container; use App\Models\Server; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; class ContainerRestarted extends Notification implements ShouldQueue { use Queueable; public $tries = 1; public function __construct(public string $name, public Server $server, public ?string $url = null) { } public function via(object $notifiable): array { return setNotificationChannels($notifiable, 'status_changes'); } public function toMail(): MailMessage { $mail = new MailMessage(); $mail->subject("Last Hour Cloud: A resource ({$this->name}) has been restarted automatically on {$this->server->name}"); $mail->view('emails.container-restarted', [ 'containerName' => $this->name, 'serverName' => $this->server->name, 'url' => $this->url, ]); return $mail; } public function toDiscord(): string { $message = "Last Hour Cloud: A resource ({$this->name}) has been restarted automatically on {$this->server->name}"; return $message; } public function toTelegram(): array { $message = "Last Hour Cloud: A resource ({$this->name}) has been restarted automatically on {$this->server->name}"; $payload = [ 'message' => $message, ]; if ($this->url) { $payload['buttons'] = [ [ [ "text" => "Check Proxy in Last Hour Cloud", "url" => $this->url ] ] ]; } return $payload; } }