2024-02-25 22:34:01 +00:00
< ? php
namespace App\Notifications\Server ;
use App\Models\Server ;
use App\Notifications\Channels\DiscordChannel ;
use App\Notifications\Channels\EmailChannel ;
use App\Notifications\Channels\TelegramChannel ;
2024-10-01 19:38:12 +00:00
use App\Notifications\Dto\DiscordMessage ;
2024-06-10 20:43:34 +00:00
use Illuminate\Bus\Queueable ;
2024-02-25 22:34:01 +00:00
use Illuminate\Contracts\Queue\ShouldQueue ;
use Illuminate\Notifications\Messages\MailMessage ;
use Illuminate\Notifications\Notification ;
2024-02-26 09:25:21 +00:00
class ForceDisabled extends Notification implements ShouldQueue
2024-02-25 22:34:01 +00:00
{
use Queueable ;
public $tries = 1 ;
2024-06-10 20:43:34 +00:00
2024-11-22 10:16:01 +00:00
public function __construct ( public Server $server )
{
$this -> onQueue ( 'high' );
}
2024-02-25 22:34:01 +00:00
public function via ( object $notifiable ) : array
{
$channels = [];
$isEmailEnabled = isEmailEnabled ( $notifiable );
$isDiscordEnabled = data_get ( $notifiable , 'discord_enabled' );
$isTelegramEnabled = data_get ( $notifiable , 'telegram_enabled' );
if ( $isDiscordEnabled ) {
$channels [] = DiscordChannel :: class ;
}
if ( $isEmailEnabled ) {
$channels [] = EmailChannel :: class ;
}
if ( $isTelegramEnabled ) {
$channels [] = TelegramChannel :: class ;
}
2024-06-10 20:43:34 +00:00
2024-02-25 22:34:01 +00:00
return $channels ;
}
public function toMail () : MailMessage
{
2024-07-24 19:11:12 +00:00
$mail = new MailMessage ;
2024-02-25 22:34:01 +00:00
$mail -> subject ( " Coolify: Server ( { $this -> server -> name } ) disabled because it is not paid! " );
2024-02-26 09:25:21 +00:00
$mail -> view ( 'emails.server-force-disabled' , [
2024-02-25 22:34:01 +00:00
'name' => $this -> server -> name ,
]);
2024-06-10 20:43:34 +00:00
2024-02-25 22:34:01 +00:00
return $mail ;
}
2024-10-01 19:38:12 +00:00
public function toDiscord () : DiscordMessage
2024-02-25 22:34:01 +00:00
{
2024-10-01 19:38:12 +00:00
$message = new DiscordMessage (
2024-10-21 20:40:43 +00:00
title : ':cross_mark: Server disabled' ,
description : " Server ( { $this -> server -> name } ) disabled because it is not paid! " ,
2024-10-01 19:38:12 +00:00
color : DiscordMessage :: errorColor (),
);
2024-10-21 20:40:43 +00:00
$message -> addField ( 'Please update your subscription to enable the server again!' , '[Link](https://app.coolify.io/subscriptions)' );
2024-06-10 20:43:34 +00:00
2024-02-25 22:34:01 +00:00
return $message ;
}
2024-06-10 20:43:34 +00:00
2024-02-25 22:34:01 +00:00
public function toTelegram () : array
{
return [
2024-09-23 08:46:19 +00:00
'message' => " Coolify: Server ( { $this -> server -> name } ) disabled because it is not paid! \n All automations and integrations are stopped. \n Please update your subscription to enable the server again [here](https://app.coolify.io/subscriptions). " ,
2024-02-25 22:34:01 +00:00
];
}
}