Files
nuhodds_fi4/app/Console/Commands/Services/Tasks/Alarm/AlarmStore.php
T
2026-01-27 08:21:12 +01:00

60 lines
1.6 KiB
PHP

<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
use App\Models\EventBookmaker;
class AlarmStore
{
public static function get($event_id, $table, $client_bookmaker_id, $alarm_threshold, $compare_odds, $client_odds)
{
$oddnames = AlarmMap::get($table);
if (! $compare_odds) {
return;
}
if (! $client_odds) {
return;
}
/**
* get favorit
*/
$favorit = 100;
foreach ($oddnames as $fieldname => $oddname) {
if ($client_odds[$oddname] < $favorit) {
$favorit = $oddname;
}
}
/**
* evaluate
*/
$update_array = [];
foreach ($oddnames as $fieldname => $oddname) {
if ($oddname == $favorit) {
$threshold = $client_odds[$oddname] - $compare_odds[$oddname];
if ($threshold > $alarm_threshold[3]) {
// ROT
$update_array[$fieldname] = 3;
} elseif ($threshold > $alarm_threshold[2]) {
// ORANGE
$update_array[$fieldname] = 2;
} elseif ($threshold > $alarm_threshold[1]) {
// GRÜNE
$update_array[$fieldname] = 1;
} else {
// Reset Alarm
$update_array[$fieldname] = 0;
}
} else {
$update_array[$fieldname] = 0;
}
}
EventBookmaker::where('event_id', $event_id)->where('bookmaker_id', $client_bookmaker_id)->update($update_array);
}
}