<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Log;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
class EventNotification
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $event;
public $user;
public function __construct($event, $user)
{
$this->event = $event;
$this->user = $user;
}
public function handle()
{
if (UserEmailNotificationSetup('Event_Invitation', $this->user)) {
SendGeneralEmail::dispatch($this->user, 'Event_Invitation', [
'name' => $this->user->name,
'event_title' => $this->event->title,
'event_host' => $this->event->host,
'event_url' => $this->event->url,
'start_date' => showDate($this->event->from_date),
'end_date' => showDate($this->event->to_date),
'start_time' => $this->event->start_time,
'end_time' => $this->event->end_time,
'description' => $this->event->event_des,
'event_location' => $this->event->event_location,
]);
}
if (UserBrowserNotificationSetup('Event_Invitation', $this->user)) {
send_browser_notification($this->user, 'Event_Invitation', [
'name' => $this->user->name,
'event_title' => $this->event->title,
'event_host' => $this->event->host,
'event_url' => $this->event->url,
'start_date' => showDate($this->event->from_date),
'end_date' => showDate($this->event->to_date),
'start_time' => $this->event->start_time,
'end_time' => $this->event->end_time,
'description' => $this->event->event_des,
'event_location' => $this->event->event_location,
],
trans('common.View'),
$this->event->url
);
}
if (UserMobileNotificationSetup('Event_Invitation', $this->user) && !empty($this->user->device_token)) {
send_mobile_notification($this->user, 'Event_Invitation', [
'name' => $this->user->name,
'event_title' => $this->event->title,
'event_host' => $this->event->host,
'event_url' => $this->event->url,
'start_date' => showDate($this->event->from_date),
'end_date' => showDate($this->event->to_date),
'start_time' => $this->event->start_time,
'end_time' => $this->event->end_time,
'description' => $this->event->event_des,
'event_location' => $this->event->event_location,
]);
}
}
}