This commit is contained in:
salam committed 2025-08-14 11:23:27 +02:00
1 parent b004742d47
commit 96334bb1e4
33 files changed
+1650 -2

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
<?php
namespace App\Actions;
class MultilineGenerator
{
public static function run() {}
}
+88
View File
@@ -0,0 +1,88 @@
<?php
namespace App\Actions;
use App\Models\Bookmaker;
use App\Models\ClientBookmaker;
use App\Models\Provider;
use App\Models\Sport;
use App\Models\Supervisor;
class SupervisorDb
{
public static function generate($command)
{
return;
$_client_bookmaker = ClientBookmaker::get()->all();
$_provider = Provider::get()->all();
$_sports = Sport::where('is_active', 1)->get()->all();
$_bookmaker = Bookmaker::where('is_active', 1)->get()->all();
$processes = Supervisor::where('command', $command)->get()->all();
$have = [];
foreach ($processes as $process) {
dd($process);
$have[] = $process['code'];
$tmp = [];
$tmp['process'] = $process->command;
if (! $process->per_sport && ! $process->per_client) {
// $tmp['code'] = $row->command.$row->process;
// $tmp['command'] = $row->command.' '.$row->process;
// $tmp['description'] = $row->description;
// $res = Supervisor::where('code', $tmp['code'])->get();
// if (! $res->count()) {
// Supervisor::insert($tmp);
// }
} elseif ($process->per_sport && ! $process->per_client) {
foreach ($sports as $sport) {
$tmp['command'] = $process->process.$sport->code;
$tmp['sport_id'] = $sport->id;
$tmp['description'] = $process->description.' '.$sport->sport;
$flight = Supervisor::updateOrCreate(
['code' => $process->command.$sport->code, 'sport_id' => $sport->id],
['command' => $process->process.$sport->code, 'description' => $process->description]
);
}
// } elseif (! $row->per_sport && $row->per_client) {
// foreach ($clients as $client) {
// $tmp['customer_id'] = $client->id;
// if ($row->command == 'sen') {
// $tmp['code'] = $row->command.$row->process.$client->id;
// $tmp['command'] = $row->command.' '.$row->process.' '.$client->id;
// } else {
// $tmp['code'] = $row->command.$client->id;
// $tmp['command'] = $row->command.' '.$client->id;
// }
// $tmp['description'] = $row->description.' '.$client->customer;
// $res = Supervisor::where('code', $tmp['code'])->get();
// if (! $res->count()) {
// Supervisor::insert($tmp);
// }
// }
// } else {
// foreach ($sports as $sport) {
// foreach ($clients as $client) {
// $tmp['sport_id'] = $sport->id;
// $tmp['customer_id'] = $client->id;
// $tmp['code'] = $row->command.$sport->code.$client->id;
// $tmp['command'] = $row->command.' '.$sport->code.' '.$client->id;
// $tmp['description'] = $row->description.' '.$client->customer.' '.$sport->sport;
// $res = Supervisor::where('code', $tmp['code'])->get();
// if (! $res->count()) {
// Supervisor::insert($tmp);
// }
// }
// }
}
}
Supervisor::where('process', $command)->whereNotIn('code', $have)->delete();
}
}
+75
View File
@@ -0,0 +1,75 @@
<?php
namespace App\Actions;
use App\Models\Supervisor;
class SupervisorMaker
{
public static $base = '';
public static $path = '';
public static function run()
{
self::$base = base_path().DIRECTORY_SEPARATOR.'supervisor'.DIRECTORY_SEPARATOR;
$sup = Supervisor::with('option')
->with('sport')
->with('provider')
->with('client')
->with('bookmaker')
->get()->all();
foreach ($sup as $row) {
$process = $row->command;
if ($row->option) {
$process .= '_'.strtolower(preg_replace('"\W"', '', $row->option->name));
}
if ($row->provider) {
$process .= '_'.strtolower(preg_replace('"\W"', '', $row->provider->name));
}
if ($row->sport) {
$process .= '_'.strtolower(preg_replace('"\W"', '', $row->sport->name));
}
if ($row->client) {
$process .= '_'.strtolower(preg_replace('"\W"', '', $row->client->name));
}
if ($row->bookmaker) {
$process .= '_'.strtolower(preg_replace('"\W"', '', $row->bookmaker->name));
}
if (! is_dir(self::$base.$row->command)) {
mkdir(self::$base.$row->command, 0777, true);
}
self::$path = self::$base.$row->command.DIRECTORY_SEPARATOR;
self::create_single($process, $row->is_active, $row->is_cron, $row->command, $row->id);
}
if (config('env.app_env') == 'production') {
$exec = base_path().'/super_update.sh';
exec($exec, $out, $rcode);
}
}
public static function create_single($process, $is_active, $is_cron, $command, $id)
{
$file = self::$path.$process.'.ini';
$content = '[program:'.$process.']'.PHP_EOL;
$content .= 'command=/usr/bin/php '.base_path().'/artisan '.$command.' '.$id.PHP_EOL;
$content .= 'autostart=true'.PHP_EOL;
$content .= 'autorestart=true'.PHP_EOL;
if ($is_active && ! $is_cron) {
file_put_contents($file, $content);
chmod($file, 0777);
} else {
if (is_file($file)) {
unlink($file);
}
}
}
}
@@ -0,0 +1,64 @@
<?php
namespace App\Console\Commands\Comparatore;
use App\Models\Event;
use App\Models\EventBookmaker;
use App\Models\Supervisor;
use App\Utilities\Notice;
use App\Utilities\Supervisorctl;
use Illuminate\Console\Command;
use Illuminate\Support\Carbon;
class Comparatore extends Command
{
public static $events = [];
public static $sport_id = 0;
public static $options = [];
public static $force = 0;
public static $debug = 0;
protected $signature = 'com {process=help} {eventid=0} {--d} {--f} {--a} {--p} {--w}';
protected $description = 'Comparatore';
public function handle()
{
self::$options = $this->options();
self::$options['supervisor_id'] = $this->argument('process');
self::$options['event_id'] = $this->argument('eventid');
if ($this->argument('process') == 'help') {
$txt = PHP_EOL.'a com process [id] eventid [id]'.PHP_EOL;
$txt .= '--d debug'.PHP_EOL;
$txt .= '--f force update market'.PHP_EOL;
$txt .= '--a reload all'.PHP_EOL;
$txt .= '--w reload one week'.PHP_EOL;
$txt .= '--p print feed'.PHP_EOL.PHP_EOL;
$txt .= 'eventid'.PHP_EOL.PHP_EOL;
$txt .= 'use "com l" to show options'.PHP_EOL;
Notice::note($txt, 'b', 1);
} elseif ($this->argument('process') == 'l') {
$txt = 'list of comparatore processes';
$txt .= Supervisor::list('com');
Notice::note($txt, 'b', 1);
}
Supervisorctl::start(self::$options);
$res = Event::where('time', '>', Carbon::now()->toDateTimeString())->get();
foreach ($res as $event) {
$bookmaker = EventBookmaker::where('event_id', $event->id)->get();
if ($bookmaker->count() != null) {
dd($bookmaker);
}
}
Supervisorctl::end(self::$options);
}
}
+74
View File
@@ -0,0 +1,74 @@
<?php
namespace App\Console\Commands\Grapper;
use App\Console\Commands\Grapper\TxOdds\TxOdds;
use App\Models\Supervisor;
use App\Utilities\Notice;
use App\Utilities\Supervisorctl;
use Illuminate\Console\Command;
class Grapper extends Command
{
public static $event = [];
public static $_send = [];
public static $sport_id = 0;
public static $options = [];
public static $force = 0;
public static $debug = 0;
public static $domain = '';
public static $auth = '';
protected $signature = 'gra {process=help} {eventid=0} {--d} {--f} {--a} {--p} {--w}';
protected $description = 'Grapper';
public function handle()
{
self::$options = $this->options();
self::$options['supervisor_id'] = $this->argument('process');
self::$options['event_id'] = $this->argument('eventid');
if ($this->argument('process') == 'help') {
$txt = PHP_EOL.'a gra process [id] eventid [id]'.PHP_EOL;
$txt .= '--d debug'.PHP_EOL;
$txt .= '--f force update market'.PHP_EOL;
$txt .= '--a reload all'.PHP_EOL;
$txt .= '--w reload one week'.PHP_EOL;
$txt .= '--p print odds'.PHP_EOL.PHP_EOL;
$txt .= 'eventid'.PHP_EOL.PHP_EOL;
$txt .= 'use "gra l" to show options'.PHP_EOL;
Notice::note($txt, 'b', 1);
} elseif ($this->argument('process') == 'l') {
$txt = 'list of grapper processes';
$txt .= Supervisor::list('gra');
Notice::note($txt, 'b', 1);
}
Supervisorctl::start(self::$options);
Helper::get_auth_string();
switch (self::$options['provider_id']) {
case 1:
case 2:
TxOdds::switch();
break;
case 3:
// betsapi
break;
default:
Note::notice('Provider not defined', 'r', 1);
break;
}
Supervisorctl::end(self::$options);
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Console\Commands\Grapper;
use App\Utilities\Notice;
class Helper
{
/**
* Create a new class instance.
*/
public static function get_auth_string()
{
if (Grapper::$options['provider_id'] == 1) {
// txodds soccer
Grapper::$auth = 'ident=betaid1&passwd=Dy59vpRC';
Grapper::$domain = 'https://xml2.txodds.com/';
} elseif (Grapper::$options['provider_id'] == 3) {
// txodds others
Grapper::$auth = 'ident=betaid2&passwd=Dy59vpRC';
Grapper::$domain = 'https://xml2.txodds.com/';
} else {
Notice::note('error txodds provider', 'r', 1);
}
}
public static function margin($arr)
{
$r = 0;
foreach ($arr as $key => $value) {
$r += 100 / $value;
}
return round($r, 3);
}
}
@@ -0,0 +1,33 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Grapper\Grapper;
use App\Models\Country;
use App\Utilities\Notice;
class Countries
{
public static function grap()
{
Notice::note('disabled as txodds data is a mess, had to fix all manually', 'r', 1);
$response = simplexml_load_file(Grapper::$domain.'feed/countries.php', null, LIBXML_NOCDATA);
foreach ($response->country as $country) {
$res = Country::where('txid', $country->id)->first();
if ($res !== null) {
// $res->txid = $country->id;
// $res->txid = $country->id;
// $res->save();
} else {
$res = new Country;
$res->name = $country->name;
$res->iso3 = $country->cc;
$res->txid = $country->id;
$res->tx_only = 1;
$res->save();
}
}
}
}
@@ -0,0 +1,51 @@
<?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(),
]);
}
}
}
}
@@ -0,0 +1,239 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Grapper\Grapper;
use App\Console\Commands\Grapper\Helper;
use App\Models\Event;
use App\Models\EventBookmaker;
use App\Utilities\Notice;
use App\Utilities\Supervisorctl;
use Illuminate\Support\Carbon;
class Odds
{
public static function grap()
{
Notice::note('txodd odd sport: '.Grapper::$options['sport_id'], 'b');
/*************************************************
* SINGLE SOCCER
* https://xml2.txodds.com/feed/odds/xml.php?ident=betaid1&passwd=Dy59vpRC&peid=3118930
* SINGLE OTHER
*************************************************
* https://xml2.txodds.com/feed/odds/xml.php?ident=betaid2&passwd=Dy59vpRC&peid=3118930
*************************************************
* https://xml2.txodds.com/feed/odds_types.php
* BETTYPE IDS
0 3-WAY
1 2-WAY
3 POINTS
4 TOTALS
5 Asian
65536 3-WAY HALF TIME
131072 3 WAY QUARTER TIME
65539 POINTS HALF TIME
131075 POINTS QUARTER TIME
262147 POINTS OVER TIME
65540 TOTALS HALF TIME
131076 TOTALS QUARTER TIME
262148 TOTALS OVER TIME
11534337 GG/NG (both teams to score)
5242880 DOUBLE CHANCE
7340033 TO PROGRESS (to_qualify)
Not used:
65537 2-WAY HALF TIME
327680 3-WAY 2ND HALF
327681 2-WAY 2ND HALF
327683 POINT 2ND HALF
327684 TOTALS 2ND HALF
1048577 GOAL / NO GOAL
2097153 ODD / EVEN
4194304 TOTAL GOALS
6291457 DRAW NO BET
8388608 1X2 EURO HANDCIAP
9437188 TOTAL CORNERS
9502724 TOTAL CORNERS 1ST HALF
20971520 3-WAY CORNERS
28311555 HANDICAP SETS
28311556 TOTAL SETS
*************************************************/
$debug = Grapper::$options['d'] ?? 0;
switch (Grapper::$options['sport_id']) {
case 1:
$markets = '0,4,11534337,5242880,7340033';
break;
case 2:
// needs check
$markets = '0,1,3,4,262148,131072,131076';
break;
case 3:
// needs check
$markets = '0,1,3,4,262147,262148,65539,65540,131075,131076';
break;
case 5:
$markets = '1,3,4';
break;
case 8:
$markets = '0,3,4';
break;
default:
Notice::note('sport not defined', 'r', 1);
break;
}
/*************************************************
* URL
*************************************************/
$url = Grapper::$domain.'feed/odds/xml.php?'.Grapper::$auth.'&all_odds=2&spid='.Grapper::$options['sport_id'];
$_calls = [];
if (Grapper::$options['event_id']) {
$_calls[] = $url."&ot=$markets&peid=".Grapper::$options['event_id'];
} elseif (Grapper::$options['a']) {
$res = Event::where('time', '>', Carbon::now()->toDateTimeString())->pluck('txid');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
} elseif (Grapper::$options['w']) {
$res = Event::where('time', '>', Carbon::now()->toDateTimeString())->where('time', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('txid');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
} else {
$_calls[] = $url.'&last='.Grapper::$options['lastcall'];
}
/*************************************************
* CALL
*************************************************/
foreach ($_calls as $url) {
Notice::note($url, 'r');
$xml = simplexml_load_file($url, null, LIBXML_NOCDATA);
if (Grapper::$options['p']) {
Notice::note($url);
foreach ($xml->match as $match) {
print_r($match);
}
exit;
}
Supervisorctl::set_lastcall($xml['timestamp']);
foreach ($xml->match as $m) {
if (Grapper::$options['d']) {
Notice::note((int) $m['id'].' : '.$m->hteam.' - '.$m->ateam);
}
$evid = Event::where('txid', (int) $m['id'])->pluck('id')->first();
if ($evid) {
$fixed_array = [];
$fixed_array['event_id'] = $evid;
Event::where('id', $evid)->update(['cnt_bkm_tx' => count($m->bookmaker)]);
foreach ($m->bookmaker as $bookmaker) {
$fixed_array['bkid'] = (int) $bookmaker['bid'];
$value_array = [];
foreach ($bookmaker->offer as $offer) {
switch ($offer['ot']) {
case '0':
$value_array['f3w'] = (int) $offer['flags'] ?? 0;
$value_array['boid'] = (string) $offer['bmoid'] ?? 0;
$value_array['time'] = Carbon::parse($offer->odds['starting_time'])->toDateTimeString();
$tmp = [];
$tmp['h3w'] = (float) $offer->odds->o1 ?? 1;
$tmp['d3w'] = (float) $offer->odds->o2 ?? 1;
$tmp['a3w'] = (float) $offer->odds->o3 ?? 1;
$tmp['m3w'] = Helper::margin($tmp);
$value_array += $tmp;
break;
case '1':
$value_array['f2w'] = (int) $offer['flags'] ?? 0;
$value_array['boid'] = (string) $offer['bmoid'] ?? 0;
$value_array['time'] = Carbon::parse($offer->odds['starting_time'])->toDateTimeString();
$tmp = [];
$tmp['h2w'] = (float) $offer->odds->o1 ?? 1;
$tmp['a2w'] = (float) $offer->odds->o3 ?? 1;
$tmp['m2w'] = Helper::margin($tmp);
$value_array += $tmp;
break;
case '4':
$hc = (float) $offer->odds->o3;
if (Grapper::$options['sport_id'] == 1 && $hc == 2.5) {
$tmp = [];
$tmp['ov'] = (float) $offer->odds->o1 ?? 1;
$tmp['un'] = (float) $offer->odds->o2 ?? 1;
$tmp['mto'] = Helper::margin($tmp);
$tmp['fto'] = (int) $offer->odd['flags'] ?? 0;
$tmp['hc'] = 2.5;
$value_array += $tmp;
}
break;
case '5242880':
// Double Chance (dc1x,dc12,dcx2)
$value_array['fdc'] = (int) $offer['flags'] ?? 0;
$tmp = [];
$tmp['dc1x'] = (float) $offer->odds->o1 ?? 1;
$tmp['dc12'] = (float) $offer->odds->o2 ?? 1;
$tmp['dcx2'] = (float) $offer->odds->o3 ?? 1;
$tmp['mdc'] = Helper::margin($tmp);
$value_array += $tmp;
break;
case '11534337':
// goal/nogoal (gg,ng)
$value_array['fgg'] = (int) $offer['flags'] ?? 0;
$tmp = [];
$tmp['gg'] = (float) $offer->odds->o1 ?? 1;
$tmp['ng'] = (float) $offer->odds->o3 ?? 1;
$tmp['mgg'] = Helper::margin($tmp);
$value_array += $tmp;
break;
case '7340033':
// to qualify (htq,atq)
$value_array['ftq'] = (int) $offer['flags'] ?? 0;
$tmp = [];
$tmp['htq'] = (float) $offer->odds->o1 ?? 1;
$tmp['atq'] = (float) $offer->odds->o3 ?? 1;
$tmp['mtq'] = Helper::margin($tmp);
$value_array += $tmp;
break;
}
}
EventBookmaker::updateOrCreate($fixed_array, $value_array);
if (Grapper::$options['d']) {
Notice::note($fixed_array + $value_array, 'b');
}
}
}
}
}
}
}
@@ -0,0 +1,35 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Grapper\Grapper;
class TxOdds
{
/**
* https://docs.guzzlephp.org/en/latest/
*/
public static function switch()
{
switch (Grapper::$options['option_id']) {
case 1:
// Leages
break;
case 2:
Events::grap();
break;
case 3:
// Flags
break;
case 4:
Odds::grap();
break;
case 5:
Countries::grap();
break;
default:
Note::notice('Provider not defined', 'r', 1);
break;
}
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
{
$schedule->command('model:prune')->daily();
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*/
protected function commands(): void
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
@@ -36,8 +36,8 @@ class AdminPanelProvider extends PanelProvider
->path('')
->login()
->passwordReset()
->brandLogo(asset('images/nuh.svg'))
->darkModeBrandLogo(asset('images/nuh-d.svg'))
->brandLogo(asset('images/nuh-odds.svg'))
->darkModeBrandLogo(asset('images/nuh-odds-d.svg'))
->favicon(asset('images/nuh.svg'))
->brandLogoHeight('1.8rem')
->unsavedChangesAlerts()
@@ -0,0 +1,37 @@
<?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('sports', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('code')->nullable();
$table->string('icon')->nullable();
$table->boolean('disabled')->default(0);
$table->integer('bapi')->default(0);
$table->integer('bwin')->default(0);
$table->integer('b365')->default(0);
$table->integer('logi')->default(0);
$table->integer('magl')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('sports');
}
};
@@ -0,0 +1,47 @@
<?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('supervisors', function (Blueprint $table) {
$table->id();
$table->string('command')->nullable();
$table->string('name')->nullable();
$table->integer('option_id')->default(0);
$table->integer('sport_id')->default(0);
$table->integer('provider_id')->default(0);
$table->integer('client_id')->default(0);
$table->integer('bookmaker_id')->default(0);
$table->integer('sleep')->default(10);
$table->integer('limit')->default(0);
$table->integer('multi')->default(0);
$table->string('runtime')->nullable();
$table->integer('events')->default(0);
$table->integer('lastcall')->default(0);
$table->boolean('is_cron')->default(0);
$table->boolean('is_active')->default(0);
$table->boolean('has_log')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('supervisors');
}
};
@@ -0,0 +1,35 @@
<?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('bookmakers', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('icon')->nullable();
$table->integer('baid')->default(0);
$table->integer('txid')->default(0);
$table->boolean('txso')->default(0);
$table->boolean('txot')->default(0);
$table->boolean('provider_id')->default(0);
$table->boolean('is_active')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('bookmakers');
}
};
@@ -0,0 +1,30 @@
<?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('providers', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('icon')->nullable();
$table->boolean('is_leader')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('providers');
}
};
@@ -0,0 +1,29 @@
<?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('clients', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('icon')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('clients');
}
};
@@ -0,0 +1,30 @@
<?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('client_bookmakers', function (Blueprint $table) {
$table->id();
$table->integer('client_id');
$table->integer('bookmaker_id');
$table->boolean('is_active')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('client_bookmakers');
}
};
@@ -0,0 +1,28 @@
<?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('supervisor_options', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('supervisor_options');
}
};
@@ -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('countries', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('iso2');
$table->string('iso3');
$table->string('numeric');
$table->integer('txid')->default(0);
$table->boolean('tx_only')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('countries');
}
};
@@ -0,0 +1,57 @@
<?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('events', function (Blueprint $table) {
$table->id();
$table->timestamp('time')->nullable();
// sport id
$table->integer('spid');
// provider id
$table->integer('prid')->default(0);
// txodds id
$table->integer('txid')->default(0);
// betradar id
$table->integer('brid')->default(0);
// betaid id
$table->integer('baid')->default(0);
// county id
$table->integer('cnid')->default(0);
// group id
$table->integer('grid')->default(0);
// competition group id
$table->integer('cgid')->default(0);
// home id
$table->integer('hoid')->default(0);
// away id
$table->integer('awid')->default(0);
// liga (group name)
$table->string('liga');
// home
$table->string('home');
// away
$table->string('away');
$table->integer('cnt_bkm_tx')->default(0);
$table->integer('cnt_bkm_ba')->default(0);
$table->timestamps();
$table->index(['spid', 'prid', 'txid', 'brid', 'baid', 'cnid', 'grid', 'cgid', 'hoid', 'awid']);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('events');
}
};
@@ -0,0 +1,78 @@
<?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->foreignId('event_id')->constrained()->cascadeOnDelete();
$table->timestamp('time')->nullable();
$table->integer('bkid')->default(0);
$table->string('boid')->nullable();
// flag status
$table->integer('flag')->default(0);
// swop (inverted odds)
$table->integer('swop')->default(0);
// 1x2
$table->decimal('h3w', 7, 3)->default(0);
$table->decimal('d3w', 7, 3)->default(0);
$table->decimal('a3w', 7, 3)->default(0);
$table->decimal('m3w', 7, 3)->default(0);
$table->integer('f3w')->default(0);
// bookmaker offer id
// Total
$table->decimal('ov', 7, 3)->default(0);
$table->decimal('un', 7, 3)->default(0);
$table->decimal('hc', 7, 3)->default(0);
$table->decimal('mto', 7, 3)->default(0);
$table->integer('fto')->default(0);
// ML
$table->decimal('h2w', 7, 3)->default(0);
$table->decimal('a2w', 7, 3)->default(0);
$table->decimal('m2w', 7, 3)->default(0);
$table->integer('f2w')->default(0);
// DC
$table->decimal('dc1x', 7, 3)->default(0);
$table->decimal('dc12', 7, 3)->default(0);
$table->decimal('dc2x', 7, 3)->default(0);
$table->decimal('mdc', 7, 3)->default(0);
$table->integer('fdc')->default(0);
// GG NG
$table->decimal('gg', 7, 3)->default(0);
$table->decimal('ng', 7, 3)->default(0);
$table->decimal('mgg', 7, 3)->default(0);
$table->integer('fgg')->default(0);
// TO QUALIFY
$table->decimal('htq', 7, 3)->default(0);
$table->decimal('atq', 7, 3)->default(0);
$table->decimal('mtq', 7, 3)->default(0);
$table->integer('ftq')->default(0);
$table->timestamps();
$table->index(['event_id', 'boid', 'bkid', 'flag']);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('event_bookmakers');
}
};
@@ -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('multilines', function (Blueprint $table) {
$table->id();
$table->integer('client_id')->default(0);
$table->integer('bettype_id')->default(0);
$table->integer('bookmaker_id')->default(0);
$table->integer('sort-order')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('multilines');
}
};
@@ -0,0 +1,28 @@
<?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('bettypes', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('bettypes');
}
};
+68
View File
@@ -0,0 +1,68 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class BookmakerSeeder extends Seeder
{
public function run(): void
{
$sql = "INSERT INTO `bookmakers` (`name`, `icon`, `baid`, `txid`, `txso`, `txot`, `is_active`, `provider_id`, `created_at`, `updated_at`)
VALUES
('MISSING', NULL, '0', '0', '0', '0', '0', '2', NULL, NULL),
('Bet365', 'bet365', '2', '126', '0', '1', '1', '2', NULL, '2025-05-19 09:59:41'),
('BWin', 'bwin', '3', '30', '1', '1', '1', '2', NULL, NULL),
('BetFair', 'betfair', '4', '110', '1', '0', '1', '2', NULL, NULL),
('Betway', 'betway', '5', '340', '0', '0', '0', '2', NULL, NULL),
('10Bet', '10bet', '6', '274', '0', '1', '0', '2', NULL, NULL),
('Ladbrokes', 'ladbrokes', '7', '17', '0', '1', '1', '2', NULL, NULL),
('PlanetWin365', NULL, '8', '627', '0', '0', '0', '2', NULL, NULL),
('188Bet', '', '9', '365', '0', '0', '0', '2', NULL, NULL),
('UniBet', 'unibet', '10', '6', '1', '1', '1', '2', NULL, NULL),
('888Sport', '888sport', '11', '0', '0', '0', '0', '2', NULL, NULL),
('CloudBet', NULL, '12', '0', '0', '0', '0', '2', NULL, NULL),
('Betsson', 'betsson', '13', '0', '0', '0', '0', '2', NULL, NULL),
('Sbobet', 'sbobet', '14', '327', '1', '0', '1', '2', NULL, NULL),
('TitanBet', NULL, '15', '0', '0', '0', '0', '2', NULL, NULL),
('DafaBet', NULL, '16', '0', '0', '0', '0', '2', NULL, NULL),
('BetVictor', NULL, '17', '0', '0', '0', '0', '2', NULL, NULL),
('1XBet', NULL, '18', '0', '0', '0', '0', '2', NULL, NULL),
('Expekt', 'expekt', '0', '5', '1', '1', '1', '1', NULL, NULL),
('Magloo Nigeria', 'magloo-nigeria', '0', '10', '0', '0', '1', '1', NULL, NULL),
('Sportingbet', 'sportingbet', '0', '13', '1', '1', '1', '1', NULL, NULL),
('Betika', 'betika', '0', '14', '0', '0', '1', '1', NULL, NULL),
('Intertops', 'intertops', '0', '15', '0', '0', '1', '1', NULL, NULL),
('Magloo Kenia', 'magloo-kenia', '0', '16', '0', '0', '1', '1', NULL, NULL),
('Interwetten', 'interwetten', '0', '26', '1', '1', '1', '1', NULL, NULL),
('Logispin Nigeria', 'logispin-nigeria', '0', '35', '0', '0', '1', '1', NULL, NULL),
('Logispin Colombia', 'logispin-colombia', '0', '36', '0', '0', '1', '1', NULL, NULL),
('William Hill', 'willhill', '0', '42', '1', '1', '1', '1', NULL, NULL),
('Bet At Home', 'betathome', '0', '49', '0', '1', '1', '1', NULL, NULL),
('Pinnacle', 'pinnacle', '0', '83', '1', '1', '1', '1', NULL, NULL),
('SNAI', 'snai', '0', '117', '1', '1', '1', '1', NULL, NULL),
('Nordicbet', 'nordicbet', '0', '118', '0', '1', '1', '1', NULL, NULL),
('Goldbet', 'goldbet', '0', '128', '0', '0', '1', '1', NULL, NULL),
('5 Dimes', '5dimes', '0', '234', '1', '0', '1', '1', NULL, NULL),
('Matchbook', 'matchbook', '0', '314', '1', '0', '1', '1', NULL, NULL),
('Tipico', 'tipico', '0', '363', '0', '1', '1', '1', NULL, NULL),
('PartyBets', 'partybets', '0', '380', '1', '0', '1', '1', NULL, NULL),
('Eurobet', 'eurobet', '0', '388', '1', '1', '1', '1', NULL, NULL),
('BetClick', 'betclick', '0', '395', '1', '0', '1', '1', NULL, NULL),
('Bet3000', 'bet3000', '0', '399', '1', '1', '1', '1', NULL, NULL),
('Better', 'better', '0', '413', '0', '1', '1', '1', NULL, NULL),
('Marathonbet', 'marathonbet', '0', '539', '1', '1', '1', '1', NULL, NULL),
('Sisal', 'sisal', '0', '577', '0', '1', '1', '1', NULL, NULL),
('Betaland', 'betaland', '0', '625', '1', '0', '1', '1', NULL, NULL),
('Bet9ja', 'bet9ja', '0', '658', '0', '0', '1', '1', NULL, NULL),
('SportPesa', 'sportpesa', '0', '668', '1', '0', '1', '1', NULL, NULL),
('BetKing', 'betking', '0', '823', '1', '1', '1', '1', NULL, NULL),
('BetPlay', 'betplay', '0', '824', '1', '0', '1', '1', NULL, NULL),
('SportyBet', 'sportybet', '0', '825', '1', '1', '1', '1', NULL, NULL),
('WPlay', 'wplay', '0', '827', '1', '0', '1', '1', NULL, NULL),
('ColBet', 'colbet', '0', '828', '1', '0', '1', '1', NULL, NULL);";
DB::unprepared($sql);
}
}
+272
View File
@@ -0,0 +1,272 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class CountrySeeder extends Seeder
{
public function run(): void
{
$sql = "INSERT INTO `countries` (`name`, `icon`, `iso2`, `iso3`, `cc`, `numeric`, `txid`, `tx_only`, `created_at`, `updated_at`)
VALUES
('England', 'england', NULL, 'ENG', 'ENG', '0', '382', '1', '2025-05-24 06:40:45', '2025-05-24 06:40:45'),
('Northern Ireland', 'nordirland', NULL, 'NIR', 'NIR', '0', '426', '1', '2025-05-24 06:40:45', '2025-05-24 06:40:45'),
('Wales', 'wales', NULL, 'WAL', 'WAL', '0', '444', '1', '2025-05-24 06:40:45', '2025-05-24 06:40:45'),
('Scotland', 'scotland', NULL, 'SCO', 'SCO', '0', '449', '1', '2025-05-24 06:40:45', '2025-05-24 06:40:45'),
('Kosovo', 'kosovo', NULL, 'KOS', 'KOS', '0', '555', '1', '2025-05-24 06:40:45', '2025-05-24 06:40:45'),
('Andorra', NULL, 'AD', 'AND', 'AND', '20', '440', '0', NULL, '2025-05-24 06:40:45'),
('United Arab Emirates', NULL, 'AE', 'ARE', 'UAE', '784', '461', '0', NULL, NULL),
('Afghanistan', NULL, 'AF', 'AFG', 'AFG', '4', '651', '0', NULL, '2025-05-24 06:40:45'),
('Antigua and Barbuda', NULL, 'AG', 'ATG', 'ATG', '28', '611', '0', NULL, '2025-05-24 06:40:45'),
('Anguilla', NULL, 'AI', 'AIA', 'AIA', '660', '665', '0', NULL, '2025-05-24 06:40:45'),
('Albania', NULL, 'AL', 'ALB', 'ALB', '8', '375', '0', NULL, '2025-05-24 06:40:45'),
('Armenia', NULL, 'AM', 'ARM', 'ARM', '51', '379', '0', NULL, '2025-05-24 06:40:45'),
('Angola', NULL, 'AO', 'AGO', 'ANG', '24', '472', '0', NULL, NULL),
('Antarctica', NULL, 'AQ', 'ATA', 'ATA', '10', '0', '0', NULL, NULL),
('Argentina', NULL, 'AR', 'ARG', 'ARG', '32', '467', '0', NULL, '2025-05-24 06:40:45'),
('American Samoa', NULL, 'AS', 'ASM', 'ASM', '16', '650', '0', NULL, '2025-05-24 06:40:45'),
('Austria', NULL, 'AT', 'AUT', 'AUT', '40', '383', '0', NULL, '2025-05-24 06:40:45'),
('Australia', NULL, 'AU', 'AUS', 'AUS', '36', '454', '0', NULL, '2025-05-24 06:40:45'),
('Aruba', NULL, 'AW', 'ABW', 'ABW', '533', '585', '0', NULL, '2025-05-24 06:40:45'),
('Åland Islands', NULL, 'AX', 'ALA', 'ALA', '248', '0', '0', NULL, NULL),
('Azerbaijan', NULL, 'AZ', 'AZE', 'AZE', '31', '463', '0', NULL, '2025-05-24 06:40:45'),
('Bosnia and Herzegovina', NULL, 'BA', 'BIH', 'BIH', '70', '423', '0', NULL, '2025-05-24 06:40:45'),
('Barbados', NULL, 'BB', 'BRB', 'BRB', '52', '579', '0', NULL, '2025-05-24 06:40:45'),
('Bangladesh', NULL, 'BD', 'BGD', 'BGD', '50', '576', '0', NULL, '2025-05-24 06:40:45'),
('Belgium', NULL, 'BE', 'BEL', 'BEL', '56', '377', '0', NULL, '2025-05-24 06:40:45'),
('Burkina Faso', NULL, 'BF', 'BFA', 'BFA', '854', '527', '0', NULL, '2025-05-24 06:40:45'),
('Bulgaria', NULL, 'BG', 'BGR', 'BUL', '100', '363', '0', NULL, NULL),
('Bahrain', NULL, 'BH', 'BHR', 'BHR', '48', '0', '0', NULL, NULL),
('Burundi', NULL, 'BI', 'BDI', 'BDI', '108', '596', '0', NULL, '2025-05-24 06:40:45'),
('Benin', NULL, 'BJ', 'BEN', 'BEN', '204', '580', '0', NULL, '2025-05-24 06:40:45'),
('Saint Barthélemy', NULL, 'BL', 'BLM', 'BLM', '652', '0', '0', NULL, NULL),
('Bermuda', NULL, 'BM', 'BMU', 'BMU', '60', '608', '0', NULL, '2025-05-24 06:40:45'),
('Brunei Darussalam', NULL, 'BN', 'BRN', 'BRU', '96', '535', '0', NULL, '2025-05-24 06:40:45'),
('Bolivia (Plurinational State of)', NULL, 'BO', 'BOL', 'BOL', '68', '429', '0', NULL, '2025-05-24 06:40:45'),
('Bonaire, Sint Eustatius and Saba', NULL, 'BQ', 'BES', 'BES', '535', '661', '0', NULL, '2025-05-24 06:40:45'),
('Brazil', NULL, 'BR', 'BRA', 'BRA', '76', '409', '0', NULL, '2025-05-24 06:40:45'),
('Bahamas (the)', NULL, 'BS', 'BHS', 'BHS', '44', '584', '0', NULL, '2025-05-24 06:40:45'),
('Bhutan', NULL, 'BT', 'BTN', 'BTN', '64', '567', '0', NULL, '2025-05-24 06:40:45'),
('Bouvet Island', NULL, 'BV', 'BVT', 'BVT', '74', '0', '0', NULL, NULL),
('Botswana', NULL, 'BW', 'BWA', 'BWA', '72', '575', '0', NULL, '2025-05-24 06:40:45'),
('Belarus', NULL, 'BY', 'BLR', 'BLR', '112', '396', '0', NULL, '2025-05-24 06:40:45'),
('Belize', NULL, 'BZ', 'BLZ', 'BLZ', '84', '474', '0', NULL, '2025-05-24 06:40:45'),
('Canada', NULL, 'CA', 'CAN', 'CAN', '124', '385', '0', NULL, '2025-05-24 06:40:45'),
('Cocos Islands', NULL, 'CC', 'CCK', 'CCK', '166', '0', '0', NULL, NULL),
('DR Congo', NULL, 'CD', 'COD', 'COD', '180', '606', '0', NULL, '2025-05-24 06:40:45'),
('Central African Republic', NULL, 'CF', 'CAF', 'CAF', '140', '607', '0', NULL, '2025-05-24 06:40:45'),
('Congo', NULL, 'CG', 'COG', 'COG', '178', '519', '0', NULL, '2025-05-24 06:40:45'),
('Switzerland', NULL, 'CH', 'CHE', 'SWI', '756', '451', '0', NULL, NULL),
('Côte d\'Ivoire', NULL, 'CI', 'CIV', 'CIV', '384', '475', '0', NULL, '2025-05-24 06:40:45'),
('Cook Islands', NULL, 'CK', 'COK', 'COK', '184', '622', '0', NULL, '2025-05-24 06:40:45'),
('Chile', NULL, 'CL', 'CHL', 'CHL', '152', '39', '0', NULL, NULL),
('Cameroon', NULL, 'CM', 'CMR', 'CMR', '120', '476', '0', NULL, '2025-05-24 06:40:45'),
('China', NULL, 'CN', 'CHN', 'CHN', '156', '424', '0', NULL, '2025-05-24 06:40:45'),
('Colombia', NULL, 'CO', 'COL', 'COL', '170', '389', '0', NULL, '2025-05-24 06:40:45'),
('Costa Rica', NULL, 'CR', 'CRI', 'CRI', '188', '477', '0', NULL, '2025-05-24 06:40:45'),
('Cuba', NULL, 'CU', 'CUB', 'CUB', '192', '582', '0', NULL, '2025-05-24 06:40:45'),
('Cabo Verde', NULL, 'CV', 'CPV', 'CPV', '132', '599', '0', NULL, '2025-05-24 06:40:45'),
('Curaçao', NULL, 'CW', 'CUW', 'CUW', '531', '594', '0', NULL, '2025-05-24 06:40:45'),
('Christmas Island', NULL, 'CX', 'CXR', 'CXR', '162', '0', '0', NULL, NULL),
('Cyprus', NULL, 'CY', 'CYP', 'CYP', '196', '425', '0', NULL, '2025-05-24 06:40:45'),
('Czechia', NULL, 'CZ', 'CZE', 'CZE', '203', '468', '0', NULL, '2025-05-24 06:40:45'),
('Germany', NULL, 'DE', 'DEU', 'GER', '276', '446', '0', NULL, NULL),
('Djibouti', NULL, 'DJ', 'DJI', 'DJI', '262', '616', '0', NULL, '2025-05-24 06:40:45'),
('Denmark', NULL, 'DK', 'DNK', 'DEN', '208', '378', '0', NULL, NULL),
('Dominica', NULL, 'DM', 'DMA', 'DMA', '212', '663', '0', NULL, '2025-05-24 06:40:45'),
('Dominican Republic', NULL, 'DO', 'DOM', 'DOM', '214', '559', '0', NULL, '2025-05-24 06:40:45'),
('Algeria', NULL, 'DZ', 'DZA', 'ALB', '12', '469', '0', NULL, NULL),
('Ecuador', NULL, 'EC', 'ECU', 'ECU', '218', '433', '0', NULL, '2025-05-24 06:40:45'),
('Estonia', NULL, 'EE', 'EST', 'EST', '233', '411', '0', NULL, '2025-05-24 06:40:45'),
('Egypt', NULL, 'EG', 'EGY', 'EGY', '818', '464', '0', NULL, '2025-05-24 06:40:45'),
('Western Sahara', NULL, 'EH', 'ESH', 'ESH', '732', '0', '0', NULL, NULL),
('Eritrea', NULL, 'ER', 'ERI', 'ERI', '232', '681', '0', NULL, '2025-05-24 06:40:46'),
('Spain', NULL, 'ES', 'ESP', 'SPA', '724', '438', '0', NULL, NULL),
('Ethiopia', NULL, 'ET', 'ETH', 'ETH', '231', '565', '0', NULL, '2025-05-24 06:40:45'),
('Finland', NULL, 'FI', 'FIN', 'FIN', '246', '403', '0', NULL, '2025-05-24 06:40:45'),
('Fiji', NULL, 'FJ', 'FJI', 'FJI', '242', '503', '0', NULL, '2025-05-24 06:40:45'),
('Falkland / Malvinas', NULL, 'FK', 'FLK', 'FLK', '238', '0', '0', NULL, NULL),
('Micronesia', NULL, 'FM', 'FSM', 'FSM', '583', '0', '0', NULL, NULL),
('Faroe Islands', NULL, 'FO', 'FRO', 'FAR', '234', '414', '0', NULL, NULL),
('France', NULL, 'FR', 'FRA', 'FRA', '250', '408', '0', NULL, '2025-05-24 06:40:45'),
('Gabon', NULL, 'GA', 'GAB', 'GAB', '266', '526', '0', NULL, '2025-05-24 06:40:45'),
('UK & Ireland', NULL, 'GB', 'GBR', 'UKI', '826', '652', '0', NULL, '2025-05-24 06:40:45'),
('Grenada', NULL, 'GD', 'GRD', 'GRD', '308', '583', '0', NULL, '2025-05-24 06:40:45'),
('Georgia', NULL, 'GE', 'GEO', 'GEO', '268', '419', '0', NULL, '2025-05-24 06:40:45'),
('French Guiana', NULL, 'GF', 'GUF', 'GUF', '254', '589', '0', NULL, '2025-05-24 06:40:45'),
('Guernsey', NULL, 'GG', 'GGY', 'GGY', '831', '0', '0', NULL, NULL),
('Ghana', NULL, 'GH', 'GHA', 'GHA', '288', '515', '0', NULL, '2025-05-24 06:40:45'),
('Gibraltar', NULL, 'GI', 'GIB', 'GIB', '292', '659', '0', NULL, '2025-05-24 06:40:45'),
('Greenland', NULL, 'GL', 'GRL', 'GRL', '304', '0', '0', NULL, NULL),
('Gambia', NULL, 'GM', 'GMB', 'GMB', '270', '592', '0', NULL, '2025-05-24 06:40:45'),
('Guinea', NULL, 'GN', 'GIN', 'GIN', '324', '562', '0', NULL, '2025-05-24 06:40:45'),
('Guadeloupe', NULL, 'GP', 'GLP', 'GLP', '312', '587', '0', NULL, '2025-05-24 06:40:45'),
('Equatorial Guinea', NULL, 'GQ', 'GNQ', 'GNQ', '226', '614', '0', NULL, '2025-05-24 06:40:45'),
('Greece', NULL, 'GR', 'GRC', 'GRE', '300', '394', '0', NULL, NULL),
('South Georgia and the South Sandwich Islands', NULL, 'GS', 'SGS', 'SGS', '239', '0', '0', NULL, NULL),
('Guatemala', NULL, 'GT', 'GTM', 'GUA', '320', '478', '0', NULL, NULL),
('Guam', NULL, 'GU', 'GUM', 'GUM', '316', '619', '0', NULL, '2025-05-24 06:40:45'),
('Guinea-Bissau', NULL, 'GW', 'GNB', 'GNB', '624', '615', '0', NULL, '2025-05-24 06:40:45'),
('Guyana', NULL, 'GY', 'GUY', 'GUY', '328', '600', '0', NULL, '2025-05-24 06:40:45'),
('Hong Kong', NULL, 'HK', 'HKG', 'HKG', '344', '479', '0', NULL, '2025-05-24 06:40:45'),
('Heard Island and McDonald Islands', NULL, 'HM', 'HMD', 'HMD', '334', '0', '0', NULL, NULL),
('Honduras', NULL, 'HN', 'HND', 'HON', '340', '340', '0', NULL, NULL),
('Croatia', NULL, 'HR', 'HRV', 'CRO', '191', '415', '0', NULL, NULL),
('Haiti', NULL, 'HT', 'HTI', 'HTI', '332', '595', '0', NULL, '2025-05-24 06:40:45'),
('Hungary', NULL, 'HU', 'HUN', 'HUN', '348', '412', '0', NULL, '2025-05-24 06:40:45'),
('Indonesia', NULL, 'ID', 'IDN', 'IDN', '360', '522', '0', NULL, '2025-05-24 06:40:45'),
('Ireland', NULL, 'IE', 'IRL', 'IRE', '372', '435', '0', NULL, NULL),
('Israel', NULL, 'IL', 'ISR', 'ISR', '376', '365', '0', NULL, '2025-05-24 06:40:45'),
('Isle of Man', NULL, 'IM', 'IMN', 'IMN', '833', '0', '0', NULL, NULL),
('India', NULL, 'IN', 'IND', 'IND', '356', '481', '0', NULL, '2025-05-24 06:40:45'),
('British Indian Ocean Territory', NULL, 'IO', 'IOT', 'IOT', '86', '0', '0', NULL, NULL),
('Iraq', NULL, 'IQ', 'IRQ', 'IRQ', '368', '482', '0', NULL, '2025-05-24 06:40:45'),
('Iran', NULL, 'IR', 'IRN', 'IRI', '364', '0', '0', NULL, NULL),
('Iceland', NULL, 'IS', 'ISL', 'ICE', '352', '374', '0', NULL, NULL),
('Italy', NULL, 'IT', 'ITA', 'ITA', '380', '398', '0', NULL, '2025-05-24 06:40:45'),
('Jersey', NULL, 'JE', 'JEY', 'JEY', '832', '0', '0', NULL, NULL),
('Jamaica', NULL, 'JM', 'JAM', 'JAM', '388', '483', '0', NULL, '2025-05-24 06:40:45'),
('Jordan', NULL, 'JO', 'JOR', 'JOR', '400', '484', '0', NULL, '2025-05-24 06:40:45'),
('Japan', NULL, 'JP', 'JPN', 'JPN', '392', '416', '0', NULL, '2025-05-24 06:40:45'),
('Kenya', NULL, 'KE', 'KEN', 'KEN', '404', '560', '0', NULL, '2025-05-24 06:40:45'),
('Kyrgyzstan', NULL, 'KG', 'KGZ', 'KGZ', '417', '500', '0', NULL, '2025-05-24 06:40:45'),
('Cambodia', NULL, 'KH', 'KHM', 'KHM', '116', '591', '0', NULL, '2025-05-24 06:40:45'),
('Kiribati', NULL, 'KI', 'KIR', 'KIR', '296', '0', '0', NULL, NULL),
('Comoros', NULL, 'KM', 'COM', 'COM', '174', '516', '0', NULL, '2025-05-24 06:40:45'),
('Saint Kitts and Nevis', NULL, 'KN', 'KNA', 'KNA', '659', '593', '0', NULL, '2025-05-24 06:40:45'),
('North Korea', NULL, 'KP', 'PRK', 'PRK', '408', '662', '0', NULL, '2025-05-24 06:40:45'),
('South Korea', NULL, 'KR', 'KOR', 'KOR', '410', '437', '0', NULL, '2025-05-24 06:40:45'),
('Kuwait', NULL, 'KW', 'KWT', 'KUW', '414', '371', '0', NULL, NULL),
('Cayman Islands', NULL, 'KY', 'CYM', 'CYM', '136', '612', '0', NULL, '2025-05-24 06:40:45'),
('Kazakhstan', NULL, 'KZ', 'KAZ', 'KAZ', '398', '445', '0', NULL, '2025-05-24 06:40:45'),
('Laos', NULL, 'LA', 'LAO', 'LAO', '418', '655', '0', NULL, '2025-05-24 06:40:45'),
('Lebanon', NULL, 'LB', 'LBN', 'LBN', '422', '485', '0', NULL, '2025-05-24 06:40:45'),
('Saint Lucia', NULL, 'LC', 'LCA', 'STL', '662', '673', '0', NULL, NULL),
('Liechtenstein', NULL, 'LI', 'LIE', 'LIE', '438', '387', '0', NULL, '2025-05-24 06:40:45'),
('Sri Lanka', NULL, 'LK', 'LKA', 'LKA', '144', '532', '0', NULL, '2025-05-24 06:40:45'),
('Liberia', NULL, 'LR', 'LBR', 'LBR', '430', '520', '0', NULL, '2025-05-24 06:40:45'),
('Lesotho', NULL, 'LS', 'LSO', 'LSO', '426', '574', '0', NULL, '2025-05-24 06:40:45'),
('Lithuania', NULL, 'LT', 'LTU', 'LTU', '440', '401', '0', NULL, '2025-05-24 06:40:45'),
('Luxembourg', NULL, 'LU', 'LUX', 'LUX', '442', '392', '0', NULL, '2025-05-24 06:40:45'),
('Latvia', NULL, 'LV', 'LVA', 'LAT', '428', '370', '0', NULL, NULL),
('Libya', NULL, 'LY', 'LBY', 'LBY', '434', '507', '0', NULL, '2025-05-24 06:40:45'),
('Morocco', NULL, 'MA', 'MAR', 'MAR', '504', '434', '0', NULL, '2025-05-24 06:40:45'),
('Monaco', NULL, 'MC', 'MCO', 'MCO', '492', '684', '0', NULL, '2025-05-24 06:40:46'),
('Moldova', NULL, 'MD', 'MDA', 'MOL', '498', '374', '0', NULL, NULL),
('Montenegro', NULL, 'ME', 'MNE', 'MNE', '499', '493', '0', NULL, '2025-05-24 06:40:45'),
('Saint Martin (French part)', NULL, 'MF', 'MAF', 'MAF', '663', '685', '0', NULL, '2025-05-24 06:40:46'),
('Madagascar', NULL, 'MG', 'MDG', 'MDG', '450', '604', '0', NULL, '2025-05-24 06:40:45'),
('Marshall Islands', NULL, 'MH', 'MHL', 'MHL', '584', '0', '0', NULL, NULL),
('Republic of North Macedonia', NULL, 'MK', 'MKD', 'MKD', '807', '384', '0', NULL, '2025-05-24 06:40:45'),
('Mali', NULL, 'ML', 'MLI', 'MLI', '466', '525', '0', NULL, '2025-05-24 06:40:45'),
('Myanmar', NULL, 'MM', 'MMR', 'MMR', '104', '568', '0', NULL, '2025-05-24 06:40:45'),
('Mongolia', NULL, 'MN', 'MNG', 'MNG', '496', '603', '0', NULL, '2025-05-24 06:40:45'),
('Macao', NULL, 'MO', 'MAC', 'MAC', '446', '586', '0', NULL, '2025-05-24 06:40:45'),
('Northern Mariana Islands (the)', NULL, 'MP', 'MNP', 'MNP', '580', '683', '0', NULL, '2025-05-24 06:40:46'),
('Martinique', NULL, 'MQ', 'MTQ', 'MTQ', '474', '588', '0', NULL, '2025-05-24 06:40:45'),
('Mauritania', NULL, 'MR', 'MRT', 'MRT', '478', '517', '0', NULL, '2025-05-24 06:40:45'),
('Montserrat', NULL, 'MS', 'MSR', 'MSR', '500', '670', '0', NULL, '2025-05-24 06:40:45'),
('Malta', NULL, 'MT', 'MLT', 'MLT', '470', '390', '0', NULL, '2025-05-24 06:40:45'),
('Mauritius', NULL, 'MU', 'MUS', 'MUS', '480', '571', '0', NULL, '2025-05-24 06:40:45'),
('Maldives', NULL, 'MV', 'MDV', 'MDV', '462', '486', '0', NULL, '2025-05-24 06:40:45'),
('Malawi', NULL, 'MW', 'MWI', 'MWI', '454', '602', '0', NULL, '2025-05-24 06:40:45'),
('Mexico', NULL, 'MX', 'MEX', 'MEX', '484', '413', '0', NULL, '2025-05-24 06:40:45'),
('Malaysia', NULL, 'MY', 'MYS', 'MYS', '458', '393', '0', NULL, '2025-05-24 06:40:45'),
('Mozambique', NULL, 'MZ', 'MOZ', 'MOZ', '508', '572', '0', NULL, '2025-05-24 06:40:45'),
('Namibia', NULL, 'NA', 'NAM', 'NAM', '516', '573', '0', NULL, '2025-05-24 06:40:45'),
('New Caledonia', NULL, 'NC', 'NCL', 'NCL', '540', '598', '0', NULL, '2025-05-24 06:40:45'),
('Niger', NULL, 'NE', 'NER', 'NIG', '562', '487', '0', NULL, NULL),
('Norfolk Island', NULL, 'NF', 'NFK', 'NFK', '574', '0', '0', NULL, NULL),
('Nigeria', NULL, 'NG', 'NGA', 'NGA', '566', '564', '0', NULL, '2025-05-24 06:40:45'),
('Nicaragua', NULL, 'NI', 'NIC', 'NIC', '558', '563', '0', NULL, '2025-05-24 06:40:45'),
('Netherlands', NULL, 'NL', 'NLD', 'DUT', '528', '407', '0', NULL, NULL),
('Norway', NULL, 'NO', 'NOR', 'NOR', '578', '431', '0', NULL, '2025-05-24 06:40:45'),
('Nepal', NULL, 'NP', 'NPL', 'NPL', '524', '566', '0', NULL, '2025-05-24 06:40:45'),
('Nauru', NULL, 'NR', 'NRU', 'NRU', '520', '682', '0', NULL, '2025-05-24 06:40:46'),
('Niue', NULL, 'NU', 'NIU', 'NIU', '570', '0', '0', NULL, NULL),
('New Zealand', NULL, 'NZ', 'NZL', 'NZL', '554', '488', '0', NULL, '2025-05-24 06:40:45'),
('Oman', NULL, 'OM', 'OMN', 'OMA', '512', '380', '0', NULL, NULL),
('Panama', NULL, 'PA', 'PAN', 'PAN', '591', '489', '0', NULL, '2025-05-24 06:40:45'),
('Peru', NULL, 'PE', 'PER', 'PER', '604', '457', '0', NULL, '2025-05-24 06:40:45'),
('French Polynesia', NULL, 'PF', 'PYF', 'TAH', '258', '578', '0', NULL, NULL),
('Papua New Guinea', NULL, 'PG', 'PNG', 'PNG', '598', '504', '0', NULL, '2025-05-24 06:40:45'),
('Philippines (the)', NULL, 'PH', 'PHL', 'PHL', '608', '533', '0', NULL, '2025-05-24 06:40:45'),
('Pakistan', NULL, 'PK', 'PAK', 'PAK', '586', '495', '0', NULL, '2025-05-24 06:40:45'),
('Poland', NULL, 'PL', 'POL', 'POL', '616', '386', '0', NULL, '2025-05-24 06:40:45'),
('Saint Pierre and Miquelon', NULL, 'PM', 'SPM', 'SPM', '666', '0', '0', NULL, NULL),
('Pitcairn', NULL, 'PN', 'PCN', 'PCN', '612', '0', '0', NULL, NULL),
('Puerto Rico', NULL, 'PR', 'PRI', 'PRI', '630', '536', '0', NULL, '2025-05-24 06:40:45'),
('Palestine, State of', NULL, 'PS', 'PSE', 'PSE', '275', '569', '0', NULL, '2025-05-24 06:40:45'),
('Portugal', NULL, 'PT', 'PRT', 'POR', '620', '418', '0', NULL, NULL),
('Palau', NULL, 'PW', 'PLW', 'PLW', '585', '0', '0', NULL, NULL),
('Paraguay', NULL, 'PY', 'PRY', 'PAR', '600', '448', '0', NULL, NULL),
('Qatar', NULL, 'QA', 'QAT', 'QAT', '634', '369', '0', NULL, '2025-05-24 06:40:45'),
('Réunion', NULL, 'RE', 'REU', 'REU', '638', '513', '0', NULL, '2025-05-24 06:40:45'),
('Romania', NULL, 'RO', 'ROU', 'ROM', '642', '443', '0', NULL, NULL),
('Serbia', NULL, 'RS', 'SRB', 'SRB', '688', '428', '0', NULL, '2025-05-24 06:40:45'),
('Russian Federation (the)', NULL, 'RU', 'RUS', 'RUS', '643', '368', '0', NULL, '2025-05-24 06:40:45'),
('Rwanda', NULL, 'RW', 'RWA', 'RWA', '646', '510', '0', NULL, '2025-05-24 06:40:45'),
('Saudi Arabia', NULL, 'SA', 'SAU', 'KSA', '682', '462', '0', NULL, NULL),
('Solomon Islands', NULL, 'SB', 'SLB', 'SLB', '90', '581', '0', NULL, '2025-05-24 06:40:45'),
('Seychelles', NULL, 'SC', 'SYC', 'SYC', '690', '605', '0', NULL, '2025-05-24 06:40:45'),
('Sudan (the)', NULL, 'SD', 'SDN', 'SDN', '729', '509', '0', NULL, '2025-05-24 06:40:45'),
('Sweden', NULL, 'SE', 'SWE', 'SWE', '752', '410', '0', NULL, '2025-05-24 06:40:45'),
('Singapore', NULL, 'SG', 'SGP', 'SGP', '702', '404', '0', NULL, '2025-05-24 06:40:45'),
('Saint Helena, Ascension and Tristan da Cunha', NULL, 'SH', 'SHN', 'SHN', '654', '0', '0', NULL, NULL),
('Slovenia', NULL, 'SI', 'SVN', 'SLO', '705', '441', '0', NULL, NULL),
('Svalbard and Jan Mayen', NULL, 'SJ', 'SJM', 'SJM', '744', '0', '0', NULL, NULL),
('Slovakia', NULL, 'SK', 'SVK', 'SVK', '703', '391', '0', NULL, '2025-05-24 06:40:45'),
('Sierra Leone', NULL, 'SL', 'SLE', 'SLE', '694', '578', '0', NULL, '2025-05-24 06:40:45'),
('San Marino', NULL, 'SM', 'SMR', 'SMR', '674', '395', '0', NULL, '2025-05-24 06:40:45'),
('Senegal', NULL, 'SN', 'SEN', 'SEN', '686', '518', '0', NULL, '2025-05-24 06:40:45'),
('Somalia', NULL, 'SO', 'SOM', 'SOM', '706', '660', '0', NULL, '2025-05-24 06:40:45'),
('Suriname', NULL, 'SR', 'SUR', 'SUR', '740', '570', '0', NULL, '2025-05-24 06:40:45'),
('South Sudan', NULL, 'SS', 'SSD', 'SSD', '728', '668', '0', NULL, '2025-05-24 06:40:45'),
('Sao Tome and Principe', NULL, 'ST', 'STP', 'STP', '678', '597', '0', NULL, '2025-05-24 06:40:45'),
('El Salvador', NULL, 'SV', 'SLV', 'SLV', '222', '557', '0', NULL, '2025-05-24 06:40:45'),
('Sint Maarten (Dutch part)', NULL, 'SX', 'SXM', 'SXM', '534', '669', '0', NULL, '2025-05-24 06:40:45'),
('Syrian Arab Republic', NULL, 'SY', 'SYR', 'SYR', '760', '442', '0', NULL, '2025-05-24 06:40:45'),
('Eswatini', NULL, 'SZ', 'SWZ', 'SWZ', '748', '514', '0', NULL, '2025-05-24 06:40:45'),
('Turks and Caicos Islands', NULL, 'TC', 'TCA', 'TCA', '796', '618', '0', NULL, '2025-05-24 06:40:45'),
('Chad', NULL, 'TD', 'TCD', 'TDC', '148', '561', '0', NULL, NULL),
('French Southern Territories', NULL, 'TF', 'ATF', 'ATF', '260', '0', '0', NULL, NULL),
('Togo', NULL, 'TG', 'TGO', 'TGO', '768', '613', '0', NULL, '2025-05-24 06:40:45'),
('Thailand', NULL, 'TH', 'THA', 'THA', '764', '388', '0', NULL, '2025-05-24 06:40:45'),
('Tajikistan', NULL, 'TJ', 'TJK', 'TJK', '762', '502', '0', NULL, '2025-05-24 06:40:45'),
('Tokelau', NULL, 'TK', 'TKL', 'TKL', '772', '0', '0', NULL, NULL),
('Timor-Leste', NULL, 'TL', 'TLS', 'TLS', '626', '675', '0', NULL, '2025-05-24 06:40:45'),
('Turkmenistan', NULL, 'TM', 'TKM', 'TKM', '795', '501', '0', NULL, '2025-05-24 06:40:45'),
('Tunisia', NULL, 'TN', 'TUN', 'TUN', '788', '505', '0', NULL, '2025-05-24 06:40:45'),
('Tonga', NULL, 'TO', 'TON', 'TGA', '776', '654', '0', NULL, NULL),
('Turkey', NULL, 'TR', 'TUR', 'TUR', '792', '405', '0', NULL, '2025-05-24 06:40:45'),
('Trinidad and Tobago', NULL, 'TT', 'TTO', 'TTO', '780', '530', '0', NULL, '2025-05-24 06:40:45'),
('Tuvalu', NULL, 'TV', 'TUV', 'TUV', '798', '617', '0', NULL, '2025-05-24 06:40:45'),
('Taiwan', NULL, 'TW', 'TWN', 'TWN', '158', '590', '0', NULL, '2025-05-24 06:40:45'),
('Tanzania', NULL, 'TZ', 'TZA', 'TZA', '834', '511', '0', NULL, '2025-05-24 06:40:45'),
('Ukraine', NULL, 'UA', 'UKR', 'UKR', '804', '452', '0', NULL, '2025-05-24 06:40:45'),
('Uganda', NULL, 'UG', 'UGA', 'UGA', '800', '524', '0', NULL, '2025-05-24 06:40:45'),
('United States Minor Outlying Islands (the)', NULL, 'UM', 'UMI', 'UMI', '581', '0', '0', NULL, NULL),
('United States of America', NULL, 'US', 'USA', 'USA', '840', '459', '0', NULL, '2025-05-24 06:40:45'),
('Uruguay', NULL, 'UY', 'URY', 'URU', '858', '402', '0', NULL, NULL),
('Uzbekistan', NULL, 'UZ', 'UZB', 'UZB', '860', '492', '0', NULL, '2025-05-24 06:40:45'),
('Holy See', NULL, 'VA', 'VAT', 'VAT', '336', '0', '0', NULL, NULL),
('Saint Vincent and the Grenadines', NULL, 'VC', 'VCT', 'VCT', '670', '671', '0', NULL, '2025-05-24 06:40:45'),
('Venezuela (Bolivarian Republic of)', NULL, 'VE', 'VEN', 'VEN', '862', '364', '0', NULL, '2025-05-24 06:40:45'),
('Virgin Islands (British)', NULL, 'VG', 'VGB', 'VGB', '92', '620', '0', NULL, '2025-05-24 06:40:45'),
('Virgin Islands (U.S.)', NULL, 'VI', 'VIR', 'VIR', '850', '664', '0', NULL, '2025-05-24 06:40:45'),
('Viet Nam', NULL, 'VN', 'VNM', 'VNM', '704', '450', '0', NULL, '2025-05-24 06:40:45'),
('Vanuatu', NULL, 'VU', 'VUT', 'VUT', '548', '534', '0', NULL, '2025-05-24 06:40:45'),
('Wallis and Futuna', NULL, 'WF', 'WLF', 'WLF', '876', '0', '0', NULL, NULL),
('Samoa', NULL, 'WS', 'WSM', 'SAM', '882', '653', '0', NULL, NULL),
('Yemen', NULL, 'YE', 'YEM', 'YEM', '887', '453', '0', NULL, '2025-05-24 06:40:45'),
('Mayotte', NULL, 'YT', 'MYT', 'MYT', '175', '672', '0', NULL, '2025-05-24 06:40:45'),
('South Africa', NULL, 'ZA', 'ZAF', 'ZAF', '710', '447', '0', NULL, '2025-05-24 06:40:45'),
('Zambia', NULL, 'ZM', 'ZMB', 'ZMB', '894', '512', '0', NULL, '2025-05-24 06:40:45'),
('Zimbabwe', NULL, 'ZW', 'ZWE', 'ZWE', '716', '523', '0', NULL, '2025-05-24 06:40:45');
";
DB::unprepared($sql);
}
}
+3
View File
@@ -13,6 +13,9 @@ class DatabaseSeeder extends Seeder
{
$this->call([
RolesAndPermissionsSeeder::class,
BookmakerSeeder::class,
CountrySeeder::class,
SportSeeder::class,
]);
}
}
+92
View File
@@ -0,0 +1,92 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SportSeeder extends Seeder
{
public function run(): void
{
$sql = "INSERT INTO `sports` (`name`, `code`, `icon`, `bapi`, `bwin`, `b365`, `logi`, `magl`, `is_active`, `created_at`, `updated_at`)
VALUES
('Soccer', 'so', 'icon-soccerball', '1', '4', '1', '1', '1', '1', NULL, NULL),
('Ice Hockey', 'ic', 'icon-icehockey', '17', '12', '17', '4', '19', '1', NULL, NULL),
('Basketball', 'ba', 'icon-basketball', '18', '7', '18', '2', '2', '1', NULL, NULL),
('Rugby', 'rg', 'icon-rugby', '8', '32', '8', '12', '22', '0', NULL, NULL),
('Tennis', 'te', 'icon-tennisball', '13', '5', '13', '5', '15', '1', NULL, NULL),
('American Football', 'af', 'icon-amercanfootball', '12', '11', '12', '70', '25', '0', NULL, NULL),
('Baseball', 'bs', 'icon-baseball', '16', '23', '16', '3', '3', '0', NULL, NULL),
('Handball', 'ha', 'icon-handball', '78', '16', '78', '6', '20', '0', NULL, NULL),
('Pesapallo', NULL, NULL, '0', '0', '0', '0', '7', '0', NULL, NULL),
('Floorball', NULL, NULL, '0', '0', '90', '178', '35', '0', NULL, NULL),
('Bandy', NULL, NULL, '0', '0', '0', '0', '28', '0', NULL, NULL),
('Golf', NULL, NULL, '0', '13', '0', '0', '18', '0', NULL, NULL),
('Volleyball', 'vo', 'icon-volleyball', '91', '18', '91', '23', '6', '0', NULL, NULL),
('Cricket', 'cr', 'icon-cricket', '3', '22', '3', '181', '23', '0', NULL, NULL),
('Table Tennis', 'tt', 'icon-tabletennis', '92', '56', '92', '20', '8', '0', NULL, NULL),
('Snooker', 'sn', 'icon-snooker', '14', '33', '14', '19', '24', '0', NULL, NULL),
('Futsal', 'fu', 'icon-futsal', '83', '70', '83', '180', '4', '0', NULL, NULL),
('Mixed Martial Arts', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Boxing', NULL, NULL, '0', '24', '9', '261', '31', '0', NULL, NULL),
('Darts', 'da', 'icon-darts', '15', '34', '15', '22', '26', '0', NULL, NULL),
('Bowls', NULL, NULL, '0', '0', '66', '0', '11', '0', NULL, NULL),
('Motor Sports', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Gaelic Football', NULL, NULL, '0', '0', '75', '620', '0', '0', NULL, NULL),
('Water Polo', NULL, NULL, '0', '0', '110', '182', '42', '0', NULL, NULL),
('Cycling', NULL, NULL, '0', '10', '0', '184', '33', '0', NULL, NULL),
('Aussie Rules', 'ar', 'icon-australianrules', '36', '36', '36', '13', '5', '0', NULL, NULL),
('Hockey', NULL, NULL, '0', '0', '0', '0', '34', '0', NULL, NULL),
('Rugby Union', 'ru', 'icon-rugby', '8', '32', '8', '0', '0', '0', NULL, NULL),
('Rugby League', 'rl', 'icon-rugby', '19', '31', '19', '12', '22', '0', NULL, NULL),
('Alpine Skiing', NULL, NULL, '0', '9', '0', '0', '17', '0', NULL, NULL),
('Biathlon', NULL, NULL, '0', '64', '0', '0', '30', '0', NULL, NULL),
('Curling', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Nordic Combined', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Ski Jumping', NULL, NULL, '0', '0', '0', '0', '40', '0', NULL, NULL),
('Cross-country Skiing', NULL, NULL, '0', '0', '0', '601', '32', '0', NULL, NULL),
('Bobsleigh', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Freestyle Skiing', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Luge', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Short Track Speed Skating', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Skeleton', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Snowboard', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Speed Skating', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Figure Skating', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Miscellaneous', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Roller Hockey', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Beach Soccer', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Badminton', 'bd', 'icon-badminton', '94', '44', '94', '0', '13', '0', NULL, NULL),
('Archery', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Athletics', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Beach Volleyball', 'bv', 'icon-beachvolleyball', '95', '0', '95', '34', '21', '0', NULL, NULL),
('Diving', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Equestrian', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Fencing', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Judo', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Modern Pentathlon', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Canoe', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Gymnastics', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Rowing', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Shooting', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Swimming Synchronised', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Swimming', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Taekwondo', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Trampoline', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Triathlon', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Weightlifting', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Wrestling', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Sailing', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Horse Racing', 'hr', 'icon-horseracing', '0', '0', '0', '0', '0', '0', NULL, NULL),
('Gaelic Hurling', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Pool', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Squash', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Chess', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('Greyhound Racing', 'gr', 'icon-greyhound', '0', '0', '0', '0', '0', '0', NULL, NULL),
('Harness Racing', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL),
('E-Sports', NULL, NULL, '0', '0', '0', '0', '0', '0', NULL, NULL);";
DB::unprepared($sql);
}
}
+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="m256 233.37l34.45-34.45a207.08 207.08 0 0 1-50.12-135.25c0-5 .19-10.05.54-15A207.1 207.1 0 0 0 120.67 98Zm57.14-57.14L391.33 98A207.07 207.07 0 0 0 273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0 0 40.78 112.56m22.63 22.63a175.25 175.25 0 0 0 112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 0 0 414 120.67ZM176.23 313.14a175.23 175.23 0 0 0-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0 0 98 391.33ZM256 278.63l-34.45 34.45a207.08 207.08 0 0 1 50.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 0 0 391.33 414Zm192.33-6.96a207.08 207.08 0 0 1-135.25-50.12L278.63 256L414 391.33a207.1 207.1 0 0 0 49.39-120.2c-5.01.35-10.02.54-15.06.54M233.37 256L98 120.67a207.06 207.06 0 0 0-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 0 1 135.25 50.12Zm-112.7 158A207.07 207.07 0 0 0 239 463.2q.63-7.35.64-14.87a175.23 175.23 0 0 0-40.81-112.56Z" />
</svg>

After

Width:  |  Height:  |  Size: 952 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M45.5 24q0 1.792-.29 3.507a21.16 21.16 0 0 1-3.625 8.852v.007c-3.143 4.47-7.955 7.688-13.522 8.749a21.6 21.6 0 0 1-5.168.355h-.052a25 25 0 0 1-1.045-.081c-.03 0-.06-.008-.089-.008q-.434-.045-.867-.111c-.082-.015-.17-.022-.253-.037a21 21 0 0 1-.66-.119q-.522-.097-1.045-.23a10 10 0 0 1-.43-.103q-.288-.08-.578-.17q-.257-.077-.526-.164a6 6 0 0 1-.52-.178l-.422-.155a1.5 1.5 0 0 1-.237-.09q-.436-.175-.86-.363c-.386-.17-.764-.356-1.142-.548a17 17 0 0 1-.504-.275a14 14 0 0 1-.563-.318c-.208-.127-.415-.245-.623-.379c-.06-.037-.119-.081-.178-.118c-.29-.186-.578-.386-.853-.586c-.237-.163-.467-.34-.69-.512c-.021-.014-.036-.03-.059-.051q-.3-.232-.578-.475a4 4 0 0 1-.282-.237l-.215-.193a.1.1 0 0 1-.03-.022a1 1 0 0 0-.066-.06c-.015-.007-.022-.022-.03-.029a.06.06 0 0 1-.03-.03a4 4 0 0 1-.274-.252c-.096-.089-.185-.17-.267-.26c-.014-.014-.03-.029-.037-.044a6 6 0 0 0-.222-.207c-.113-.113-.216-.24-.326-.356l-.015-.015h.002c-.248-.262-.498-.522-.736-.8a22 22 0 0 1-1.216-1.572a21.4 21.4 0 0 1-3.61-8.904A22 22 0 0 1 2.5 24a21.3 21.3 0 0 1 3.87-12.3a21.45 21.45 0 0 1 9.586-7.636A21.2 21.2 0 0 1 24 2.5c2.84 0 5.553.548 8.029 1.557a20.7 20.7 0 0 1 5.167 2.98q.624.478 1.216 1.023h.008q.589.534 1.134 1.112a19 19 0 0 1 1.55 1.81c.155.207.318.422.467.637v.007s0-.007.007 0c.37.512.72 1.053 1.03 1.61c.112.184.216.37.32.562c.125.23.244.453.348.683q.12.231.23.474q.175.356.318.712c.12.267.223.534.32.808q.12.309.222.63q.088.255.178.534c.074.237.14.474.207.712c.045.17.09.333.126.504c.134.526.245 1.052.326 1.594c.03.155.052.311.075.474c.037.237.066.482.089.72c.014.103.03.207.037.303c.022.26.044.52.052.786c.014.111.022.215.022.326c.014.312.022.623.022.942" stroke-width="1" />
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m22.693 18.123l-4.564 3.316a2.22 2.22 0 0 0-.808 2.486l1.743 5.365a2.22 2.22 0 0 0 2.115 1.537h5.641c.964 0 1.818-.62 2.116-1.537l1.743-5.365a2.22 2.22 0 0 0-.808-2.487l-4.564-3.315a2.22 2.22 0 0 0-2.615 0m8.929-13.265l-6.235 3.054A3.1 3.1 0 0 1 24 8.216a3.1 3.1 0 0 1-1.246-.289l-6.383-3.04a.766.766 0 0 1-.415-.823A21.2 21.2 0 0 1 24 2.5c2.84 0 5.553.549 8.029 1.557a.736.736 0 0 1-.408.8M19.93 45.115a18 18 0 0 1-1.046-.23a10 10 0 0 1-.43-.104q-.288-.08-.578-.17q-.257-.076-.526-.164a6 6 0 0 1-.52-.178l-.422-.155a1.5 1.5 0 0 1-.237-.09c-.29-.118-.578-.236-.86-.363c-.387-.17-.766-.356-1.14-.549c-.171-.087-.338-.18-.506-.271q-.285-.157-.564-.322q-.314-.183-.622-.376l-.18-.12a21.5 21.5 0 0 1-5.922-5.701a.75.75 0 0 1 .749-.371l6.925.845a3 3 0 0 1 2.209 1.424l2.09 3.403l1.624 2.654c.163.267.141.6-.044.837M8.55 20.567a3.1 3.1 0 0 1-.586 1.194L3.59 27.173a.76.76 0 0 1-.823.245A21.6 21.6 0 0 1 2.5 24a21.3 21.3 0 0 1 3.87-12.3c.311.038.586.26.652.586l1.542 6.917c.104.452.097.92-.014 1.364m33.035 15.792v.007c-3.143 4.47-7.955 7.688-13.522 8.749a.75.75 0 0 1-.052-.853l3.7-6.035a3.04 3.04 0 0 1 2.209-1.423l6.902-.846a.76.76 0 0 1 .763.4M45.5 24q0 1.792-.29 3.507a.74.74 0 0 1-.74-.26l-3.893-4.819l-.541-.667a3 3 0 0 1-.593-2.558l.786-3.521v-.008l.77-3.477a.74.74 0 0 1 .572-.57q0-.008.007 0c.37.51.72 1.052 1.03 1.608c.112.185.216.37.32.563c.126.23.244.453.348.682q.121.232.23.475q.175.356.319.712q.175.399.318.808q.123.309.223.63q.089.255.178.534c.074.237.14.474.207.712c.045.17.09.333.126.504c.134.526.245 1.052.327 1.594c.03.155.051.311.074.474c.037.237.066.482.089.72c.014.103.03.207.037.303c.022.26.044.52.052.786c.014.111.022.215.022.326c.015.312.022.623.022.942M24 8.218v9.48m6.664 4.812l8.766-1.975m-11.285 9.854l4.483 6.891m-12.784-6.9l-4.486 6.9m1.971-14.749L8.551 20.57" stroke-width="1" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg viewBox="0 -20.11 135.27 135.27" fill="transparent">
<path d="M65.2,95c-16.49.61-31.55-1.71-45.91-8.42C10.31,82.34,4.45,76.15,3,66.12c-.71-4.8-1.73-9.56-2.72-14.31-.87-4.18.64-8,2-11.66C6.76,28.67,13.91,19.38,24.77,12.92A87.42,87.42,0,0,1,59.4,1.29c12-1.49,23.93-2.07,35.82.38a176.38,176.38,0,0,1,18.24,4.75C124,9.77,130.16,17.1,131.62,28.1c.9,6.8,1.49,13.64,2.19,20.47q.74,7.24,1.4,14.49c.48,5.37-1.91,9.4-6.08,12.49a61.3,61.3,0,0,1-5.71,3.78c-15.89,9.2-33.13,13.86-51.34,15.18C69.51,94.7,66.94,94.85,65.2,95ZM55.64,61.45l0-.75c5.14-.28,10.29-.53,15.44-.85a89.89,89.89,0,0,0,32.19-8.33,57.35,57.35,0,0,0,16.62-12,12.78,12.78,0,0,0,2.61-3.36c4.38-9.28,3-17.28-6.18-21.41A82.35,82.35,0,0,0,85.79,7,158.71,158.71,0,0,0,61,8.24c-11.59,1.3-22.39,4.51-32.31,10.62A43.7,43.7,0,0,0,9.25,43.13,8.57,8.57,0,0,0,10.83,52,13,13,0,0,0,16,56.21c5.08,2,10.14,3.9,15.68,4.13C39.68,60.68,47.66,61.08,55.64,61.45Zm-43.2,2.19c-1.6,7,.78,11.78,6.38,14.81a70.4,70.4,0,0,0,22.52,8.09c19,3,37.76,1.25,56.1-4.13,6.82-2,13.29-5.24,19.75-8.29,2.24-1.06,4.06-3.11,5.91-4.88a11.94,11.94,0,0,0,3.52-11c-.47-3.11-.88-6.23-1.44-9.33a17.78,17.78,0,0,0-1.37-3.22l-5.1,4.3c-11.54,9.78-25.43,14.53-39.93,16.75a224.42,224.42,0,0,1-42.84,2,54.13,54.13,0,0,1-15.17-2.61C18.13,65.28,15.44,64.54,12.44,63.64Z"></path>
<path fill="currentColor" d="M55.64,61.45c-8-.37-16-.77-23.94-1.11C26.16,60.11,21.1,58.2,16,56.21A13,13,0,0,1,10.83,52a8.57,8.57,0,0,1-1.58-8.82,43.7,43.7,0,0,1,19.4-24.27C38.57,12.75,49.37,9.54,61,8.24A158.71,158.71,0,0,1,85.79,7a82.35,82.35,0,0,1,30.56,7.73c9.15,4.13,10.56,12.13,6.18,21.41a12.78,12.78,0,0,1-2.61,3.36,57.35,57.35,0,0,1-16.62,12,89.89,89.89,0,0,1-32.19,8.33c-5.15.32-10.3.57-15.44.85Z"></path>
<path fill="currentColor" d="M12.44,63.64c3,.9,5.69,1.64,8.33,2.53a54.13,54.13,0,0,0,15.17,2.61,224.42,224.42,0,0,0,42.84-2c14.5-2.22,28.39-7,39.93-16.75l5.1-4.3a17.78,17.78,0,0,1,1.37,3.22c.56,3.1,1,6.22,1.44,9.33a11.94,11.94,0,0,1-3.52,11c-1.85,1.77-3.67,3.82-5.91,4.88-6.46,3-12.93,6.3-19.75,8.29-18.34,5.38-37.07,7.12-56.1,4.13a70.4,70.4,0,0,1-22.52-8.09C13.22,75.42,10.84,70.62,12.44,63.64Z"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M255.03 33.813a229 229 0 0 0-5.5.03c-6.73.14-13.462.605-20.155 1.344c.333.166.544.32.47.438L204.78 75.063l73.907 49.437l-.125.188l70.625.28L371 79.282L342.844 52a225.6 225.6 0 0 0-49.47-14.78c-12.65-2.24-25.497-3.36-38.343-3.407zM190.907 88.25l-73.656 36.78l-13.813 98.407l51.344 33.657l94.345-43.438l14.875-76.5l-73.094-48.906zm196.344.344l-21.25 44.5l36.75 72.72l62.063 38.905l11.312-21.282c.225.143.45.403.656.75c-.77-4.954-1.71-9.893-2.81-14.782c-6.446-28.59-18.59-55.962-35.5-79.97c-9.07-12.872-19.526-24.778-31.095-35.5l-20.125-5.342zm-302.656 23c-6.906 8.045-13.257 16.56-18.938 25.5c-15.676 24.664-26.44 52.494-31.437 81.312A223 223 0 0 0 31 261l20.25 5.094l33.03-40.5L98.75 122.53l-14.156-10.936zm312.719 112.844l-55.813 44.75l-3.47 101.093l39.626 21.126l77.188-49.594l4.406-78.75l-.094.157l-61.844-38.783zm-140.844 6.406l-94.033 43.312l-1.218 76.625l89.155 57.376l68.938-36.437l3.437-101.75l-66.28-39.126zm-224.22 49.75c.91 8.436 2.29 16.816 4.156 25.094c6.445 28.59 18.62 55.96 35.532 79.968c3.873 5.5 8.02 10.805 12.374 15.938l-9.374-48.156l.124-.032l-27.03-68.844zm117.188 84.844l-51.532 8.156l10.125 52.094a225 225 0 0 0 27.314 20.437a226.3 226.3 0 0 0 46.687 22.594l62.626-13.69l-4.344-31.124l-90.875-58.47zm302.437.5l-64.22 41.25l-42 47.375l4.408 6.156c12.027-5.545 23.57-12.144 34.406-19.72c23.97-16.76 44.604-38.304 60.28-62.97c2.51-3.947 4.87-7.99 7.125-12.092zm-122.78 97.656l-79.94 9.625l-25.968 5.655c26.993 4 54.717 3.044 81.313-2.813c9.412-2.072 18.684-4.79 27.75-8.062l-3.156-4.406z" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="currentColor" d="M20.688 16.508a9 9 0 0 1-.437-.262a14 14 0 0 1-1.464-1.082c-1.176-.987-2.67-2.535-3.971-4.787c-1.3-2.253-1.893-4.32-2.16-5.833a14 14 0 0 1-.205-1.81a9 9 0 0 1-.009-.508c.001-.06.008-.182.009-.215A9.95 9.95 0 0 0 7 3.34a9.95 9.95 0 0 0-3.875 4.051l.189.103q.16.089.437.262c.367.234.876.588 1.464 1.082c1.176.988 2.67 2.535 3.97 4.788c1.301 2.252 1.894 4.32 2.162 5.832c.133.757.185 1.375.204 1.81c.01.217.01.389.009.509v.215a9.95 9.95 0 0 0 5.44-1.33a9.95 9.95 0 0 0 3.874-4.046z" />
<path fill="currentColor" d="M10.06 21.811a9 9 0 0 0-.007-.478a12 12 0 0 0-.183-1.613c-.241-1.369-.783-3.266-1.982-5.343c-1.2-2.078-2.572-3.495-3.637-4.39a12 12 0 0 0-1.304-.964c-.159-.1-.33-.199-.412-.245a9.98 9.98 0 0 0 .806 8.224a9.98 9.98 0 0 0 6.719 4.81m3.883-19.62a10 10 0 0 0 .006.479c.017.375.063.927.184 1.612c.241 1.37.783 3.266 1.982 5.344c1.2 2.077 2.572 3.494 3.637 4.389c.532.447.987.762 1.304.964c.159.101.33.2.412.245a9.98 9.98 0 0 0-.806-8.223a9.98 9.98 0 0 0-6.719-4.81" />
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB