This commit is contained in:
salam committed 2025-12-01 21:50:23 +01:00
1 parent 419148cd18
commit 7abcc5c56c
75 files changed
+32250 -127794

No files matched your search

+4 -4
View File
@@ -8,10 +8,10 @@ class Curl
{ {
public static $file; public static $file;
public static function load($url) public static function load($url, $filetype = 'json')
{ {
self::$file = app_path().'/Console/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.'.NuhBash::$options['filetype']; self::$file = app_path().'/Console/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.'.$filetype;
$debug = NuhBash::$options['d'] ?? 0; $debug = NuhBash::$options['d'] ?? 0;
$save = NuhBash::$options['s'] ?? 0; $save = NuhBash::$options['s'] ?? 0;
@@ -25,7 +25,7 @@ class Curl
if ($debug) { if ($debug) {
Notice::note('data read local', 'r'); Notice::note('data read local', 'r');
} }
switch (NuhBash::$options['filetype']) { switch ($filetype) {
case 'xml': case 'xml':
return simplexml_load_file(self::$file, null, LIBXML_NOCDATA); return simplexml_load_file(self::$file, null, LIBXML_NOCDATA);
break; break;
@@ -61,7 +61,7 @@ class Curl
file_put_contents(self::$file, $data); file_put_contents(self::$file, $data);
} }
if (NuhBash::$options['filetype'] == 'json') { if ($filetype == 'json') {
return json_decode($data, true); return json_decode($data, true);
} else { } else {
return $data; return $data;
@@ -1,8 +0,0 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\DB;
class DbOdds
{
public static function call() {}
}
@@ -1,51 +0,0 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Grapper\Grapper;
use App\Models\Event;
use App\Utilities\Notice;
use Illuminate\Support\Carbon;
class Events
{
public static function grap()
{
Notice::note('txodd fixture sport: '.Grapper::$options['sport_id'], 'b');
$debug = Grapper::$options['d'] ?? 0;
$now = Carbon::tomorrow();
for ($i = 0; $i < 60; $i++) {
$from = $now->toDateString();
$to = $now->addDays(1)->toDateString();
$url = Grapper::$domain.'feed/result/xml.php?'.Grapper::$auth."&date=$from,$to";
if ($debug) {
Notice::note($url, 'y');
}
$xml = simplexml_load_file($url, null, LIBXML_NOCDATA);
foreach ($xml->match as $_match) {
Event::updateOrCreate([
'txid' => (int) $_match['id'],
'spid' => Grapper::$options['sport_id'],
'prid' => Grapper::$options['provider_id'],
'cnid' => (int) $_match->group['cnid'], // country_id
'grid' => (int) $_match->group['id'], // group_id
'cgid' => (int) $_match->group['cgid'], // competition_group_id
'hoid' => (int) $_match->hteam['id'],
'awid' => (int) $_match->ateam['id'],
'home' => (string) $_match->hteam,
'away' => (string) $_match->ateam,
'liga' => (string) $_match->group['cname'],
], [
'time' => Carbon::parse($_match->time)->toDateTimeString(),
]);
}
}
}
}
@@ -3,11 +3,11 @@
namespace App\Console\Commands\Grapper\TxOdds; namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Curl; use App\Console\Commands\Curl;
use App\Console\Commands\Grapper\TxOdds\Fixtures\TxCountry;
use App\Console\Commands\Grapper\TxOdds\Fixtures\TxElement;
use App\Console\Commands\Grapper\TxOdds\Fixtures\TxLiga;
use App\Console\Commands\NuhBash; use App\Console\Commands\NuhBash;
use App\Models\CompetitionGroup;
use App\Models\Element;
use App\Models\Event; use App\Models\Event;
use App\Models\Group;
use App\Utilities\Notice; use App\Utilities\Notice;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
@@ -17,7 +17,6 @@ class Fixtures
{ {
$debug = NuhBash::$options['d'] ?? 0; $debug = NuhBash::$options['d'] ?? 0;
$print = NuhBash::$options['p'] ?? 0; $print = NuhBash::$options['p'] ?? 0;
$read = NuhBash::$options['r'] ?? 0;
$break = NuhBash::$options['b'] ?? 0; $break = NuhBash::$options['b'] ?? 0;
$total = 0; $total = 0;
@@ -29,38 +28,86 @@ class Fixtures
$to = $date->addDays($i + 1)->toDateString(); $to = $date->addDays($i + 1)->toDateString();
$url = 'https://xml2.txodds.com/feed/result/xml.php?'.config('nuh.txodds_token_soccer')."&date=$from,$to&json=2"; $url = 'https://xml2.txodds.com/feed/result/xml.php?'.config('nuh.txodds_token_soccer')."&date=$from,$to&json=2";
$data = Curl::load($url, $debug); $data = Curl::load($url);
if ($print) { if ($print) {
Notice::note($data, '', 1); Notice::note($data, '', 1);
} }
$count = 0; $count = 0;
foreach ($data['match'] as $row) { $e = [];
foreach ($data['match'] as $match) {
foreach ($match as $key => $v) {
switch ($key) {
case '@attributes':
$e['txodds_id'] = (int) $v['id'];
break;
case 'time':
$starttime = Carbon::createFromDate($v)->toDateTimeString();
break;
case 'group':
$e['sport_id'] = (int) $v['@attributes']['spid'];
$e['country_id'] = (int) $v['@attributes']['cnid'];
$e['group_id'] = (int) $v['@attributes']['id'];
$e['competition_group_id'] = (int) $v['@attributes']['cgid'];
Group::firstOrCreate([
'txodds_id' => $v['@attributes']['id'],
'competition_group_id' => $e['competition_group_id'],
], [
'name' => (string) $v['@text'],
'sport_id' => $e['sport_id'],
'country_id' => $e['country_id'],
]);
CompetitionGroup::firstOrCreate([
'txodds_id' => $v['@attributes']['cgid'],
'name' => $v['@attributes']['cname'],
'sport_id' => $e['sport_id'],
'country_id' => $e['country_id'],
]);
break;
case 'hteam':
$e['home_id'] = $v['@attributes']['id'];
Element::firstOrCreate([
'txodds_id' => (int) $v['@attributes']['id'],
'name' => $v['@text'],
'sport_id' => $e['sport_id'],
]);
break;
case 'ateam':
$e['away_id'] = $v['@attributes']['id'];
Element::firstOrCreate([
'txodds_id' => (int) $v['@attributes']['id'],
'name' => $v['@text'],
'sport_id' => $e['sport_id'],
]);
break;
}
}
Event::firstOrCreate($e, ['starttime' => $starttime]);
$count++; $count++;
$txodds_id = array_column($row, 'id');
$spid = array_column($row['group'], 'spid');
$country_id = TxCountry::find($row['group']);
$liga_id = TxLiga::find($country_id, $row['group']);
$home_id = TxElement::find($row['hteam'], 1);
$away_id = TxElement::find($row['ateam'], 1);
$event = Event::updateOrCreate([
'starttime' => date('Y-m-d H:i:s', strtotime($row['time'])),
'sport_id' => (int) $spid[0],
'provider_id' => 1,
'txodds_id' => (int) $txodds_id[0],
'country_id' => (int) $country_id,
'liga_id' => (int) $liga_id,
'home_id' => (int) $home_id,
'away_id' => (int) $away_id,
]);
} }
Notice::note("$from - $count events processed", 'g');
if ($debug) {
Notice::note("$from - $count events processed", 'g');
}
$total += $count; $total += $count;
if ($break) { if ($break || $debug) {
break; break;
} }
} }
@@ -1,22 +0,0 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Fixtures;
use App\Models\Country;
class TxCountry
{
public static function find($group)
{
$cnid = array_column($group, 'cnid');
$cname = array_column($group, 'cname');
$country = Country::firstOrCreate(
['txid' => $cnid[0]],
['name' => $cname[0]]
);
return $country->id;
}
}
@@ -1,25 +0,0 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Fixtures;
use App\Models\Element;
class TxElement
{
public static function find($element, $sport_id)
{
// dd($element);
$txodds_id = array_column($element, 'id');
$element = Element::firstOrCreate([
'name' => (string) $element['@text'],
'sport_id' => $sport_id,
'txodds_id' => (int) $txodds_id[0],
]);
return $element->id;
}
}
@@ -1,24 +0,0 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Fixtures;
use App\Models\Liga;
class TxLiga
{
public static function find($country_id, $group)
{
$cname = array_column($group, 'cname');
$spid = array_column($group, 'spid');
$cgid = array_column($group, 'cgid');
$liga = Liga::firstOrCreate([
'name' => (string) $cname[0],
'sport_id' => (int) $spid[0],
'country_id' => $country_id,
'txodds_id' => (int) $cgid[0],
]);
return $liga->id;
}
}
+191 -182
View File
@@ -6,6 +6,7 @@ use App\Console\Commands\Curl;
use App\Console\Commands\Grapper\Helper; use App\Console\Commands\Grapper\Helper;
use App\Console\Commands\NuhBash; use App\Console\Commands\NuhBash;
use App\Models\Event; use App\Models\Event;
use App\Models\EventBookmaker;
use App\Models\Odds3way; use App\Models\Odds3way;
use App\Models\OddsQualify; use App\Models\OddsQualify;
use App\Models\OddsTotal; use App\Models\OddsTotal;
@@ -17,7 +18,11 @@ class Odds
public static function grap() public static function grap()
{ {
Notice::note('txodd odd sport: '.NuhBash::$options['sport_id'], 'b'); $debug = NuhBash::$options['d'] ?? 0;
if ($debug) {
Notice::note('txodd odd sport: '.NuhBash::$options['sport_id'], 'b');
}
/************************************************* /*************************************************
* SINGLE SOCCER * SINGLE SOCCER
@@ -120,207 +125,211 @@ class Odds
*************************************************/ *************************************************/
foreach ($_calls as $url) { foreach ($_calls as $url) {
$json_obj = Curl::load($url, $debug); $json_obj = Curl::load($url);
$e = []; foreach ($json_obj['match'] as $match) {
foreach ($json_obj['match'] as $key => $v) { $e = [];
Notice::note($key, 'b'); foreach ($match as $key => $v) {
switch ($key) { // if ($debug) {
case '@attributes': // Notice::note($key, 'b');
$e['id'] = (int) $v['id']; // }
break;
case 'time': switch ($key) {
$e['time'] = $v;
break;
case 'group': case '@attributes':
$e['liga'] = $v['@attributes']['cname']; $e['id'] = (int) $v['id'];
$e['liid'] = $v['@attributes']['id']; break;
$e['cgid'] = $v['@attributes']['cgid'];
$e['spid'] = $v['@attributes']['spid'];
$e['mgid'] = $v['@attributes']['mgid'];
$e['cnid'] = $v['@attributes']['cnid'];
break;
case 'hteam': case 'time':
$e['hoid'] = $v['@attributes']['id']; $starttime = Carbon::createFromDate($v)->toDateTimeString();
$e['home'] = $v['@text']; break;
break;
case 'ateam': case 'group':
$e['awid'] = $v['@attributes']['id'];
$e['away'] = $v['@text'];
break;
case 'bookmaker': $e['sport_id'] = (int) $v['@attributes']['spid'];
$e['country_id'] = (int) $v['@attributes']['cnid'];
$e['group_id'] = (int) $v['@attributes']['id'];
$e['competition_group_id'] = (int) $v['@attributes']['cgid'];
break;
foreach ($v as $books) { case 'hteam':
$e['home_id'] = $v['@attributes']['id'];
break;
foreach ($books as $bkey => $book) { case 'ateam':
$e['away_id'] = $v['@attributes']['id'];
switch ($bkey) { $event = Event::firstOrCreate($e, ['starttime' => $starttime]);
case '@attributes': break;
$bname = $book['name'];
$bkmid = (int) $book['bid'];
$e['odds'][$bkmid]['name'] = $bname;
break;
case 'offer':
foreach ($book as $offer) { case 'bookmaker':
foreach ($offer as $type => $od) {
switch ($type) { foreach ($v as $books) {
case '@attributes':
$bettypeid = (int) $od['ot'];
dd('add to event bookmaker missing');
// 'book_startime' => $od['@attributes']['starting_time'],
$bmoid = $od['bmoid'];
break;
case 'odds':
switch ($bettypeid) {
case '0':
Odds3way::updateOrCreate(
[
'event_id' => $e['id'],
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'bmoid' => $bmoid,
],
[
'start' => $od['@attributes']['starting_time'],
'h3w' => (float) $od['o1'],
'd3w' => (float) $od['o2'],
'a3w' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '1': foreach ($books as $bookkey => $book) {
Odds2way::updateOrCreate(
[
'event_id' => $e['id'],
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'bmoid' => $bmoid,
],
[
'start' => $od['@attributes']['starting_time'],
'h2w' => (float) $od['o1'],
'a2w' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '4': $bkmid = false;
OddsTotal::updateOrCreate(
[
'event_id' => $e['id'],
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'bmoid' => $bmoid,
'spread' => (float) $od['o3'],
],
[
'start' => $od['@attributes']['starting_time'],
'over' => (float) $od['o1'],
'under' => (float) $od['o2'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '5242880': switch ($bookkey) {
OddsDc::updateOrCreate( case '@attributes':
[ if (isset($book['bid'])) {
'event_id' => $e['id'], $bkmid = (int) $book['bid'];
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'bmoid' => $bmoid,
],
[
'start' => $od['@attributes']['starting_time'],
'dc1x' => (float) $od['o1'],
'dc12' => (float) $od['o2'],
'dc2x' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '11534337':
OddsGgng::updateOrCreate(
[
'event_id' => $e['id'],
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'bmoid' => $bmoid,
],
[
'start' => $od['@attributes']['starting_time'],
'gg' => (float) $od['o1'],
'ng' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '11534337':
OddsQualify::updateOrCreate(
[
'event_id' => $e['id'],
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'bmoid' => $bmoid,
],
[
'start' => $od['@attributes']['starting_time'],
'htq' => (float) $od['o1'],
'atq' => (float) $od['o2'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
}
break;
}
} }
}
break; case 'offer':
if ($bkmid) {
foreach ($book as $type => $od) {
switch ($type) {
case '@attributes':
$bettypeid = (int) $od['ot'];
$bmoid = (int) $od['bmoid'];
break;
case 'odds':
switch ($bettypeid) {
case '0':
Odds3way::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
],
[
'h3w' => (float) $od['o1'],
'd3w' => (float) $od['o2'],
'a3w' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
EventBookmaker::updateOrCreate([
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'bmoid' => $bmoid,
], [
'bkm_starttime' => Carbon::createFromDate($od['@attributes']['starting_time'])->toDateTimeString(),
'last_check_at' => Carbon::now()->toDateTimeString(),
]);
break;
case '1':
Odds2way::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
],
[
'h2w' => (float) $od['o1'],
'a2w' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '4':
OddsTotal::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'spread' => (float) $od['o3'],
],
[
'over' => (float) $od['o1'],
'under' => (float) $od['o2'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '5242880':
OddsDc::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
],
[
'dc1x' => (float) $od['o1'],
'dc12' => (float) $od['o2'],
'dc2x' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '11534337':
OddsGgng::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
],
[
'gg' => (float) $od['o1'],
'ng' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '11534337':
OddsQualify::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
],
[
'htq' => (float) $od['o1'],
'atq' => (float) $od['o2'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
}
break;
}
}
break;
}
}
} }
} }
} break;
break;
}
} }
} }
} }
File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
{"@attributes":{"time":"2025-12-01T15:15:42+00:00","timestamp":"1764602142"},"match":[{"@attributes":{"id":"14546537","xsid":"0","gsmid":"0","last_updated":"2025-12-01T03:21:08+00:00"},"time":"2025-12-01T20:00:00+00:00","group":{"@attributes":{"id":"176998","cgid":"471","spid":"1","cnid":"467","mgid":"1002","cname":"Prim B Metro"},"@text":"FBARG Prim B Metro > Clausura-25"},"hteam":{"@attributes":{"id":"45668"},"@text":"Deportivo Armenio"},"ateam":{"@attributes":{"id":"41971"},"@text":"Sportivo Italiano"},"results":{"status":{"@attributes":{"last_updated":"2025-12-01T03:21:08+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14562676","xsid":"0","gsmid":"0","last_updated":"2025-12-01T04:01:21+00:00"},"time":"2025-12-01T00:00:00+00:00","group":{"@attributes":{"id":"180820","cgid":"501","spid":"1","cnid":"467","mgid":"1002","cname":"Torneo Regional Federal Amateur"},"@text":"FBARG Torneo Regional Federal Amateur-25"},"hteam":{"@attributes":{"id":"131618"},"@text":"Defensores de Salto"},"ateam":{"@attributes":{"id":"1642554"},"@text":"Argentino Chacabuco"},"results":{"status":{"@attributes":{"last_updated":"2025-12-01T04:01:20+00:00","minute":"-1"},"@text":"Fin"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14557469","xsid":"0","gsmid":"0","last_updated":"2025-11-26T18:53:27+00:00"},"time":"2025-12-01T20:00:00+00:00","group":{"@attributes":{"id":"181746","cgid":"87","spid":"1","cnid":"467","mgid":"1002","cname":"Liga Profesional Argentina"},"@text":"FBARG Liga Profesional Argentina > Clausura Quarter Finals-25"},"hteam":{"@attributes":{"id":"58621"},"@text":"Barracas Central"},"ateam":{"@attributes":{"id":"2049"},"@text":"Gimnasia LP"},"results":{"status":{"@attributes":{"last_updated":"2025-11-26T18:53:26+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14563565","xsid":"0","gsmid":"0","last_updated":"2025-11-29T12:24:10+00:00"},"time":"2025-12-01T22:00:00+00:00","group":{"@attributes":{"id":"180791","cgid":"1164","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Fares Lopes"},"@text":"FBBRA Copa Fares Lopes-25"},"hteam":{"@attributes":{"id":"1004395"},"@text":"Fortaleza B"},"ateam":{"@attributes":{"id":"1482714"},"@text":"Centro de Formacao de Atletas Tirol"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T12:24:09+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14561535","xsid":"0","gsmid":"0","last_updated":"2025-11-29T15:16:15+00:00"},"time":"2025-12-01T11:30:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"132428"},"@text":"Sport Recife PE U20"},"ateam":{"@attributes":{"id":"2235604"},"@text":"Cha Grande PE U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T15:16:13+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14561542","xsid":"0","gsmid":"0","last_updated":"2025-11-28T11:08:40+00:00"},"time":"2025-12-01T13:00:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"2235656"},"@text":"Internacional PE U20"},"ateam":{"@attributes":{"id":"1455508"},"@text":"Serrano PE U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-28T11:08:40+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14563579","xsid":"0","gsmid":"0","last_updated":"2025-11-29T15:13:15+00:00"},"time":"2025-12-01T16:30:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"2235956"},"@text":"Inter Arabia U20"},"ateam":{"@attributes":{"id":"1493668"},"@text":"Guarany AL U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T15:13:13+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14563577","xsid":"0","gsmid":"0","last_updated":"2025-11-29T16:04:15+00:00"},"time":"2025-12-01T17:30:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"2198184"},"@text":"Guarany EC U20"},"ateam":{"@attributes":{"id":"1180207"},"@text":"Ipojuca PE U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T16:04:14+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"Line truncated
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-1
View File
@@ -1 +0,0 @@
{"@attributes":{"time":"2025-11-30T05:12:00+00:00","timestamp":"1764479520"},"match":{"@attributes":{"id":"13425457","xsid":"0","gsmid":"0"},"time":"2025-11-29T05:00:00+00:00","group":{"@attributes":{"id":"172158","cgid":"110","spid":"1","cnid":"416","mgid":"1031","cname":"J2 League"},"@text":"FBJPN J2 League-25"},"hteam":{"@attributes":{"id":"42598"},"@text":"Renofa Yamaguchi"},"ateam":{"@attributes":{"id":"6519"},"@text":"Omiya Ardija"},"results":null,"bookmaker":[{"@attributes":{"bid":"42","name":"William Hill"},"offer":[{"@attributes":{"id":"4093976728","n":"2","ot":"5242880","otname":"double chance (1x\/x2\/12)","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T03:55:11+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.620","o2":"1.350","o3":"1.330"}},{"@attributes":{"id":"4093976730","n":"1","ot":"4","otname":"totals","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-24T02:16:13+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.050","o2":"10.000","o3":"0.50"}},{"@attributes":{"id":"4093976740","n":"7","ot":"0","otname":"three way","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:47:14+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"3.000","o2":"3.100","o3":"2.150"}},{"@attributes":{"id":"4093976746","n":"2","ot":"4","otname":"totals","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-28T05:04:25+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.910","o2":"1.800","o3":"2.50"}},{"@attributes":{"id":"4093976751","n":"3","ot":"4","otname":"totals","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:52:23+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.250","o2":"3.500","o3":"1.50"}},{"@attributes":{"id":"4093976754","n":"3","ot":"4","otname":"totals","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T02:02:19+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"3.100","o2":"1.300","o3":"3.50"}},{"@attributes":{"id":"4093976781","n":"1","ot":"11534337","otname":"both teams to score","last_updated":"2025-11-29T04:57:49+00:00","flags":"0","bmoid":"37808110"},"odds":{"@attributes":{"i":"0","time":"2025-11-24T02:16:13+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.670","o2":"0.000","o3":"2.100"}}]},{"@attributes":{"bid":"327","name":"Sbobet.com"},"offer":[{"@attributes":{"id":"4094133178","n":"44","ot":"4","otname":"totals","last_updated":"2025-11-29T05:02:04+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:58:47+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.930","o2":"1.970","o3":"2.50"}},{"@attributes":{"id":"4094249885","n":"52","ot":"0","otname":"three way","last_updated":"2025-11-29T05:02:04+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:58:47+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"3.190","o2":"3.290","o3":"2.250"}},{"@attributes":{"id":"4094250268","n":"44","ot":"5242880","otname":"double chance (1x\/x2\/12)","last_updated":"2025-11-29T05:02:04+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:58:47+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.690","o2":"1.320","o3":"1.300"}},{"@attributes":{"id":"4096814952","n":"10","ot":"4","otname":"totals","last_updated":"2025-11-29T05:02:04+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:58:47+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"2.200","o2":"1.730","o3":"2.75"}},{"@attributes":{"id":"4097533283","n":"2","ot":"4","otname":"totals","last_updated":"2025-11-29T05:02:04+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:58:47+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.670","o2":"2.290","o3":"2.25"}}]},{"@attributes":{"bid":"30","name":"Bwin"},"offer":[{"@attributes":{"id":"4094637420","n":"3","ot":"5242880","otname":"double chance (1x\/x2\/12)","last_updated":"2025-11-29T05:00:09+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:10:54+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"1.610","o2":"1.350","o3":"1.310"}},{"@attributes":{"id":"4094637422","n":"3","ot":"0","otname":"three way","last_updated":"2025-11-29T05:00:09+00:00","flags":"0","bmoid":"0"},"odds":{"@attributes":{"i":"0","time":"2025-11-29T04:10:54+00:00","starting_time":"2025-11-29T05:00:00+00:00"},"o1":"2.950","o2":"3.100","o3":"2.150"}},{"@attributes":{"id":"4094637424","n":"2","ot":"4","otname":"totals","last_updated":"2025-11-29T05:00:09+00:00","flags":"0","bmoid":"0"},"odds":{"@attributeLine truncated
@@ -22,7 +22,7 @@ class BookmakerResource extends Resource
protected static ?string $cluster = AdministratorCluster::class; protected static ?string $cluster = AdministratorCluster::class;
protected static string|\UnitEnum|null $navigationGroup = 'Administration'; protected static string|\UnitEnum|null $navigationGroup = 'Static Data';
public static function canViewAny(): bool public static function canViewAny(): bool
{ {
@@ -0,0 +1,61 @@
<?php
namespace App\Filament\Resources\CompetitionGroupFilters;
use App\Filament\Clusters\Administrator\AdministratorCluster;
use App\Filament\Resources\CompetitionGroupFilters\Pages\CreateCompetitionGroupFilter;
use App\Filament\Resources\CompetitionGroupFilters\Pages\EditCompetitionGroupFilter;
use App\Filament\Resources\CompetitionGroupFilters\Pages\ListCompetitionGroupFilters;
use App\Filament\Resources\CompetitionGroupFilters\Schemas\CompetitionGroupFilterForm;
use App\Filament\Resources\CompetitionGroupFilters\Tables\CompetitionGroupFiltersTable;
use App\Models\CompetitionGroupFilter;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
use UnitEnum;
class CompetitionGroupFilterResource extends Resource
{
protected static ?string $model = CompetitionGroupFilter::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $cluster = AdministratorCluster::class;
protected static string|UnitEnum|null $navigationGroup = 'Dynamic Data';
public static function canViewAny(): bool
{
return auth()->user()->super_admin == 1;
}
public static function form(Schema $schema): Schema
{
return CompetitionGroupFilterForm::configure($schema);
}
public static function table(Table $table): Table
{
return CompetitionGroupFiltersTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListCompetitionGroupFilters::route('/'),
'create' => CreateCompetitionGroupFilter::route('/create'),
'edit' => EditCompetitionGroupFilter::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\CompetitionGroupFilters\Pages;
use App\Filament\Resources\CompetitionGroupFilters\CompetitionGroupFilterResource;
use Filament\Resources\Pages\CreateRecord;
class CreateCompetitionGroupFilter extends CreateRecord
{
protected static string $resource = CompetitionGroupFilterResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CompetitionGroupFilters\Pages;
use App\Filament\Resources\CompetitionGroupFilters\CompetitionGroupFilterResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditCompetitionGroupFilter extends EditRecord
{
protected static string $resource = CompetitionGroupFilterResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CompetitionGroupFilters\Pages;
use App\Filament\Resources\CompetitionGroupFilters\CompetitionGroupFilterResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListCompetitionGroupFilters extends ListRecords
{
protected static string $resource = CompetitionGroupFilterResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Filament\Resources\CompetitionGroupFilters\Schemas;
use Filament\Schemas\Schema;
class CompetitionGroupFilterForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
//
]);
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Filament\Resources\CompetitionGroupFilters\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Table;
class CompetitionGroupFiltersTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
//
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -30,7 +30,7 @@ class CountryResource extends Resource
protected static ?string $cluster = AdministratorCluster::class; protected static ?string $cluster = AdministratorCluster::class;
protected static string|\UnitEnum|null $navigationGroup = 'Administration'; protected static string|\UnitEnum|null $navigationGroup = 'Static Data';
public static function canViewAny(): bool public static function canViewAny(): bool
{ {
@@ -0,0 +1,61 @@
<?php
namespace App\Filament\Resources\ElementFilters;
use App\Filament\Clusters\Administrator\AdministratorCluster;
use App\Filament\Resources\ElementFilters\Pages\CreateElementFilter;
use App\Filament\Resources\ElementFilters\Pages\EditElementFilter;
use App\Filament\Resources\ElementFilters\Pages\ListElementFilters;
use App\Filament\Resources\ElementFilters\Schemas\ElementFilterForm;
use App\Filament\Resources\ElementFilters\Tables\ElementFiltersTable;
use App\Models\ElementFilter;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
use UnitEnum;
class ElementFilterResource extends Resource
{
protected static ?string $model = ElementFilter::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $cluster = AdministratorCluster::class;
protected static string|UnitEnum|null $navigationGroup = 'Dynamic Data';
public static function canViewAny(): bool
{
return auth()->user()->super_admin == 1;
}
public static function form(Schema $schema): Schema
{
return ElementFilterForm::configure($schema);
}
public static function table(Table $table): Table
{
return ElementFiltersTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListElementFilters::route('/'),
'create' => CreateElementFilter::route('/create'),
'edit' => EditElementFilter::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\ElementFilters\Pages;
use App\Filament\Resources\ElementFilters\ElementFilterResource;
use Filament\Resources\Pages\CreateRecord;
class CreateElementFilter extends CreateRecord
{
protected static string $resource = ElementFilterResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ElementFilters\Pages;
use App\Filament\Resources\ElementFilters\ElementFilterResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditElementFilter extends EditRecord
{
protected static string $resource = ElementFilterResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ElementFilters\Pages;
use App\Filament\Resources\ElementFilters\ElementFilterResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListElementFilters extends ListRecords
{
protected static string $resource = ElementFilterResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Filament\Resources\ElementFilters\Schemas;
use Filament\Schemas\Schema;
class ElementFilterForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
//
]);
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Filament\Resources\ElementFilters\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Table;
class ElementFiltersTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
//
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -19,7 +19,7 @@ class EventForm
TextInput::make('country_id') TextInput::make('country_id')
->numeric() ->numeric()
->default(0), ->default(0),
TextInput::make('liga_id') TextInput::make('group_id')
->numeric() ->numeric()
->default(0), ->default(0),
TextInput::make('home_id') TextInput::make('home_id')
@@ -31,27 +31,6 @@ class EventForm
TextInput::make('provider_id') TextInput::make('provider_id')
->numeric() ->numeric()
->default(0), ->default(0),
TextInput::make('txodds_id')
->numeric()
->default(0),
TextInput::make('betaid_id')
->numeric()
->default(0),
TextInput::make('betradar_id')
->numeric()
->default(0),
TextInput::make('magnig_id')
->numeric()
->default(0),
TextInput::make('magken_id')
->numeric()
->default(0),
TextInput::make('lognig_id')
->numeric()
->default(0),
TextInput::make('logcol_id')
->numeric()
->default(0),
]); ]);
} }
} }
@@ -24,13 +24,14 @@ class EventsTable
->size(IconSize::ExtraLarge) ->size(IconSize::ExtraLarge)
->icon(fn ($record) => $record->sport->icon) ->icon(fn ($record) => $record->sport->icon)
->tooltip(fn ($record) => $record->txodds_id), ->tooltip(fn ($record) => $record->txodds_id),
TextColumn::make('txodds_id')->searchable()->label('Match Id')->badge()->copyable(),
TextColumn::make('starttime') TextColumn::make('starttime')
->label('Start') ->label('Start')
->alignCenter() ->alignCenter()
->dateTime('d.m') ->dateTime('d.m')
->weight(FontWeight::Bold) ->weight(FontWeight::Bold)
->description(fn ($state): string => Carbon::createFromDate($state)->format('H:i')), ->description(fn ($state): string => Carbon::createFromDate($state)->format('H:i')),
TextColumn::make('liga.name') TextColumn::make('competition_group.name')
->color('gray') ->color('gray')
->label('Event') ->label('Event')
->icon(fn ($record) => $record->country->icon) ->icon(fn ($record) => $record->country->icon)
@@ -0,0 +1,56 @@
<?php
namespace App\Filament\Resources\GroupFilters;
use App\Filament\Clusters\Administrator\AdministratorCluster;
use App\Filament\Resources\GroupFilters\Pages\ListGroupFilters;
use App\Filament\Resources\GroupFilters\Schemas\GroupFilterForm;
use App\Filament\Resources\GroupFilters\Tables\GroupFiltersTable;
use App\Models\GroupFilter;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class GroupFilterResource extends Resource
{
protected static ?string $model = GroupFilter::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $cluster = AdministratorCluster::class;
protected static string|\UnitEnum|null $navigationGroup = 'Dynamic Data';
public static function canViewAny(): bool
{
return auth()->user()->super_admin == 1;
}
public static function form(Schema $schema): Schema
{
return GroupFilterForm::configure($schema);
}
public static function table(Table $table): Table
{
return GroupFiltersTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListGroupFilters::route('/'),
];
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\GroupFilters\Pages;
use App\Filament\Resources\GroupFilters\GroupFilterResource;
use Filament\Resources\Pages\CreateRecord;
class CreateGroupFilter extends CreateRecord
{
protected static string $resource = GroupFilterResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\GroupFilters\Pages;
use App\Filament\Resources\GroupFilters\GroupFilterResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditGroupFilter extends EditRecord
{
protected static string $resource = GroupFilterResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\GroupFilters\Pages;
use App\Filament\Resources\GroupFilters\GroupFilterResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListGroupFilters extends ListRecords
{
protected static string $resource = GroupFilterResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Filament\Resources\GroupFilters\Schemas;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class GroupFilterForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('group_id')
->required()
->numeric(),
TextInput::make('bkm_group_id')
->required()
->numeric(),
TextInput::make('bookmaker_id')
->required()
->numeric(),
TextInput::make('name')
->default(null),
]);
}
}
@@ -0,0 +1,49 @@
<?php
namespace App\Filament\Resources\GroupFilters\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class GroupFiltersTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('group_id')
->numeric()
->sortable(),
TextColumn::make('bkm_group_id')
->numeric()
->sortable(),
TextColumn::make('bookmaker_id')
->numeric()
->sortable(),
TextColumn::make('name')
->searchable(),
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -7,9 +7,11 @@ use App\Filament\Resources\Providers\Pages\ListProviders;
use App\Filament\Resources\Providers\Schemas\ProviderForm; use App\Filament\Resources\Providers\Schemas\ProviderForm;
use App\Filament\Resources\Providers\Tables\ProvidersTable; use App\Filament\Resources\Providers\Tables\ProvidersTable;
use App\Models\Provider; use App\Models\Provider;
use BackedEnum;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Tables\Table; use Filament\Tables\Table;
use UnitEnum;
class ProviderResource extends Resource class ProviderResource extends Resource
{ {
@@ -17,13 +19,13 @@ class ProviderResource extends Resource
protected static ?int $navigationSort = 23; protected static ?int $navigationSort = 23;
protected static string|\BackedEnum|null $navigationIcon = 'lucide-arrow-down-up'; protected static string|BackedEnum|null $navigationIcon = 'lucide-arrow-down-up';
protected static ?string $recordTitleAttribute = 'name'; protected static ?string $recordTitleAttribute = 'name';
protected static ?string $cluster = AdministratorCluster::class; protected static ?string $cluster = AdministratorCluster::class;
protected static string|\UnitEnum|null $navigationGroup = 'Grapper'; protected static string|UnitEnum|null $navigationGroup = 'Grapper';
public static function canViewAny(): bool public static function canViewAny(): bool
{ {
@@ -26,7 +26,7 @@ class SportResource extends Resource
protected static ?string $cluster = AdministratorCluster::class; protected static ?string $cluster = AdministratorCluster::class;
protected static string|\UnitEnum|null $navigationGroup = 'Administration'; protected static string|\UnitEnum|null $navigationGroup = 'Static Data';
public static function canViewAny(): bool public static function canViewAny(): bool
{ {
@@ -4,15 +4,20 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Liga extends Model class CompetitionGroup extends Model
{ {
protected $fillable = [ protected $fillable = [
'name', 'name',
'txodds_id',
'sport_id', 'sport_id',
'country_id', 'country_id',
'txodds_id',
]; ];
public function sport()
{
return $this->belongsTo(Sport::class);
}
public function country() public function country()
{ {
return $this->belongsTo(Country::class); return $this->belongsTo(Country::class);
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CompetitionGroupFilter extends Model
{
protected $fillable = [
'competition_group_id',
'bkm_competition_group_id',
'bookmaker_id',
'name',
];
public function competition_group()
{
return $this->belongsTo(CompetitionGroup::class);
}
public function bookmaker()
{
return $this->belongsTo(Bookmaker::class);
}
}
+6 -4
View File
@@ -8,10 +8,12 @@ class Element extends Model
{ {
protected $fillable = [ protected $fillable = [
'name', 'name',
'sport_id',
'txodds_id', 'txodds_id',
'betsapi_id', 'sport_id',
'mag_id',
'log_id',
]; ];
public function sport()
{
return $this->belongsTo(Sport::class);
}
} }
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ElementFilter extends Model
{
protected $fillable = [
'name',
'element_id',
'bkm_element_id',
'bookmaker_id',
];
public function element()
{
return $this->belongsTo(Element::class);
}
public function bookmaker()
{
return $this->belongsTo(Bookmaker::class);
}
}
+14 -12
View File
@@ -10,41 +10,43 @@ class Event extends Model
'starttime', 'starttime',
'sport_id', 'sport_id',
'country_id', 'country_id',
'liga_id', 'group_id',
'competition_group_id',
'home_id', 'home_id',
'away_id', 'away_id',
'provider_id',
'txodds_id', 'txodds_id',
'provider_id',
'betaid_id', 'betaid_id',
'betradar_id', 'betradar_id',
'magnig_id',
'magken_id',
'lognig_id',
'logcol_id',
]; ];
public function sport() public function sport()
{ {
return $this->belongsTo(Sport::class, 'sport_id', 'id'); return $this->belongsTo(Sport::class);
} }
public function country() public function country()
{ {
return $this->belongsTo(Country::class); return $this->belongsTo(Country::class, 'country_id', 'txodds_id');
} }
public function liga() public function group()
{ {
return $this->belongsTo(Liga::class); return $this->hasOne(Group::class, 'txodds_id', 'group_id');
}
public function competition_group()
{
return $this->hasOne(CompetitionGroup::class, 'txodds_id', 'competition_group_id');
} }
public function home() public function home()
{ {
return $this->belongsTo(Element::class); return $this->hasOne(Element::class, 'txodds_id', 'home_id');
} }
public function away() public function away()
{ {
return $this->belongsTo(Element::class); return $this->hasOne(Element::class, 'txodds_id', 'away_id');
} }
} }
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class EventBookmaker extends Model
{
protected $fillable = [
'event_id',
'bookmaker_id',
'bmoid',
'send_status',
'last_check_at',
];
public function event()
{
return $this->belongsTo(Event::class);
}
public function bookmaker()
{
return $this->belongsTo(Bookmaker::class);
}
}
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Group extends Model
{
protected $fillable = [
'name',
'txodds_id',
'competition_group_id',
'sport_id',
'country_id',
];
public function country()
{
return $this->belongsTo(Country::class);
}
public function sport()
{
return $this->belongsTo(Sport::class);
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class GroupFilter extends Model
{
protected $fillable = [
'name',
'group_id',
'bkm_group_id',
'bookmaker_id',
];
public function group()
{
return $this->belongsTo(Group::class);
}
public function bookmaker()
{
return $this->belongsTo(Bookmaker::class);
}
}
+3 -3
View File
@@ -14,11 +14,11 @@ class Odds2way extends Model
'sport_id', 'sport_id',
'bookmaker_id', 'bookmaker_id',
'provider_id', 'provider_id',
'home', 'h2w',
'away', 'a2w',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+4 -4
View File
@@ -14,12 +14,12 @@ class Odds3way extends Model
'sport_id', 'sport_id',
'bookmaker_id', 'bookmaker_id',
'provider_id', 'provider_id',
'home', 'h3w',
'draw', 'd3w',
'away', 'a3w',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+4 -3
View File
@@ -14,11 +14,12 @@ class OddsDc extends Model
'sport_id', 'sport_id',
'bookmaker_id', 'bookmaker_id',
'provider_id', 'provider_id',
'dnb1', 'dc1x',
'dnb2', 'dc12',
'dc2x',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+1 -1
View File
@@ -18,7 +18,7 @@ class OddsDnb extends Model
'dnb2', 'dnb2',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+1 -1
View File
@@ -18,7 +18,7 @@ class OddsGgng extends Model
'ng', 'ng',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+1 -1
View File
@@ -19,7 +19,7 @@ class OddsHandicap extends Model
'handicap', 'handicap',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+1 -1
View File
@@ -16,7 +16,7 @@ class OddsQualify extends Model
'atq', 'atq',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+1 -1
View File
@@ -19,7 +19,7 @@ class OddsTotal extends Model
'spread', 'spread',
'margin', 'margin',
'flag', 'flag',
'check', 'nuh_check',
'add_time', 'add_time',
'updated_at', 'updated_at',
]; ];
+1 -3
View File
@@ -10,8 +10,6 @@ class Supervisorctl
public static $code = ''; public static $code = '';
public static $events = 0;
public static function start(&$options) public static function start(&$options)
{ {
$debug = $options['d'] ?? 0; $debug = $options['d'] ?? 0;
@@ -49,7 +47,7 @@ class Supervisorctl
{ {
$processend = microtime(true); $processend = microtime(true);
$runtime = round(($processend - self::$starttime) / 60, 3); $runtime = round(($processend - self::$starttime) / 60, 3);
Supervisor::where('id', self::$code)->update(['runtime' => $runtime, 'events' => self::$events]); Supervisor::where('id', self::$code)->update(['runtime' => $runtime]);
if ($options['d']) { if ($options['d']) {
Notice::note('spervisor time: '.$runtime.' min', 'g'); Notice::note('spervisor time: '.$runtime.' min', 'g');
} }
+20 -5
View File
@@ -7,10 +7,19 @@
'app.filament.resources.clients.pages.create-client' => 'App\\Filament\\Resources\\Clients\\Pages\\CreateClient', 'app.filament.resources.clients.pages.create-client' => 'App\\Filament\\Resources\\Clients\\Pages\\CreateClient',
'app.filament.resources.clients.pages.edit-client' => 'App\\Filament\\Resources\\Clients\\Pages\\EditClient', 'app.filament.resources.clients.pages.edit-client' => 'App\\Filament\\Resources\\Clients\\Pages\\EditClient',
'app.filament.resources.clients.pages.list-clients' => 'App\\Filament\\Resources\\Clients\\Pages\\ListClients', 'app.filament.resources.clients.pages.list-clients' => 'App\\Filament\\Resources\\Clients\\Pages\\ListClients',
'app.filament.resources.competition-group-filters.pages.create-competition-group-filter' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\CreateCompetitionGroupFilter',
'app.filament.resources.competition-group-filters.pages.edit-competition-group-filter' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\EditCompetitionGroupFilter',
'app.filament.resources.competition-group-filters.pages.list-competition-group-filters' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\ListCompetitionGroupFilters',
'app.filament.resources.countries.pages.manage-countries' => 'App\\Filament\\Resources\\Countries\\Pages\\ManageCountries', 'app.filament.resources.countries.pages.manage-countries' => 'App\\Filament\\Resources\\Countries\\Pages\\ManageCountries',
'app.filament.resources.element-filters.pages.create-element-filter' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\CreateElementFilter',
'app.filament.resources.element-filters.pages.edit-element-filter' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\EditElementFilter',
'app.filament.resources.element-filters.pages.list-element-filters' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\ListElementFilters',
'app.filament.resources.events.pages.create-event' => 'App\\Filament\\Resources\\Events\\Pages\\CreateEvent', 'app.filament.resources.events.pages.create-event' => 'App\\Filament\\Resources\\Events\\Pages\\CreateEvent',
'app.filament.resources.events.pages.edit-event' => 'App\\Filament\\Resources\\Events\\Pages\\EditEvent', 'app.filament.resources.events.pages.edit-event' => 'App\\Filament\\Resources\\Events\\Pages\\EditEvent',
'app.filament.resources.events.pages.list-events' => 'App\\Filament\\Resources\\Events\\Pages\\ListEvents', 'app.filament.resources.events.pages.list-events' => 'App\\Filament\\Resources\\Events\\Pages\\ListEvents',
'app.filament.resources.group-filters.pages.create-group-filter' => 'App\\Filament\\Resources\\GroupFilters\\Pages\\CreateGroupFilter',
'app.filament.resources.group-filters.pages.edit-group-filter' => 'App\\Filament\\Resources\\GroupFilters\\Pages\\EditGroupFilter',
'app.filament.resources.group-filters.pages.list-group-filters' => 'App\\Filament\\Resources\\GroupFilters\\Pages\\ListGroupFilters',
'app.filament.resources.providers.pages.create-provider' => 'App\\Filament\\Resources\\Providers\\Pages\\CreateProvider', 'app.filament.resources.providers.pages.create-provider' => 'App\\Filament\\Resources\\Providers\\Pages\\CreateProvider',
'app.filament.resources.providers.pages.edit-provider' => 'App\\Filament\\Resources\\Providers\\Pages\\EditProvider', 'app.filament.resources.providers.pages.edit-provider' => 'App\\Filament\\Resources\\Providers\\Pages\\EditProvider',
'app.filament.resources.providers.pages.list-providers' => 'App\\Filament\\Resources\\Providers\\Pages\\ListProviders', 'app.filament.resources.providers.pages.list-providers' => 'App\\Filament\\Resources\\Providers\\Pages\\ListProviders',
@@ -48,11 +57,14 @@
array ( array (
0 => 'App\\Filament\\Resources\\Bookmakers\\BookmakerResource', 0 => 'App\\Filament\\Resources\\Bookmakers\\BookmakerResource',
1 => 'App\\Filament\\Resources\\Clients\\ClientResource', 1 => 'App\\Filament\\Resources\\Clients\\ClientResource',
2 => 'App\\Filament\\Resources\\Countries\\CountryResource', 2 => 'App\\Filament\\Resources\\CompetitionGroupFilters\\CompetitionGroupFilterResource',
3 => 'App\\Filament\\Resources\\Providers\\ProviderResource', 3 => 'App\\Filament\\Resources\\Countries\\CountryResource',
4 => 'App\\Filament\\Resources\\Sports\\SportResource', 4 => 'App\\Filament\\Resources\\ElementFilters\\ElementFilterResource',
5 => 'App\\Filament\\Resources\\Supervisors\\SupervisorResource', 5 => 'App\\Filament\\Resources\\GroupFilters\\GroupFilterResource',
6 => 'App\\Filament\\Resources\\Users\\UserResource', 6 => 'App\\Filament\\Resources\\Providers\\ProviderResource',
7 => 'App\\Filament\\Resources\\Sports\\SportResource',
8 => 'App\\Filament\\Resources\\Supervisors\\SupervisorResource',
9 => 'App\\Filament\\Resources\\Users\\UserResource',
), ),
), ),
'clusterDirectories' => 'clusterDirectories' =>
@@ -81,8 +93,11 @@
array ( array (
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Bookmakers/BookmakerResource.php' => 'App\\Filament\\Resources\\Bookmakers\\BookmakerResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Bookmakers/BookmakerResource.php' => 'App\\Filament\\Resources\\Bookmakers\\BookmakerResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Clients/ClientResource.php' => 'App\\Filament\\Resources\\Clients\\ClientResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Clients/ClientResource.php' => 'App\\Filament\\Resources\\Clients\\ClientResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/CompetitionGroupFilters/CompetitionGroupFilterResource.php' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\CompetitionGroupFilterResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Countries/CountryResource.php' => 'App\\Filament\\Resources\\Countries\\CountryResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Countries/CountryResource.php' => 'App\\Filament\\Resources\\Countries\\CountryResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/ElementFilters/ElementFilterResource.php' => 'App\\Filament\\Resources\\ElementFilters\\ElementFilterResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Events/EventResource.php' => 'App\\Filament\\Resources\\Events\\EventResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Events/EventResource.php' => 'App\\Filament\\Resources\\Events\\EventResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/GroupFilters/GroupFilterResource.php' => 'App\\Filament\\Resources\\GroupFilters\\GroupFilterResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Providers/ProviderResource.php' => 'App\\Filament\\Resources\\Providers\\ProviderResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Providers/ProviderResource.php' => 'App\\Filament\\Resources\\Providers\\ProviderResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Sports/SportResource.php' => 'App\\Filament\\Resources\\Sports\\SportResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Sports/SportResource.php' => 'App\\Filament\\Resources\\Sports\\SportResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Supervisors/SupervisorResource.php' => 'App\\Filament\\Resources\\Supervisors\\SupervisorResource', '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Supervisors/SupervisorResource.php' => 'App\\Filament\\Resources\\Supervisors\\SupervisorResource',
+538 -14
View File
@@ -226,6 +226,46 @@ app('router')->setCompiledRoutes(
6 => NULL, 6 => NULL,
), ),
), ),
'/administrator/competition-group-filters' =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.competition-group-filters.index',
),
1 => NULL,
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
'/administrator/competition-group-filters/create' =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.competition-group-filters.create',
),
1 => NULL,
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
'/administrator/countries' => '/administrator/countries' =>
array ( array (
0 => 0 =>
@@ -246,6 +286,46 @@ app('router')->setCompiledRoutes(
6 => NULL, 6 => NULL,
), ),
), ),
'/administrator/element-filters' =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.element-filters.index',
),
1 => NULL,
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
'/administrator/element-filters/create' =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.element-filters.create',
),
1 => NULL,
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
'/events' => '/events' =>
array ( array (
0 => 0 =>
@@ -266,6 +346,26 @@ app('router')->setCompiledRoutes(
6 => NULL, 6 => NULL,
), ),
), ),
'/administrator/group-filters' =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.group-filters.index',
),
1 => NULL,
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
'/administrator/providers' => '/administrator/providers' =>
array ( array (
0 => 0 =>
@@ -371,7 +471,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::NAQ0GnAJPW1F34JN', '_route' => 'generated::RNWIAVag8vWIZzNU',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -391,7 +491,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::bAH6qgH9xJMW2Hms', '_route' => 'generated::1yWlEyDQ8LXYXVuW',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -430,7 +530,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::5VblpRWzkK5oOKwA', '_route' => 'generated::AAsPIku15BhE8HVE',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -447,7 +547,7 @@ app('router')->setCompiledRoutes(
), ),
2 => 2 =>
array ( array (
0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/email\\-(?|verification/verify/([^/]++)/([^/]++)(*:146)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:202)|/block(*:216)))|/livewire/preview\\-file/([^/]++)(*:258)|/storage/(.*)(*:279))/?$}sDu', 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/email\\-(?|verification/verify/([^/]++)/([^/]++)(*:146)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:202)|/block(*:216)))|/administrator/(?|competition\\-group\\-filters/([^/]++)/edit(*:285)|element\\-filters/([^/]++)/edit(*:323))|/livewire/preview\\-file/([^/]++)(*:364)|/storage/(.*)(*:385))/?$}sDu',
), ),
3 => 3 =>
array ( array (
@@ -569,7 +669,53 @@ app('router')->setCompiledRoutes(
6 => NULL, 6 => NULL,
), ),
), ),
258 => 285 =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.competition-group-filters.edit',
),
1 =>
array (
0 => 'record',
),
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
323 =>
array (
0 =>
array (
0 =>
array (
'_route' => 'filament.admin.administrator.resources.element-filters.edit',
),
1 =>
array (
0 => 'record',
),
2 =>
array (
'GET' => 0,
'HEAD' => 1,
),
3 => NULL,
4 => false,
5 => false,
6 => NULL,
),
),
364 =>
array ( array (
0 => 0 =>
array ( array (
@@ -592,7 +738,7 @@ app('router')->setCompiledRoutes(
6 => NULL, 6 => NULL,
), ),
), ),
279 => 385 =>
array ( array (
0 => 0 =>
array ( array (
@@ -1425,6 +1571,168 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'filament.admin.administrator.resources.competition-group-filters.index' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/competition-group-filters',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\ListCompetitionGroupFilters@__invoke',
'controller' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\ListCompetitionGroupFilters',
'as' => 'filament.admin.administrator.resources.competition-group-filters.index',
'namespace' => NULL,
'prefix' => 'administrator/competition-group-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.administrator.resources.competition-group-filters.create' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/competition-group-filters/create',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\CreateCompetitionGroupFilter@__invoke',
'controller' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\CreateCompetitionGroupFilter',
'as' => 'filament.admin.administrator.resources.competition-group-filters.create',
'namespace' => NULL,
'prefix' => 'administrator/competition-group-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.administrator.resources.competition-group-filters.edit' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/competition-group-filters/{record}/edit',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\EditCompetitionGroupFilter@__invoke',
'controller' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\Pages\\EditCompetitionGroupFilter',
'as' => 'filament.admin.administrator.resources.competition-group-filters.edit',
'namespace' => NULL,
'prefix' => 'administrator/competition-group-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.administrator.resources.countries.index' => 'filament.admin.administrator.resources.countries.index' =>
array ( array (
'methods' => 'methods' =>
@@ -1479,6 +1787,168 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'filament.admin.administrator.resources.element-filters.index' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/element-filters',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\ListElementFilters@__invoke',
'controller' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\ListElementFilters',
'as' => 'filament.admin.administrator.resources.element-filters.index',
'namespace' => NULL,
'prefix' => 'administrator/element-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.administrator.resources.element-filters.create' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/element-filters/create',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\CreateElementFilter@__invoke',
'controller' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\CreateElementFilter',
'as' => 'filament.admin.administrator.resources.element-filters.create',
'namespace' => NULL,
'prefix' => 'administrator/element-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.administrator.resources.element-filters.edit' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/element-filters/{record}/edit',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\EditElementFilter@__invoke',
'controller' => 'App\\Filament\\Resources\\ElementFilters\\Pages\\EditElementFilter',
'as' => 'filament.admin.administrator.resources.element-filters.edit',
'namespace' => NULL,
'prefix' => 'administrator/element-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.resources.events.index' => 'filament.admin.resources.events.index' =>
array ( array (
'methods' => 'methods' =>
@@ -1533,6 +2003,60 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'filament.admin.administrator.resources.group-filters.index' =>
array (
'methods' =>
array (
0 => 'GET',
1 => 'HEAD',
),
'uri' => 'administrator/group-filters',
'action' =>
array (
'domain' => NULL,
'middleware' =>
array (
0 => 'panel:admin',
1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies',
2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse',
3 => 'Illuminate\\Session\\Middleware\\StartSession',
4 => 'Filament\\Http\\Middleware\\AuthenticateSession',
5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession',
6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken',
7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings',
8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents',
9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent',
10 => 'Filament\\Http\\Middleware\\Authenticate',
11 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserThemeColor:web',
12 => 'Joaopaulolndev\\FilamentEditProfile\\Http\\Middleware\\SetUserLocale:web',
13 => 'verified:filament.admin.auth.email-verification.prompt',
),
'excluded_middleware' =>
array (
),
'uses' => 'App\\Filament\\Resources\\GroupFilters\\Pages\\ListGroupFilters@__invoke',
'controller' => 'App\\Filament\\Resources\\GroupFilters\\Pages\\ListGroupFilters',
'as' => 'filament.admin.administrator.resources.group-filters.index',
'namespace' => NULL,
'prefix' => 'administrator/group-filters',
'where' =>
array (
),
),
'fallback' => false,
'defaults' =>
array (
),
'wheres' =>
array (
),
'bindingFields' =>
array (
),
'lockSeconds' => NULL,
'waitSeconds' => NULL,
'withTrashed' => false,
),
'filament.admin.administrator.resources.providers.index' => 'filament.admin.administrator.resources.providers.index' =>
array ( array (
'methods' => 'methods' =>
@@ -1780,7 +2304,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::NAQ0GnAJPW1F34JN' => 'generated::RNWIAVag8vWIZzNU' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -1792,7 +2316,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'as' => 'generated::NAQ0GnAJPW1F34JN', 'as' => 'generated::RNWIAVag8vWIZzNU',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -1808,7 +2332,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::bAH6qgH9xJMW2Hms' => 'generated::1yWlEyDQ8LXYXVuW' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -1820,7 +2344,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'as' => 'generated::bAH6qgH9xJMW2Hms', 'as' => 'generated::1yWlEyDQ8LXYXVuW',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -1891,7 +2415,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::5VblpRWzkK5oOKwA' => 'generated::AAsPIku15BhE8HVE' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -1919,8 +2443,8 @@ app('router')->setCompiledRoutes(
return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/salam/Sites/nuhodds_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/salam/Sites/nuhodds_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [
\'exception\' => $exception, \'exception\' => $exception,
]), status: $exception ? 500 : 200); ]), status: $exception ? 500 : 200);
}";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000dd90000000000000000";}}', }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000def0000000000000000";}}',
'as' => 'generated::5VblpRWzkK5oOKwA', 'as' => 'generated::AAsPIku15BhE8HVE',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -1952,7 +2476,7 @@ app('router')->setCompiledRoutes(
$config, $config,
$isProduction $isProduction
))($request, $path); ))($request, $path);
}";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000dcf0000000000000000";}}', }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000de50000000000000000";}}',
'as' => 'storage.local', 'as' => 'storage.local',
), ),
'fallback' => false, 'fallback' => false,
@@ -16,19 +16,16 @@ return new class extends Migration
$table->dateTime('starttime')->nullable(); $table->dateTime('starttime')->nullable();
$table->integer('sport_id')->index(); $table->integer('sport_id')->index();
$table->integer('country_id')->default(0)->nullable()->index(); $table->integer('country_id')->default(0)->nullable()->index();
$table->integer('liga_id')->default(0)->nullable()->index(); $table->integer('group_id')->default(0)->nullable()->index();
$table->integer('competition_group_id')->default(0)->nullable()->index();
$table->integer('home_id')->default(0)->nullable()->index(); $table->integer('home_id')->default(0)->nullable()->index();
$table->integer('away_id')->default(0)->nullable()->index(); $table->integer('away_id')->default(0)->nullable()->index();
$table->integer('provider_id')->default(0)->nullable()->index();
$table->integer('txodds_id')->default(0)->nullable()->index(); $table->integer('txodds_id')->default(0)->nullable()->index();
$table->integer('provider_id')->default(0)->nullable()->index();
$table->integer('betaid_id')->default(0)->nullable()->index(); $table->integer('betaid_id')->default(0)->nullable()->index();
$table->integer('betradar_id')->default(0)->nullable()->index(); $table->integer('betradar_id')->default(0)->nullable()->index();
$table->integer('magnig_id')->default(0)->nullable()->index();
$table->integer('magken_id')->default(0)->nullable()->index();
$table->integer('lognig_id')->default(0)->nullable()->index();
$table->integer('logcol_id')->default(0)->nullable()->index();
$table->timestamps(); $table->timestamps();
}); });
} }
@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('event_bookmakers', function (Blueprint $table) {
$table->id();
$table->integer('event_id')->index();
$table->integer('bookmaker_id')->index();
$table->string('bmoid')->nullable();
$table->boolean('send_status')->default(0);
$table->timestamp('bkm_starttime')->nullable();
$table->timestamp('last_check_at')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('event_bookmakers');
}
};
@@ -13,12 +13,9 @@ return new class extends Migration
{ {
Schema::create('elements', function (Blueprint $table) { Schema::create('elements', function (Blueprint $table) {
$table->id(); $table->id();
$table->integer('txodds_id')->index();
$table->string('name'); $table->string('name');
$table->integer('sport_id')->index(); $table->integer('sport_id')->index();
$table->integer('txodds_id')->default(0)->nullable()->index();
$table->integer('betsapi_id')->default(0)->nullable()->index();
$table->integer('mag_id')->default(0)->nullable()->index();
$table->integer('log_id')->default(0)->nullable()->index();
$table->timestamps(); $table->timestamps();
}); });
} }
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('element_filters', function (Blueprint $table) {
$table->id();
$table->integer('element_id')->index();
$table->integer('bkm_element_id')->index();
$table->integer('bookmaker_id')->index();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('element_filters');
}
};
@@ -11,15 +11,13 @@ return new class extends Migration
*/ */
public function up(): void public function up(): void
{ {
Schema::create('ligas', function (Blueprint $table) { Schema::create('groups', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name'); $table->string('name');
$table->integer('txodds_id')->index();
$table->integer('sport_id')->index(); $table->integer('sport_id')->index();
$table->integer('competition_group_id')->index();
$table->integer('country_id')->default(0)->nullable()->index(); $table->integer('country_id')->default(0)->nullable()->index();
$table->integer('txodds_id')->default(0)->nullable()->index();
$table->integer('betsapi_id')->default(0)->nullable()->index();
$table->integer('mag_id')->default(0)->nullable()->index();
$table->integer('log_id')->default(0)->nullable()->index();
$table->timestamps(); $table->timestamps();
}); });
} }
@@ -29,6 +27,6 @@ return new class extends Migration
*/ */
public function down(): void public function down(): void
{ {
Schema::dropIfExists('ligas'); Schema::dropIfExists('groups');
} }
}; };
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('group_filters', function (Blueprint $table) {
$table->id();
$table->integer('group_id')->index();
$table->integer('bkm_group_id')->index();
$table->integer('bookmaker_id')->index();
$table->string('name')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('group_filters');
}
};
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('competition_groups', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('txodds_id')->index();
$table->integer('sport_id')->index();
$table->integer('country_id')->default(0)->nullable()->index();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('competition_groups');
}
};
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('competition_group_filters', function (Blueprint $table) {
$table->id();
$table->integer('competition_group_id')->default(0)->nullable()->index();
$table->integer('bkm_competition_group_id')->default(0)->nullable()->index();
$table->integer('bookmaker_id')->default(0)->nullable()->index();
$table->string('name')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('competition_group_filters');
}
};
@@ -19,7 +19,7 @@ return new class extends Migration
$table->string('iso3')->nullable(); $table->string('iso3')->nullable();
$table->string('cc')->nullable(); $table->string('cc')->nullable();
$table->integer('numeric')->nullable(); $table->integer('numeric')->nullable();
$table->integer('txid')->default(0); $table->integer('txodds_id')->default(0);
$table->boolean('is_country')->default(0); $table->boolean('is_country')->default(0);
$table->boolean('disabled')->default(0); $table->boolean('disabled')->default(0);
$table->timestamps(); $table->timestamps();
@@ -22,14 +22,12 @@ return new class extends Migration
$table->decimal('a3w', 7, 3)->default(0); $table->decimal('a3w', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -21,13 +21,12 @@ return new class extends Migration
$table->decimal('a2w', 7, 3)->default(0); $table->decimal('a2w', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -22,13 +22,12 @@ return new class extends Migration
$table->decimal('dc2x', 7, 3)->default(0); $table->decimal('dc2x', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -21,13 +21,12 @@ return new class extends Migration
$table->decimal('dnb2', 7, 3)->default(0); $table->decimal('dnb2', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -21,13 +21,12 @@ return new class extends Migration
$table->decimal('ng', 7, 3)->default(0); $table->decimal('ng', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -21,13 +21,12 @@ return new class extends Migration
$table->decimal('atq', 7, 3)->default(0); $table->decimal('atq', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -22,13 +22,12 @@ return new class extends Migration
$table->decimal('handicap', 7, 3)->default(0); $table->decimal('handicap', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
@@ -22,14 +22,12 @@ return new class extends Migration
$table->decimal('total', 7, 3)->default(0); $table->decimal('total', 7, 3)->default(0);
$table->decimal('margin', 5, 1)->default(0); $table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0); $table->boolean('flag')->default(0);
$table->boolean('check')->default(0); $table->boolean('nuh_check')->default(0);
$table->timestamp('last_check_at'); $table->timestamp('last_check_at')->nullable();
$table->timestamp('source_updated_at'); $table->timestamp('source_updated_at')->nullable();
$table->timestamps(); $table->timestamps();
$table->index(['event_id']); $table->index(['event_id']);
$table->index(['sport_id']); $table->index(['sport_id']);
$table->index(['bookmaker_id']);
}); });
} }
+1 -1
View File
@@ -9,7 +9,7 @@ class CountrySeeder extends Seeder
{ {
public function run(): void public function run(): void
{ {
$sql = "INSERT INTO `countries` (`id`, `name`, `icon`, `iso2`, `iso3`, `cc`, `numeric`, `txid`, `is_country`, `disabled`, `created_at`, `updated_at`) $sql = "INSERT INTO `countries` (`id`, `name`, `icon`, `iso2`, `iso3`, `cc`, `numeric`, `txodds_id`, `is_country`, `disabled`, `created_at`, `updated_at`)
VALUES VALUES
('256', 'Iceland', 'flag-country-IS', NULL, NULL, 'ICE', NULL, '373', '1', '0', '2025-08-30 04:45:33', '2025-08-30 05:52:59'), ('256', 'Iceland', 'flag-country-IS', NULL, NULL, 'ICE', NULL, '373', '1', '0', '2025-08-30 04:45:33', '2025-08-30 05:52:59'),
('1', 'England', 'extra-england', NULL, 'ENG', 'ENG', '0', '382', '1', '0', '2025-05-24 06:40:45', '2025-05-24 06:40:45'), ('1', 'England', 'extra-england', NULL, 'ENG', 'ENG', '0', '382', '1', '0', '2025-05-24 06:40:45', '2025-05-24 06:40:45'),
+1 -1
View File
@@ -15,7 +15,7 @@ class SupervisorSeeder extends Seeder
$sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `maxsconds`, `lastcall`, `is_cron`, `is_active`, `created_at`, `updated_at`) $sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `maxsconds`, `lastcall`, `is_cron`, `is_active`, `created_at`, `updated_at`)
VALUES VALUES
('1', 'Fixtures', '2', '1', '10', '0', NULL, '1800', '0', '1', '1', '2025-08-27 07:39:55', '2025-12-01 05:07:21'), ('1', 'Fixtures', '2', '1', '10', '0', NULL, '1800', '0', '1', '1', '2025-08-27 07:39:55', '2025-12-01 05:07:21'),
('2', 'Odds', '2', '1', '10', '0', NULL, '30', '0', '0', '0', '2025-12-01 05:41:02', '2025-12-01 05:41:02'); ('2', 'Odds', '2', '1', '10', '0', NULL, '30', '0', '0', '1', '2025-12-01 05:41:02', '2025-12-01 05:41:02');
"; ";
DB::unprepared($sql); DB::unprepared($sql);