* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Notifications; use App\Models\User; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; class UserWarningExpired extends Notification { use Queueable; /** * Create a new notification instance. */ public function __construct(public User $user) { } /** * Get the notification's delivery channels. * * @return array */ public function via(object $notifiable): array { return ['database', 'mail']; } /** * Get the mail representation of the notification. */ public function toMail(object $notifiable): MailMessage { $profileUrl = href_profile($this->user); return (new MailMessage()) ->greeting('Warning Expired') ->line('One or more of your warnings have expired or been seeded off.') ->action('View Profile!', $profileUrl) ->line('Thank you for using 🚀'.config('other.title')); } /** * Get the array representation of the notification. * * @return array */ public function toArray(object $notifiable): array { return [ 'title' => 'Warning Expired', 'body' => 'One or more of your warnings have expired or been seeded off', 'url' => \sprintf('/users/%s', $this->user->username), ]; } }