demo = $demo;
$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->demo->reporting->name}!");
$message->line("The demo [{$this->demo->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->demo->reporting->name}!");
$message->line("The demo {$this->demo->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->demo->reporting->name}!");
$message->line("The demo {$this->demo->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->demo->reporting->name}!");
$message->line("The demo {$this->demo->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->demo->reporting->name}!");
$message->line("The demo {$this->demo->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->demo->reporting->name}!");
$message->line("The demo {$this->demo->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->demo->user->name}!");
$message->line("The demo {$this->demo->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->demo->title,
'user' => $notifiable->name,
'action' => $this->demo->status,
'next' => [
'actionText' => $this->{$this->step}()->actionText,
'actionUrl' => $this->{$this->step}()->actionUrl,
]
];
}
}