Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 9s
Gemini PR Review / Gemini PR Review (pull_request) Successful in 13s
Laravel Larastan / larastan (pull_request) Failing after 2m34s
Laravel Pint / pint (pull_request) Failing after 2m33s
110 lines
2.6 KiB
PHP
110 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Notifications;
|
|
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use Illuminate\Notifications\Messages\MailMessage;
|
|
use Illuminate\Notifications\Notification;
|
|
use NotificationChannels\WebPush\WebPushMessage;
|
|
use NotificationChannels\WebPush\WebPushChannel;
|
|
|
|
|
|
class PushAlertNotification extends Notification
|
|
{
|
|
use Queueable;
|
|
|
|
/**
|
|
* Create a new notification instance.
|
|
*/
|
|
// public function __construct()
|
|
// {
|
|
// //
|
|
// }
|
|
|
|
public $title;
|
|
public $body;
|
|
|
|
public function __construct($title, $body)
|
|
{
|
|
$this->title = $title;
|
|
$this->body = $body;
|
|
}
|
|
|
|
// public function via($notifiable)
|
|
// {
|
|
// return [WebPushChannel::class];
|
|
// }
|
|
|
|
public function via($notifiable)
|
|
{
|
|
return [
|
|
'database', // ✅ Filament toast
|
|
WebPushChannel::class // ✅ Browser / PWA push
|
|
];
|
|
}
|
|
|
|
public function toDatabase($notifiable): array
|
|
{
|
|
return [
|
|
'title' => $this->title,
|
|
'body' => $this->body,
|
|
];
|
|
}
|
|
|
|
// public function toWebPush($notifiable, $notification)
|
|
// {
|
|
// return (new WebPushMessage)
|
|
// ->title('New Alert 🚨')
|
|
// ->icon('/pwa-192x192.png')
|
|
// ->body('You have a new notification')
|
|
// ->action('Open App', 'open_app')
|
|
// ->data(['url' => '/admin']);
|
|
// }
|
|
|
|
public function toWebPush($notifiable, $notification)
|
|
{
|
|
|
|
dd($this->title,$this->body);
|
|
return (new WebPushMessage)
|
|
->title($this->title)
|
|
->icon('/pwa-192x192.png')
|
|
->body($this->body)
|
|
->action('Open App', 'open_app')
|
|
->data(['url' => '/admin']);
|
|
}
|
|
|
|
/**
|
|
* 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
|
|
// {
|
|
// return (new MailMessage)
|
|
// ->line('The introduction to the notification.')
|
|
// ->action('Notification Action', url('/'))
|
|
// ->line('Thank you for using our application!');
|
|
// }
|
|
|
|
/**
|
|
* Get the array representation of the notification.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function toArray(object $notifiable): array
|
|
{
|
|
return [
|
|
//
|
|
];
|
|
}
|
|
}
|