Files
nuhodds_fi4/app/Mapper/FindEvent.php
T
2026-01-02 12:20:08 +01:00

147 lines
4.8 KiB
PHP

<?php
namespace App\Mapper;
use App\Models\Event;
use App\Models\Mapper;
use Illuminate\Support\Carbon;
class FindEvent
{
public static function search($event, &$groups, &$elements)
{
$event_id = $event['event_id'];
$betradar_id = $event['betradar_id'] ?? 0;
$betsapi_id = $event['betsapi_id'] ?? 0;
$bet365_id = $event['bet365_id'] ?? 0;
unset($event['event_id']);
switch ($event['provider_id']) {
case 2:
// BETSAPI
$match_id = Event::where('betsapi_id', $event_id)->value('id');
break;
case 3:
// MAGLOO KENIA
$match_id = Event::where('magken_id', $event_id)->value('id');
break;
case 4:
// MAGLOO NIGERIA
$match_id = Event::where('magnig_id', $event_id)->value('id');
break;
case 5:
// LOGIFUTUR NIGERA
$match_id = Event::where('lognig_id', $event_id)->value('id');
break;
case 6:
// LOGIFUTUR COLOMBIA
$match_id = Event::where('logcol_id', $event_id)->value('id');
break;
default:
Notice::note('unknown provider', 'r', 1);
break;
}
if ($match_id) {
Mapper::where('event_id', $event_id)->delete();
$event = Event::where('id', $match_id)->first();
$update_array = [];
if ($betradar_id && ! $event->betradar_id) {
$update_array['betradar_id'] = $betradar_id;
}
if ($betsapi_id && ! $event->betsapi_id) {
$update_array['betsapi_id'] = $betsapi_id;
}
if ($bet365_id && ! $event->bet365_id) {
$update_array['bet365_id'] = $bet365_id;
}
if ($update_array) {
Event::where('id', $match_id)->update($update_array);
exit;
}
} else {
$home_id = $elements[$event['home_id']] ?? 0;
$away_id = $elements[$event['away_id']] ?? 0;
$cgid = $groups[$event['group_id']] ?? 0;
$startime = $event['starttime'];
if ($home_id && $away_id && $cgid) {
$from = Carbon::createFromDate($startime)->subDay();
$to = Carbon::createFromDate($startime)->addDay();
// dd($home_id, $away_id, $cgid, $from->toDateTimeString(), $to->toDateTimeString());
$match_id = Event::query()
->where('home_id', $home_id)
->where('away_id', $away_id)
->where('competition_group_id', $cgid)
->where('starttime', '>', $from->toDateTimeString())
->where('starttime', '<', $to->toDateTimeString())
->value('id');
if ($match_id) {
$update_array = [];
if ($betradar_id) {
$update_array['betradar_id'] = $betradar_id;
}
if ($betsapi_id) {
$update_array['betsapi_id'] = $betsapi_id;
}
if ($bet365_id) {
$update_array['bet365_id'] = $bet365_id;
}
if ($update_array) {
Event::where('id', $match_id)->update($update_array);
}
switch ($event['provider_id']) {
case 2:
// BETSAPI
Event::where('id', $match_id)->update(['betsapi_id' => $event_id]);
break;
case 3:
// MAGLOO KENIA
Event::where('id', $match_id)->update(['magken_id' => $event_id]);
break;
case 4:
// MAGLOO NIGERIA
Event::where('id', $match_id)->update(['magnig_id' => $event_id]);
break;
case 5:
// LOGIFUTUR NIGERA
Event::where('id', $match_id)->update(['lognig_id' => $event_id]);
break;
case 6:
// LOGIFUTUR COLOMBIA
Event::where('id', $match_id)->update(['logcol_id' => $event_id]);
break;
default:
}
} else {
Mapper::updateOrCreate(['event_id' => $event_id], $event);
}
} else {
Mapper::updateOrCreate(['event_id' => $event_id], $event);
}
}
}
}