document = $document; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { $channels = ['database']; if (isPusherEnabled()) { $channels[] = 'broadcast'; } return $channels; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { return (new MailMessage) ->line('The introduction to the notification.') ->action('Notification Action', 'https://laravel.com') ->line('Thank you for using our application!'); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ 'task_id' => $this->document['task_id'], 'uploaded_by' => $this->document['uploaded_by'], 'id' => $this->document['id'], ]; } /** * Get the broadcastable representation of the notification. * * @param mixed $notifiable * @return BroadcastMessage */ public function toBroadcast($notifiable) { return new BroadcastMessage([ 'title' => __('essentials::lang.new_document'), 'body' => strip_tags(__('essentials::lang.new_task_document_notification', ['uploaded_by' => $this->document['uploaded_by_user_name'], 'task_id' => $this->document['task_id']])), 'link' => action([\Modules\Essentials\Http\Controllers\ToDoController::class, 'show'], $this->document['id']), ]); } }