select('id', 'sport_id', 'bet365_id', 'starttime')->get(); } elseif ($today) { $events = Event::where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDay()->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get(); } elseif ($week) { $events = Event::where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get(); } else { // all $events = Event::where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get(); } foreach ($events as $key => $event) { if ($debug) { Notice::note([ 'id' => $event->id, 'bet365_id' => $event->bet365_id, 'starttime' => $event->starttime, 'count' => count($events).'/'.$key + 1, ], 'b'); } /** * BET365 ODDS (per event) */ $url = 'https://api.b365api.com/v4/bet365/prematch?token='.config('env.betsapi_token').'&FI='.$event->bet365_id; $data = Curl::load($url); if (isset($data['results'][0]['main'])) { $offer = $data['results'][0]['main']['sp']; $base = []; $base['sport_id'] = $event->sport_id; $base['provider_id'] = Nuh::$options['provider_id']; $base['bmoid'] = $event->bet365_id; $base['flag'] = 1; /** * 1X2 */ if (isset($offer['full_time_result'])) { $odds = []; $odds['h3w'] = $offer['full_time_result']['odds'][0]['odds'] ?? 1; $odds['d3w'] = $offer['full_time_result']['odds'][1]['odds'] ?? 1; $odds['a3w'] = $offer['full_time_result']['odds'][2]['odds'] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); Odds3way::updateOrCreate([ 'event_id' => $event->id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); } /** * DC */ if (isset($offer['double_chance'])) { $odds = []; $odds['dc1x'] = $offer['double_chance']['odds'][0]['odds'] ?? 1; $odds['dc12'] = $offer['double_chance']['odds'][1]['odds'] ?? 1; $odds['dcx2'] = $offer['double_chance']['odds'][2]['odds'] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); OddsDc::updateOrCreate([ 'event_id' => $event->id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); } /** * OU */ if (isset($offer['goals_over_under'])) { $odds = []; $odds['over'] = $offer['goals_over_under']['odds'][0]['odds'] ?? 1; $odds['under'] = $offer['goals_over_under']['odds'][1]['odds'] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); if ($base['sport_id'] == 1) { $odds['active_spread'] = 1; } if ($offer['goals_over_under']['odds'][1]['name'] == '2.5') { OddsTotal::updateOrCreate([ 'event_id' => $event->id, 'bookmaker_id' => $bookmaker_id, 'total' => 2.5, ], $base + $odds); } } /** * GG NG */ if (isset($offer['both_teams_to_score'])) { $odds = []; $odds['gg'] = $offer['both_teams_to_score']['odds'][0]['odds'] ?? 1; $odds['ng'] = $offer['both_teams_to_score']['odds'][1]['odds'] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); OddsGgng::updateOrCreate([ 'event_id' => $event->id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); } /** * DNB */ if (isset($offer['draw_no_bet'])) { $odds = []; $odds['dnb1'] = $offer['draw_no_bet']['odds'][0]['odds'] ?? 1; $odds['dnb2'] = $offer['draw_no_bet']['odds'][1]['odds'] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); OddsDnb::updateOrCreate([ 'event_id' => $event->id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); } /** * HALFTIME */ $offer = $data['results'][0]['half']['sp'] ?? ''; /** * 1X2 HT */ if (isset($offer['half_time_result'])) { $odds = []; $odds['h3w'] = $offer['half_time_result']['odds'][0]['odds'] ?? 1; $odds['d3w'] = $offer['half_time_result']['odds'][1]['odds'] ?? 1; $odds['a3w'] = $offer['half_time_result']['odds'][2]['odds'] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); Odds3wayHt::updateOrCreate([ 'event_id' => $event->id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); } } } } }