70 lines
2.3 KiB
PHP
70 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Actions;
|
|
|
|
use App\Models\AlarmLevel;
|
|
use App\Models\BettypeUser;
|
|
use App\Models\Client;
|
|
use App\Models\MultilineSetting;
|
|
use App\Models\PersonalNotification;
|
|
use App\Models\Sport;
|
|
use App\Models\User;
|
|
use Filament\Notifications\Notification;
|
|
|
|
class SettingGeneratorUser
|
|
{
|
|
public static function run($record)
|
|
{
|
|
|
|
User::where('id', $record->id)->update(['all_only_none' => 1]);
|
|
|
|
/**************************************************
|
|
* 3) BETTYPES for USER in MONITOR
|
|
**************************************************/
|
|
|
|
$multilines = MultilineSetting::orderBy('sport_id')->get();
|
|
|
|
foreach ($multilines as $multiline) {
|
|
|
|
$is_active = in_array($multiline->id, [1, 2, 9, 10, 16, 17, 22, 23]) ? 1 : 0;
|
|
|
|
BettypeUser::updateOrCreate(
|
|
['sport_id' => $multiline->sport_id, 'user_id' => $record->id, 'multiline_setting_id' => $multiline->id],
|
|
['is_active' => $multiline->is_active, 'sorting' => $multiline->sorting],
|
|
);
|
|
}
|
|
|
|
/**************************************************
|
|
* 5) ALARM NOTIFICATION SETTINGS FOR USERS
|
|
**************************************************/
|
|
|
|
if (in_array($record->id, [1, 2])) {
|
|
$sports = Sport::where('is_active', 1)->pluck('id')->toArray();
|
|
} else {
|
|
$sports = Client::find($record->client_id)->value('sport');
|
|
}
|
|
$alarm_levels = AlarmLevel::get();
|
|
|
|
foreach ($alarm_levels as $alarm_level) {
|
|
|
|
PersonalNotification::firstOrCreate(
|
|
['user_id' => $record->id, 'bookmaker_id' => $record->bookmaker_id, 'alarm_level_id' => $alarm_level->id],
|
|
['notify_by_system' => 0, 'notify_by_email' => 0]
|
|
);
|
|
|
|
if ($record->partner_bookmaker_id) {
|
|
PersonalNotification::firstOrCreate(
|
|
['user_id' => $record->id, 'bookmaker_id' => $record->partner_bookmaker_id, 'alarm_level_id' => $alarm_level->id],
|
|
['notify_by_system' => 0, 'notify_by_email' => 0]
|
|
);
|
|
}
|
|
}
|
|
|
|
Notification::make()
|
|
->title('Settings for user generated successfully')
|
|
->success()
|
|
->send();
|
|
|
|
}
|
|
}
|