$alarm) {
$event = Event::with('competition_group')->with('home')->with('away')->find($event_id);
foreach ($alarm as $user_id => $alarm_user) {
$user = User::find($user_id);
foreach ($alarm_user as $bookmaker_id => $alarm_user_bookmaker) {
$bookmaker = Bookmaker::find($bookmaker_id);
foreach ($alarm_user_bookmaker as $mode => $alarm_user_bookmaker_mode) {
foreach ($alarm_user_bookmaker_mode as $fieldname => $alarm_level_id) {
$bet = OddsName::where('alarm', $fieldname)->select('table', 'bettype', 'name')->first()->toArray();
$quote = DB::table($bet['table'])->where('event_id', $event_id)->where('bookmaker_id', $bookmaker_id)->value($bet['name']);
switch ($mode) {
case 'mail':
$send = CheckSend::check($event_id, $user_id, $bookmaker_id, $alarm_level_id, $fieldname, 'notify_by_email');
if (! $send) {
$send = StoreSend::store($event_id, $user_id, $bookmaker_id, $alarm_level_id, $fieldname, 'notify_by_mail');
switch ($alarm_level_id) {
case 1:
$message = '
ALARM LEVEL '.$alarm_level_id.'
';
break;
case 2:
$message = 'ALARM LEVEL '.$alarm_level_id.'
';
break;
default:
$message = 'ALARM LEVEL '.$alarm_level_id.'
';
break;
}
$tablecontent = [
['key' => 'League', 'value' => $event->competition_group->name],
['key' => 'Event', 'value' => $event->home->name.' vs '.$event->away->name],
['key' => 'Startime', 'value' => $event->starttime],
['key' => 'Bookmaker', 'value' => $bookmaker->name],
['key' => 'Bettype', 'value' => $bet['bettype']],
['key' => 'Odd Name', 'value' => strtoupper($bet['name'])],
['key' => 'Value', 'value' => $quote],
];
Mail::to($user)
->send(new AlarmNotification($message, $tablecontent));
}
$stored_alarms[] = $send;
break;
case 'system':
$send = CheckSend::check($event_id, $user_id, $bookmaker_id, $alarm_level_id, $fieldname, 'notify_by_system');
if (! $send) {
$send = StoreSend::store($event_id, $user_id, $bookmaker_id, $alarm_level_id, $fieldname, 'notify_by_system');
switch ($alarm_level_id) {
case 1:
$title = 'ALARM LEVEL '.$alarm_level_id.'
';
break;
case 2:
$title = 'ALARM LEVEL '.$alarm_level_id.'
';
break;
default:
$title = 'ALARM LEVEL '.$alarm_level_id.'
';
break;
}
$message = '';
$message .= '
League
'.$event->competition_group->name.'
';
$message .= '
Event
'.$event->home->name.' vs '.$event->away->name.'
';
$message .= '
Startime
'.$event->starttime.'
';
$message .= '
Bookmaker
'.$bookmaker->name.'
';
$message .= '
Bettype
'.$bet['bettype'].'
';
$message .= '
Odd Name
'.$bet['name'].'
';
$message .= '
Value
'.$quote.'
';
Notification::make()
->title($title)
->icon('phosphor-envelope-duotone')
->body($message)
->sendToDatabase($user);
break;
}
$stored_alarms[] = $send;
}
}
}
}
}
}
if ($stored_alarms) {
PersonalNotificationSend::whereNotIn('id', $stored_alarms)->delete();
}
}
}