offer = $offer; $this->workflow = $workflow; $this->step = $step; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return ['mail', 'database']; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { return $this->{$this->step}(); } /** * Get the mail representation of the completed notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function complete() { $message = new MailMessage; $message->greeting("Hi {$this->offer->reporting->name}!"); $message->line("The offer [{$this->offer->title}] has been completed successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the mail representation of the publish notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function verify() { $message = new MailMessage; $message->greeting("Hi {$this->offer->reporting->name}!"); $message->line("The offer {$this->offer->titile} has been verified successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the mail representation of the publish notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function approve() { $message = new MailMessage; $message->greeting("Hi {$this->offer->reporting->name}!"); $message->line("The offer {$this->offer->titile} has been approved successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the mail representation of the publish notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function publish() { $message = new MailMessage; $message->greeting("Hi {$this->offer->reporting->name}!"); $message->line("The offer {$this->offer->titile} has been published successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the mail representation of the publish notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function unpublish() { $message = new MailMessage;; $message->greeting("Hi {$this->offer->reporting->name}!"); $message->line("The offer {$this->offer->titile} has been unpublished successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the mail representation of the publish notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function archive() { $message = new MailMessage;; $message->greeting("Hi {$this->offer->reporting->name}!"); $message->line("The offer {$this->offer->titile} has been archived successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the mail representation of the publish notification. * * @return \Illuminate\Notifications\Messages\MailMessage */ public function cancel() { $message = new MailMessage;; $message->greeting("Hi {$this->offer->user->name}!"); $message->line("The offer {$this->offer->titile} has been cancelled successfully."); foreach ($this->workflow as $key => $value) { if ($key == 0) { $message->action($value->action, url('workflows/workflow/' . $value->id)); continue; } $message->line(''.$value->action.''); } return $message; } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ 'name' => $this->offer->title, 'user' => $notifiable->name, 'action' => $this->offer->status, 'next' => [ 'actionText' => $this->{$this->step}()->actionText, 'actionUrl' => $this->{$this->step}()->actionUrl, ] ]; } }