diff --git a/app/Notifications/TaskDateUpdated.php b/app/Notifications/TaskDateUpdated.php new file mode 100644 index 0000000..9bbc818 --- /dev/null +++ b/app/Notifications/TaskDateUpdated.php @@ -0,0 +1,74 @@ +web_notifications) { + $channels[] = 'database'; + $channels[] = 'broadcast'; + } + + if ($notifiable->email_notifications) { + $channels[] = 'mail'; + } + + return $channels; + } + + public function toDatabase($notifiable): array + { + return [ + 'message' => "La date de la tâche {$this->task->name} de l'événement {$this->event->name} a été mise à jour. Cette tâche aura maintenant lieu du {$this->newStart} au {$this->newEnd}.", + 'task_id' => $this->task->id, + 'event_id' => $this->event->id, + 'old_start' => $this->oldStart, + 'old_end' => $this->oldEnd, + 'new_start' => $this->newStart, + 'new_end' => $this->newEnd, + ]; + } + + public function toBroadcast($notifiable): BroadcastMessage + { + return new BroadcastMessage($this->toDatabase($notifiable)); + } + + public function toMail($notifiable): void + { + Mail::to($notifiable->email)->send(new TaskDateUpdateMail([ + 'name' => $notifiable->name, + 'lastname' => $notifiable->lastname, + 'taskName' => $this->task->name, + 'oldStart' => $this->oldStart, + 'oldEnd' => $this->oldEnd, + 'newStart' => $this->newStart, + 'newEnd' => $this->newEnd, + 'eventName' => $this->event->name, + ])); + } +}