multi betts wip

This commit is contained in:
salam committed 2026-01-09 12:55:18 +01:00
1 parent 1aa044fff1
commit b39196c9eb
62 files changed
+1214 -185

No files matched your search

+1 -1
View File
@@ -3,8 +3,8 @@
namespace App\Actions;
use App\Models\MultilineSetting;
use DB;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\DB;
class BettypUserGenerator
{
+1 -1
View File
@@ -4,8 +4,8 @@ namespace App\Actions;
use App\Models\MultilineClient;
use App\Models\MultilineSetting;
use DB;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\DB;
class MultilineGenerator
{
@@ -31,7 +31,7 @@ class Willhill
*/
$bookmaker_id = 42;
$res = Event::with('odds_3way')
$res = Event::with('odds_3ways')
->where('betsapi_id', 0)
->where('sport_id', $sport_id)
->where('starttime', '>', Carbon::now())
+15 -5
View File
@@ -5,14 +5,18 @@ namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Grapper\TxOdds\Odds\_2Way;
use App\Console\Commands\Grapper\TxOdds\Odds\_2WayS1;
use App\Console\Commands\Grapper\TxOdds\Odds\_3Way;
use App\Console\Commands\Grapper\TxOdds\Odds\_3WayHt;
use App\Console\Commands\Grapper\TxOdds\Odds\_Dc;
use App\Console\Commands\Grapper\TxOdds\Odds\_Dnb;
use App\Console\Commands\Grapper\TxOdds\Odds\_Ggng;
use App\Console\Commands\Grapper\TxOdds\Odds\_Points;
use App\Console\Commands\Grapper\TxOdds\Odds\_PointsHt;
use App\Console\Commands\Grapper\TxOdds\Odds\_PointsQ1;
use App\Console\Commands\Grapper\TxOdds\Odds\_Totals;
use App\Console\Commands\Grapper\TxOdds\Odds\_TotalsHt;
use App\Console\Commands\Grapper\TxOdds\Odds\_TotalsQ1;
use App\Console\Commands\Grapper\TxOdds\Odds\_Tq;
use App\Console\Commands\Grapper\TxOdds\Odds\WorkCollector;
use App\Console\Commands\Nuh;
use App\Console\Commands\Xml;
use App\Models\CompetitionGroup;
@@ -191,7 +195,8 @@ class Odds
/**
* TODAY
*/
$res = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(1)->toDateTimeString())->pluck('id');
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(1)->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url.'&spid='.Nuh::$options['sport_id']."&ot=$markets&peid=".$id;
}
@@ -202,7 +207,7 @@ class Odds
/**
* ONE WEEK
*/
$res = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('id');
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
@@ -275,6 +280,8 @@ class Odds
];
Element::updateOrCreate(['id' => (int) $row->ateam['id']], $element);
Nuh::$collector = [];
foreach ($row->bookmaker as $book) {
Nuh::$id = (int) $row['id'];
@@ -283,7 +290,6 @@ class Odds
$odds = [];
$odds['sport_id'] = (int) $event['sport_id'];
$odds['flag'] = 1;
$odds['provider_id'] = Nuh::$options['provider_id'];
$odds['nuh_check'] = 0;
@@ -302,6 +308,9 @@ class Odds
case 'bmoid':
$odds['bmoid'] = (string) $attributeValue;
break;
case 'flag':
$odds['flag'] = (string) $attributeValue;
break;
}
}
@@ -334,10 +343,10 @@ class Odds
break;
case 131075:
_PointsQt::grap($odds, $offer);
_PointsQ1::grap($odds, $offer);
break;
case 131076:
_TotalsQt::grap($odds, $offer);
_TotalsQ1::grap($odds, $offer);
break;
case 5242880:
@@ -359,6 +368,7 @@ class Odds
}
}
}
WorkCollector::run();
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
class FillCollector
{
public static function set($odds, $bettype)
{
if (! isset(Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference'])) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference'] = $odds['difference'];
if (isset($odds['handicap'])) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['handicap'];
} else {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['total'];
}
} elseif ($odds['difference'] < Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference']) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['difference'] = $odds['difference'];
if (isset($odds['handicap'])) {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['handicap'];
} else {
Nuh::$collector[$bettype][Nuh::$bookmaker_id]['active_spread'] = $odds['total'];
}
}
}
}
@@ -0,0 +1,34 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use Illuminate\Support\Facades\DB;
class WorkCollector
{
public static function run()
{
foreach (Nuh::$collector as $table => $value) {
DB::table($table)->where('event_id', Nuh::$id)->where('provider_id', Nuh::$options['provider_id'])->update(['active_spread' => 0]);
}
foreach (Nuh::$collector as $table => $bookmaker) {
foreach ($bookmaker as $bookmaker_id => $values) {
if (in_array($table, ['odds_points', 'odds_points_ht', 'odds_points_q1'])) {
DB::table($table)
->where('event_id', Nuh::$id)
->where('bookmaker_id', $bookmaker_id)
->where('handicap', $values['active_spread'])
->update(['active_spread' => 1]);
} else {
DB::table($table)
->where('event_id', Nuh::$id)
->where('bookmaker_id', $bookmaker_id)
->where('total', $values['active_spread'])
->update(['active_spread' => 1]);
}
}
}
}
}
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\Odds2way;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _2Way
{
@@ -17,7 +17,7 @@ class _2Way
}
$odds['margin'] = (float) Margin::calculate([$odds['h2w'], $odds['a2w']], 1);
Odds2way::updateOrCreate([
DB::table('odds_2ways')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\Odds2wayS1;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _2WayS1
{
@@ -17,7 +17,7 @@ class _2WayS1
}
$odds['margin'] = (float) Margin::calculate([$odds['h2w'], $odds['a2w']], 1);
Odds2wayS1::updateOrCreate([
DB::table('odds_2ways_s1')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\Odds3way;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _3Way
{
@@ -18,7 +18,7 @@ class _3Way
}
$odds['margin'] = (float) Margin::calculate([$odds['h3w'], $odds['d3w'], $odds['a3w']], 1);
Odds3way::updateOrCreate([
DB::table('odds_3ways')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -4,6 +4,7 @@ namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _3WayHt
{
@@ -13,11 +14,10 @@ class _3WayHt
$odds['h3w'] = (float) $value->o1;
$odds['d3w'] = (float) $value->o2;
$odds['a3w'] = (float) $value->o3;
$odds['starttime'] = (string) $value['starttime'];
}
$odds['margin'] = (float) Margin::calculate([$odds['h3w'], $odds['d3w'], $odds['a3w']], 1);
Odds3wayHt::updateOrCreate([
DB::table('odds_3ways_ht')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsDc;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Dc
{
@@ -17,7 +17,7 @@ class _Dc
}
$odds['margin'] = (float) Margin::calculate([$odds['dc1x'], $odds['dc12'], $odds['dcx2']], 1);
OddsDc::updateOrCreate([
DB::table('odds_dc')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsDnb;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Dnb
{
@@ -16,7 +16,7 @@ class _Dnb
}
$odds['margin'] = (float) Margin::calculate([$odds['dnb1'], $odds['dnb2']], 1);
OddsDnb::updateOrCreate([
DB::table('odds_dnb')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsGgng;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Ggng
{
@@ -16,7 +16,7 @@ class _Ggng
}
$odds['margin'] = (float) Margin::calculate([$odds['gg'], $odds['ng']], 1);
OddsGgng::updateOrCreate([
DB::table('odds_ggng')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsPoint;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Points
{
@@ -16,10 +16,16 @@ class _Points
$odds['handicap'] = (float) $value->o3;
}
if (fmod((float) $odds['handicap'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1);
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
OddsPoint::updateOrCreate([
FillCollector::set($odds, 'odds_points');
DB::table('odds_points')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'handicap' => $odds['handicap'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsPointHt;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _PointsHt
{
@@ -16,10 +16,16 @@ class _PointsHt
$odds['handicap'] = (float) $value->o3;
}
if (fmod((float) $odds['handicap'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1);
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
OddsPointHt::updateOrCreate([
FillCollector::set($odds, 'odds_points_ht');
DB::table('odds_points_ht')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'handicap' => $odds['handicap'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsPointQ1;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _PointsQ1
{
@@ -16,10 +16,16 @@ class _PointsQ1
$odds['handicap'] = (float) $value->o3;
}
if (fmod((float) $odds['handicap'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1);
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
OddsPointQ1::updateOrCreate([
FillCollector::set($odds, 'odds_points_q1');
DB::table('odds_points_q1')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'handicap' => $odds['handicap'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsTotal;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Totals
{
@@ -20,12 +20,18 @@ class _Totals
if ((float) $odds['total'] != 2.5) {
return;
}
} else {
if (fmod((float) $odds['total'], 1) != 0.5) {
return;
}
}
$odds['margin'] = (float) Margin::calculate([$odds['over'], $odds['under']], 1);
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
OddsTotal::updateOrCreate([
FillCollector::set($odds, 'odds_totals');
DB::table('odds_totals')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'total' => $odds['total'],
@@ -4,6 +4,7 @@ namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _TotalsHt
{
@@ -15,10 +16,16 @@ class _TotalsHt
$odds['total'] = (float) $value->o3;
}
if (fmod((float) $odds['total'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['over'], $odds['under']], 1);
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
OddsTotalHt::updateOrCreate([
FillCollector::set($odds, 'odds_totals_ht');
DB::table('odds_totals_ht')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'total' => $odds['total'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsTotalQ1;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _TotalsQ1
{
@@ -16,10 +16,16 @@ class _TotalsQ1
$odds['total'] = (float) $value->o3;
}
if (fmod((float) $odds['total'], 1) != 0.5) {
return;
}
$odds['margin'] = (float) Margin::calculate([$odds['over'], $odds['under']], 1);
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
OddsTotalQ1::updateOrCreate([
FillCollector::set($odds, 'odds_totals_q1');
DB::table('odds_totals_q1')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
'total' => $odds['total'],
@@ -3,8 +3,8 @@
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Console\Commands\Nuh;
use App\Models\OddsTq;
use App\Utilities\Margin;
use Illuminate\Support\Facades\DB;
class _Tq
{
@@ -16,7 +16,7 @@ class _Tq
}
$odds['margin'] = (float) Margin::calculate([$odds['htq'], $odds['atq']], 1);
OddsTq::updateOrCreate([
DB::table('odds_tq')->updateOrInsert([
'event_id' => Nuh::$id,
'bookmaker_id' => Nuh::$bookmaker_id,
], $odds);
+2
View File
@@ -20,6 +20,8 @@ class Nuh extends Command
public static $bookmaker_id;
public static $collector = [];
public static $BETSAPI_TOKEN = '36152-aeTRNnZxSPUwGe';
protected $signature = 'nuh {process=help} {--id=0} {--f=} {--a} {--p} {--d} {--b} {--w} {--g} {--r} {--s} {--t}';
@@ -58,23 +58,48 @@ class EventResource extends Resource
->with('country')
->with('home')
->with('away');
if (in_array(1, EventsTable::$bettype_settings)) {
$query->with('odds_3way.bookmaker');
if (in_array('odds_2ways', EventsTable::$bettype_settings)) {
$query->with('odds_2ways.bookmaker');
}
if (in_array(2, EventsTable::$bettype_settings)) {
if (in_array('odds_2ways_s1', EventsTable::$bettype_settings)) {
$query->with('odds_2ways_s1.bookmaker');
}
if (in_array('odds_3ways', EventsTable::$bettype_settings)) {
$query->with('odds_3ways.bookmaker');
}
if (in_array('odds_3ways_ht', EventsTable::$bettype_settings)) {
$query->with('odds_3ways_ht.bookmaker');
}
if (in_array('odds_dc', EventsTable::$bettype_settings)) {
$query->with('odds_dc.bookmaker');
}
if (in_array(3, EventsTable::$bettype_settings)) {
if (in_array('odds_dnb', EventsTable::$bettype_settings)) {
$query->with('odds_dnb.bookmaker');
}
if (in_array(4, EventsTable::$bettype_settings)) {
if (in_array('odds_ggng', EventsTable::$bettype_settings)) {
$query->with('odds_ggng.bookmaker');
}
if (in_array(5, EventsTable::$bettype_settings)) {
$query->with('odds_tq.bookmaker');
if (in_array('odds_points', EventsTable::$bettype_settings)) {
$query->with('odds_points.bookmaker');
}
if (in_array(6, EventsTable::$bettype_settings)) {
$query->with('odds_total.bookmaker');
if (in_array('odds_points_ht', EventsTable::$bettype_settings)) {
$query->with('odds_points_ht.bookmaker');
}
if (in_array('odds_points_q1', EventsTable::$bettype_settings)) {
$query->with('odds_points_q1.bookmaker');
}
if (in_array('odds_totals', EventsTable::$bettype_settings)) {
$query->with('odds_totals.bookmaker');
}
if (in_array('odds_totals_ht', EventsTable::$bettype_settings)) {
$query->with('odds_totals_ht.bookmaker');
}
if (in_array('odds_totals_q1', EventsTable::$bettype_settings)) {
$query->with('odds_totals_q1.bookmaker');
}
if (in_array('odds_tq', EventsTable::$bettype_settings)) {
$query->with('odds_tq.bookmaker');
}
return $query;
@@ -6,7 +6,12 @@ use App\Filament\Tables\Columns\Column3way;
use App\Filament\Tables\Columns\ColumnDc;
use App\Filament\Tables\Columns\ColumnDnb;
use App\Filament\Tables\Columns\ColumnGgng;
use App\Filament\Tables\Columns\ColumnMl;
use App\Filament\Tables\Columns\ColumnMlS1;
use App\Filament\Tables\Columns\ColumnPoint;
use App\Filament\Tables\Columns\ColumnPointQ1;
use App\Filament\Tables\Columns\ColumnTotal;
use App\Filament\Tables\Columns\ColumnTotalQ1;
use App\Filament\Tables\Columns\ColumnTq;
use App\Filament\Tables\Columns\MatchIds;
use App\Models\BettypeUser;
@@ -38,82 +43,23 @@ class EventsTable
public static $multiline_bookmaker = [];
public static $odds_3ways = [];
public static $odds_totals = [];
public static $odds_totals_q1 = [];
public static $odds_dc = [];
public static $odds_dnb = [];
public static $odds_ggng = [];
public static $odds_points = [];
public static $odds_points_q1 = [];
public static $odds_2ways = [];
public static $odds_2ways_s1 = [];
public static $odds_tq = [];
public static $multiline_gettype = [];
public static function load_multiline_bookmaker()
{
$res = MultilineClient::where('client_id', auth()->user()->client_id)->where('sport_id', auth()->user()->sport_id)->select('bookmaker_id', 'multiline_setting_id')->orderBy('multiline_setting_id')->orderBy('sort')->get();
$res = MultilineClient::with('multiline_setting')->where('client_id', auth()->user()->client_id)->where('sport_id', auth()->user()->sport_id)->select('bookmaker_id', 'multiline_setting_id')->orderBy('multiline_setting_id')->orderBy('sort')->get();
foreach ($res as $value) {
switch ($value->multiline_setting_id) {
case 1:
case 13:
self::$odds_3ways[] = $value->bookmaker_id;
break;
case 2:
self::$odds_dc[] = $value->bookmaker_id;
break;
case 3:
self::$odds_dnb[] = $value->bookmaker_id;
break;
case 4:
self::$odds_ggng[] = $value->bookmaker_id;
break;
case 5:
self::$odds_tq[] = $value->bookmaker_id;
break;
case 8:
case 14:
self::$odds_points[] = $value->bookmaker_id;
break;
case 9:
self::$odds_points_q1[] = $value->bookmaker_id;
break;
case 7:
case 12:
case 16:
self::$odds_2ways[] = $value->bookmaker_id;
break;
case 17:
self::$odds_2ways_s1[] = $value->bookmaker_id;
break;
case 6:
case 10:
case 15:
case 18:
self::$odds_totals[] = $value->bookmaker_id;
break;
case 11:
self::$odds_totals_q1[] = $value->bookmaker_id;
break;
}
self::$multiline_gettype[$value->multiline_setting->table][] = $value->bookmaker_id;
}
}
public static function load_bettype_settings()
{
self::$bettype_settings = BettypeUser::where('is_active', 1)->pluck('multiline_setting_id')->toArray();
$res = BettypeUser::with('multiline_setting')->where('is_active', 1)->get();
foreach ($res as $value) {
self::$bettype_settings[] = $value->multiline_setting->table;
}
}
public static function configure(Table $table): Table
@@ -160,42 +106,82 @@ class EventsTable
TextColumn::make('away.name')
->wrap()
->searchable(),
Column3way::make('odds3way')->bookmakers(self::$odds_3ways)
->visible(fn () => in_array(1, self::$bettype_settings))
ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->label('1 X 2'),
->alignCenter()
->label('ML'),
ColumnDc::make('oddsdc')->bookmakers(self::$odds_dc)
->visible(fn () => in_array(2, self::$bettype_settings))
ColumnMlS1::make('odds_2ways_s1')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('ML S1'),
Column3way::make('odds_3ways')->bookmakers(self::$multiline_gettype['odds_3ways'] ?? [])
->visible(fn () => in_array('odds_3ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->label('1X2'),
ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_gettype['odds_totals'] ?? [])
->visible(fn () => in_array('odds_totals', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals'),
ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_gettype['odds_totals_q1'] ?? [])
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals Q1'),
ColumnPoint::make('odds_points')->bookmakers(self::$multiline_gettype['odds_points'] ?? [])
->visible(fn () => in_array('odds_points', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Points'),
ColumnPointQ1::make('odds_points_q1')->bookmakers(self::$multiline_gettype['odds_points_q1'] ?? [])
->visible(fn () => in_array('odds_points_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Points Q1'),
ColumnDc::make('odds_dc')->bookmakers(self::$multiline_gettype['odds_dc'] ?? [])
->visible(fn () => in_array('odds_dc', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Double Chance'),
ColumnDnb::make('oddsdnb')->bookmakers(self::$odds_dnb)
->visible(fn () => in_array(3, self::$bettype_settings))
ColumnDnb::make('odds_dnb')->bookmakers(self::$multiline_gettype['odds_dnb'] ?? [])
->visible(fn () => in_array('odds_dnb', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Draw No Bet'),
ColumnGgng::make('oddsggng')->bookmakers(self::$odds_ggng)
->visible(fn () => in_array(4, self::$bettype_settings))
ColumnGgng::make('odds_ggng')->bookmakers(self::$multiline_gettype['odds_ggng'] ?? [])
->visible(fn () => in_array('odds_ggng', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Goal No Goal'),
ColumnTq::make('oddstq')->bookmakers(self::$odds_tq)
->visible(fn () => in_array(5, self::$bettype_settings))
ColumnTq::make('odds_tq')->bookmakers(self::$bettype_settings['odds_tq'] ?? [])
->visible(fn () => in_array('odds_tq', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('To Qualify'),
ColumnTotal::make('oddstotal')->bookmakers(self::$odds_totals)
->visible(fn () => in_array(6, self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->label('Totals'),
])->searchable(['id', 'betsapi_id', 'betradar_id', 'bet365_id', 'bwin_id', 'magnig_id', 'magken_id', 'lognig_id', 'logcol_id'])
->defaultSort('starttime', 'ASC')
->extremePaginationLinks()
+8 -8
View File
@@ -34,21 +34,21 @@ class Column3way extends Column
public function loadData($record)
{
$this->has_data = count($record->odds_3way) ? true : false;
$this->has_data = count($record->odds_3ways) ? true : false;
$this->act = $record->odds_3way->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->act = $record->odds_3ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h3w'] = $record->odds_3way->max('h3w');
$this->max['h3w'] = $record->odds_3ways->max('h3w');
$this->max['d3w'] = $record->odds_3way->max('d3w');
$this->max['d3w'] = $record->odds_3ways->max('d3w');
$this->max['a3w'] = $record->odds_3way->max('a3w');
$this->max['a3w'] = $record->odds_3ways->max('a3w');
$this->min['h3w'] = $record->odds_3way->min('h3w');
$this->min['h3w'] = $record->odds_3ways->min('h3w');
$this->min['d3w'] = $record->odds_3way->min('d3w');
$this->min['d3w'] = $record->odds_3ways->min('d3w');
$this->min['a3w'] = $record->odds_3way->min('a3w');
$this->min['a3w'] = $record->odds_3ways->min('a3w');
}
public function getAct()
+70
View File
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnMl extends Column
{
protected string $view = 'filament.tables.columns.column-ml';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_2ways) ? true : false;
$this->act = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['a2w'] = $record->odds_2ways->min('a2w');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnMlS1 extends Column
{
protected string $view = 'filament.tables.columns.column-ml-s1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_2ways_s1) ? true : false;
$this->act = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['a2w'] = $record->odds_2ways->min('a2w');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnPoint extends Column
{
protected string $view = 'filament.tables.columns.column-point';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_points) ? true : false;
$this->act = $record->odds_points->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['home'] = $record->odds_points->max('home');
$this->max['away'] = $record->odds_points->max('away');
$this->min['home'] = $record->odds_points->min('home');
$this->min['away'] = $record->odds_points->min('away');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnPointQ1 extends Column
{
protected string $view = 'filament.tables.columns.column-point-q1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_points_q1) ? true : false;
$this->act = $record->odds_points_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['home'] = $record->odds_points_q1->max('home');
$this->max['away'] = $record->odds_points_q1->max('away');
$this->min['home'] = $record->odds_points_q1->min('home');
$this->min['away'] = $record->odds_points_q1->min('away');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
+6 -6
View File
@@ -34,17 +34,17 @@ class ColumnTotal extends Column
public function loadData($record)
{
$this->has_data = count($record->odds_total) ? true : false;
$this->has_data = count($record->odds_totals) ? true : false;
$this->act = $record->odds_total->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->act = $record->odds_totals->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_total->max('over');
$this->max['over'] = $record->odds_totals->max('over');
$this->max['under'] = $record->odds_total->max('under');
$this->max['under'] = $record->odds_totals->max('under');
$this->min['over'] = $record->odds_total->min('over');
$this->min['over'] = $record->odds_totals->min('over');
$this->min['under'] = $record->odds_total->min('under');
$this->min['under'] = $record->odds_totals->min('under');
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnTotalQ1 extends Column
{
protected string $view = 'filament.tables.columns.column-total-q1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?bool $has_data;
public function bookmakers(?array $bookmakers): static
{
array_unshift($bookmakers, auth()->user()->bookmaker_id);
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers;
}
public function loadData($record)
{
$this->has_data = count($record->odds_totals_q1) ? true : false;
$this->act = $record->odds_totals_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_totals_q1->max('over');
$this->max['under'] = $record->odds_totals_q1->max('under');
$this->min['over'] = $record->odds_totals_q1->min('over');
$this->min['under'] = $record->odds_totals_q1->min('under');
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
+3 -3
View File
@@ -18,13 +18,13 @@ class BettypeToggle extends Component
{
$this->multilines = [];
$res = BettypeUser::with('multiline')->get();
$res = BettypeUser::with('multiline_setting')->orderBy('multiline_setting_id')->get();
foreach ($res as $set) {
$this->multilines[] = [
'id' => $set->multiline_setting_id,
'name' => $set->multiline->name,
'short' => $set->multiline->short,
'name' => $set->multiline_setting->name,
'short' => $set->multiline_setting->short,
'is_active' => $set->is_active,
];
}
+2 -2
View File
@@ -22,8 +22,8 @@ class BettypeUser extends Model
static::addGlobalScope(new UserScope);
}
public function multiline()
public function multiline_setting()
{
return $this->hasOne(MultilineSetting::class, 'id', 'multiline_setting_id');
return $this->belongsTo(MultilineSetting::class);
}
}
+26 -11
View File
@@ -68,21 +68,26 @@ class Event extends Model
return $this->belongsTo(Element::class);
}
public function odds_2way()
public function odds_2ways()
{
return $this->hasMany(Odds2way::class);
}
public function odds_2way_s1()
public function odds_2ways_s1()
{
return $this->hasMany(Odds2wayS1::class);
}
public function odds_3way()
public function odds_3ways()
{
return $this->hasMany(Odds3way::class);
}
public function odds_3ways_ht()
{
return $this->hasMany(Odds3wayHt::class);
}
public function odds_dc()
{
return $this->hasMany(OddsDc::class);
@@ -98,24 +103,34 @@ class Event extends Model
return $this->hasMany(OddsGgng::class);
}
public function odds_point()
public function odds_points()
{
return $this->hasMany(OddsPoint::class);
return $this->hasMany(OddsPoint::class)->where('active_spread', 1);
}
public function odds_point_q1()
public function odds_points_q1()
{
return $this->hasMany(OddsPointQ1::class);
return $this->hasMany(OddsPointQ1::class)->where('active_spread', 1);
}
public function odds_total()
public function odds_points_ht()
{
return $this->hasMany(OddsTotal::class);
return $this->hasMany(OddsPointHt::class)->where('active_spread', 1);
}
public function odds_total_q1()
public function odds_totals()
{
return $this->hasMany(OddsTotalQ1::class);
return $this->hasMany(OddsTotal::class)->where('active_spread', 1);
}
public function odds_totals_q1()
{
return $this->hasMany(OddsTotalQ1::class)->where('active_spread', 1);
}
public function odds_totals_ht()
{
return $this->hasMany(OddsTotalHt::class)->where('active_spread', 1);
}
public function odds_tq()
+2
View File
@@ -20,6 +20,8 @@ class OddsPoint extends Model
'away',
'handicap',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsPointHt extends Model
'away',
'handicap',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsPointQ1 extends Model
'away',
'handicap',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsTotal extends Model
'under',
'total',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -20,6 +20,8 @@ class OddsTotalHt extends Model
'under',
'total',
'margin',
'difference',
'active_spread',
'flag',
'nuh_check',
'add_time',
+2
View File
@@ -19,6 +19,8 @@ class OddsTotalQ1 extends Model
'over',
'under',
'spread',
'difference',
'active_spread',
'margin',
'flag',
'nuh_check',
@@ -21,9 +21,10 @@ return new class extends Migration
$table->string('bmoid')->nullable();
$table->decimal('home', 7, 3)->default(0);
$table->decimal('away', 7, 3)->default(0);
$table->decimal('handicap', 7, 3)->default(0);
$table->decimal('handicap', 5, 2)->default(0);
$table->decimal('margin', 5, 1)->default(0);
$table->decimal('difference', 5, 4)->default(0);
$table->boolean('active_spread')->default(0);
$table->boolean('flag')->default(0);
$table->boolean('nuh_check')->default(0);
$table->timestamp('starttime')->nullable();
@@ -21,9 +21,10 @@ return new class extends Migration
$table->string('bmoid')->nullable();
$table->decimal('home', 7, 3)->default(0);
$table->decimal('away', 7, 3)->default(0);
$table->decimal('handicap', 7, 3)->default(0);
$table->decimal('handicap', 5, 2)->default(0);
$table->decimal('margin', 5, 1)->default(0);
$table->decimal('difference', 5, 4)->default(0);
$table->boolean('active_spread')->default(0);
$table->boolean('flag')->default(0);
$table->boolean('nuh_check')->default(0);
$table->timestamp('starttime')->nullable();
@@ -21,9 +21,10 @@ return new class extends Migration
$table->string('bmoid')->nullable();
$table->decimal('home', 7, 3)->default(0);
$table->decimal('away', 7, 3)->default(0);
$table->decimal('handicap', 7, 3)->default(0);
$table->decimal('handicap', 5, 2)->default(0);
$table->decimal('margin', 5, 1)->default(0);
$table->decimal('difference', 5, 4)->default(0);
$table->boolean('active_spread')->default(0);
$table->boolean('flag')->default(0);
$table->boolean('nuh_check')->default(0);
$table->timestamps();
@@ -21,9 +21,10 @@ return new class extends Migration
$table->string('bmoid')->nullable();
$table->decimal('over', 7, 3)->default(0);
$table->decimal('under', 7, 3)->default(0);
$table->decimal('total', 7, 3)->default(0);
$table->decimal('total', 5, 2)->default(0);
$table->decimal('margin', 5, 1)->default(0);
$table->decimal('difference', 5, 4)->default(0);
$table->boolean('active_spread')->default(0);
$table->boolean('flag')->default(0);
$table->boolean('nuh_check')->default(0);
$table->timestamps();
@@ -21,10 +21,11 @@ return new class extends Migration
$table->string('bmoid')->nullable();
$table->decimal('over', 7, 3)->default(0);
$table->decimal('under', 7, 3)->default(0);
$table->decimal('total', 7, 3)->default(0);
$table->decimal('total', 5, 2)->default(0);
$table->decimal('margin', 5, 1)->default(0);
$table->decimal('difference', 5, 4)->default(0);
$table->boolean('flag')->default(0);
$table->boolean('active_spread')->default(0);
$table->boolean('nuh_check')->default(0);
$table->timestamps();
});
@@ -21,10 +21,11 @@ return new class extends Migration
$table->string('bmoid')->nullable();
$table->decimal('over', 7, 3)->default(0);
$table->decimal('under', 7, 3)->default(0);
$table->decimal('total', 7, 3)->default(0);
$table->decimal('total', 5, 2)->default(0);
$table->decimal('margin', 5, 1)->default(0);
$table->boolean('flag')->default(0);
$table->decimal('difference', 5, 4)->default(0);
$table->boolean('active_spread')->default(0);
$table->boolean('nuh_check')->default(0);
$table->timestamps();
});
+5 -5
View File
@@ -14,7 +14,7 @@ class SupervisorSeeder extends Seeder
*/
$sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `maxsconds`, `lastcall`, `is_cron`, `is_active`, `days_from`, `days_to`, `created_at`, `updated_at`)
VALUES
(1, 'Fixtures', 1, 1, 10, 0, '0.073', 1800, 0, 1, 1, 0, 0, '2025-08-27 07:39:55', '2026-01-08 10:23:28'),
(1, 'Fixtures', 1, 1, 10, 0, '0.129', 1800, 0, 1, 1, 0, 0, '2025-08-27 07:39:55', '2026-01-09 08:15:55'),
(2, 'Odds', 1, 1, 10, 0, '0.251', 30, 0, 0, 1, 0, 10, '2025-12-01 05:41:02', '2026-01-08 17:56:27'),
(3, 'Fixtures', 2, 0, 15, 0, '0.133', 1800, 0, 1, 1, 0, 0, '2025-12-19 11:42:35', '2026-01-08 10:25:32'),
(4, 'Willhill', 2, 0, 15, 0, '2.119', 1800, 0, 1, 1, 0, 0, '2025-12-19 11:48:05', '2026-01-04 10:27:11'),
@@ -32,10 +32,10 @@ class SupervisorSeeder extends Seeder
(16, 'Odds', 6, 1, 10, 0, '1.368', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-05 06:22:27'),
(17, 'Odds', 6, 3, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-05 06:22:37'),
(18, 'Odds', 6, 2, 10, 0, '1.368', 30, 0, 0, 1, 0, 0, '2025-12-18 17:44:33', '2026-01-05 06:22:51'),
(19, 'Odds', 6, 5, 15, 0, NULL, 1800, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-03 12:27:53'),
(20, 'Odds', 1, 3, 15, 0, NULL, 1800, 0, 0, 0, 0, 10, '2026-01-08 17:56:50', '2026-01-08 17:56:55'),
(21, 'Odds', 1, 2, 15, 0, NULL, 1800, 0, 0, 0, 0, 10, '2026-01-08 17:57:14', '2026-01-08 17:57:50'),
(22, 'Odds', 1, 5, 15, 0, NULL, 1800, 0, 0, 0, 0, 10, '2026-01-08 17:57:24', '2026-01-08 17:57:52');
(19, 'Odds', 6, 5, 15, 0, NULL, 30, 0, 0, 1, 0, 0, '2026-01-03 12:27:44', '2026-01-03 12:27:53'),
(20, 'Odds', 1, 3, 15, 0, NULL, 30, 0, 0, 1, 0, 10, '2026-01-08 17:56:50', '2026-01-09 08:16:58'),
(21, 'Odds', 1, 2, 15, 0, NULL, 30, 0, 0, 1, 0, 10, '2026-01-08 17:57:14', '2026-01-09 08:16:59'),
(22, 'Odds', 1, 5, 15, 0, NULL, 30, 0, 0, 1, 0, 10, '2026-01-08 17:57:24', '2026-01-09 08:17:00');
";
DB::unprepared($sql);
}
@@ -25,28 +25,28 @@
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dc1x,
'dec' => 2,
'hig' => isset($act['dc1x']) && $item->dc1x >= $act['dc1x'] ? 1: 0,
'hig' => isset($act['dc1x']) && $item->dc1x >= $act['dc1x'] ? 1 : 0,
'has' => isset($act['dc1x']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dc12,
'dec' => 2,
'hig' => isset($act['dc12']) && $item->dc12 >= $act['dc12'] ? 1: 0,
'hig' => isset($act['dc12']) && $item->dc12 >= $act['dc12'] ? 1 : 0,
'has' => isset($act['dc12']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dcx2,
'dec' => 2,
'hig' => isset($act['dcx2']) && $item->dcx2 >= $act['dcx2'] ? 1: 0,
'hig' => isset($act['dcx2']) && $item->dcx2 >= $act['dcx2'] ? 1 : 0,
'has' => isset($act['dcx2']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false
'has' => false,
])
@endif
@endforeach
@@ -0,0 +1,49 @@
@php
$loadData($record);
@endphp
@if ($hasData())
@include('filament.tables.columns.fumetto.fumetto_ml_s1')
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4" style="width: 190px;">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2']])
@php
$act = $getAct();
@endphp
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_2ways_s1 as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->h2w,
'dec' => 2,
'hig' => isset($act['h2w']) && $item->h2w >= $act[''] ? 1 : 0,
'has' => isset($act['h2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a2w,
'dec' => 2,
'hig' => isset($act['a2w']) && $item->a2w >= $act['a2w'] ? 1 : 0,
'has' => isset($act['a2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -0,0 +1,49 @@
@php
$loadData($record);
@endphp
@if ($hasData())
@include('filament.tables.columns.fumetto.fumetto_ml')
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4" style="width: 190px;">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2']])
@php
$act = $getAct();
@endphp
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_2ways as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->h2w,
'dec' => 2,
'hig' => isset($act['h2w']) && $item->h2w >= $act[''] ? 1 : 0,
'has' => isset($act['h2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a2w,
'dec' => 2,
'hig' => isset($act['a2w']) && $item->a2w >= $act['a2w'] ? 1 : 0,
'has' => isset($act['a2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -0,0 +1,50 @@
@php
$loadData($record);
@endphp
@if ($hasData())
@include('filament.tables.columns.fumetto.fumetto_point_q1')
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5" style="width: 225px;">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_points_q1 as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->home,
'dec' => 2,
'hig' => isset($act['home']) && $item->home >= $act['home'] ? 1 : 0,
'has' => isset($act['home']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->away,
'dec' => 2,
'hig' => isset($act['away']) && $item->away >= $act['away'] ? 1 : 0,
'has' => isset($act['away']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->handicap,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -0,0 +1,50 @@
@php
$loadData($record);
@endphp
@if ($hasData())
@include('filament.tables.columns.fumetto.fumetto_point')
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5" style="width: 225px;">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_points as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->home,
'dec' => 2,
'hig' => isset($act['home']) && $item->home >= $act['home'] ? 1 : 0,
'has' => isset($act['home']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->away,
'dec' => 2,
'hig' => isset($act['away']) && $item->away >= $act['away'] ? 1 : 0,
'has' => isset($act['away']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->handicap,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -0,0 +1,50 @@
@php
$loadData($record);
@endphp
@if ($hasData())
@include('filament.tables.columns.fumetto.fumetto_total_q1')
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5" style="width: 225px;">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals_q1 as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->over,
'dec' => 2,
'hig' => isset($act['over']) && $item->over >= $act['over'] ? 1 : 0,
'has' => isset($act['over']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->under,
'dec' => 2,
'hig' => isset($act['under']) && $item->under >= $act['under'] ? 1 : 0,
'has' => isset($act['under']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->total,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -11,7 +11,7 @@
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_total as $item)
@foreach ($record->odds_totals as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
@@ -21,14 +21,14 @@
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->over,
'dec' => 2,
'hig' => isset($act['over']) && $item->over >= $act['over'] ? 1: 0,
'hig' => isset($act['over']) && $item->over >= $act['over'] ? 1 : 0,
'has' => isset($act['over']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->under,
'dec' => 2,
'hig' => isset($act['under']) && $item->under >= $act['under'] ? 1: 0,
'hig' => isset($act['under']) && $item->under >= $act['under'] ? 1 : 0,
'has' => isset($act['under']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@@ -15,7 +15,7 @@
@endphp
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_3way as $item)
@foreach ($record->odds_3ways as $item)
@if ($item->bookmaker_id == $bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
@@ -10,7 +10,7 @@
$min = $getMin();
@endphp
@foreach ($record->odds_3way as $item)
@foreach ($record->odds_3ways as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
@@ -19,22 +19,22 @@
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->h3w,
'dec' => 2,
'max' => $item->h3w >= $max['h3w'] ? 1 :0,
'min' => $item->h3w <= $min['h3w'] ? 1 :0,
'max' => $item->h3w >= $max['h3w'] ? 1 : 0,
'min' => $item->h3w <= $min['h3w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->d3w,
'dec' => 2,
'max' => $item->d3w >= $max['d3w'] ? 1 :0,
'min' => $item->d3w <= $min['d3w'] ? 1 :0,
'max' => $item->d3w >= $max['d3w'] ? 1 : 0,
'min' => $item->d3w <= $min['d3w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->a3w,
'dec' => 2,
'max' => $item->a3w >= $max['a3w'] ? 1 :0,
'min' => $item->a3w <= $min['a3w'] ? 1 :0,
'max' => $item->a3w >= $max['a3w'] ? 1 : 0,
'min' => $item->a3w <= $min['a3w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
@@ -0,0 +1,51 @@
@if ($hasData())
<div class="mx-3 my-auto">
<template x-ref="template_2way_{{ $record->id }}">
<div class="grid grid-cols-4 grid-rows-5 gap-1 m-5 z-10">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2']])
@php
$max = $getMax();
$min = $getMin();
@endphp
@foreach ($record->odds_2ways as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->h2w,
'dec' => 2,
'max' => $item->h2w == $max['h2w'] ? 1 : 0,
'min' => $item->h2w == $min['h2w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->a2w,
'dec' => 2,
'max' => $item->a2w == $max['a2w'] ? 1 : 0,
'min' => $item->a2w == $min['a2w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->margin,
'dec' => 1,
'max' => false,
'min' => false,
])
@endforeach
</div>
</template>
<x-filament::icon-button icon="heroicon-o-chat-bubble-left-ellipsis" color="gray"
x-tooltip.html="{
content: () => $refs.template_2way_{{ $record->id }}.innerHTML,
allowHTML: true,
theme: $store.theme,
appendTo: $root
}" />
</div>
@endif
@@ -0,0 +1,51 @@
@if ($hasData())
<div class="mx-3 my-auto">
<template x-ref="template_2way_s1_{{ $record->id }}">
<div class="grid grid-cols-4 grid-rows-5 gap-1 m-5 z-10">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2']])
@php
$max = $getMax();
$min = $getMin();
@endphp
@foreach ($record->odds_2ways_s1 as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->h2w,
'dec' => 2,
'max' => $item->h2w == $max['h2w'] ? 1 : 0,
'min' => $item->h2w == $min['h2w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->a2w,
'dec' => 2,
'max' => $item->a2w == $max['a2w'] ? 1 : 0,
'min' => $item->a2w == $min['a2w'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->margin,
'dec' => 1,
'max' => false,
'min' => false,
])
@endforeach
</div>
</template>
<x-filament::icon-button icon="heroicon-o-chat-bubble-left-ellipsis" color="gray"
x-tooltip.html="{
content: () => $refs.template_2way_s1_{{ $record->id }}.innerHTML,
allowHTML: true,
theme: $store.theme,
appendTo: $root
}" />
</div>
@endif
@@ -0,0 +1,58 @@
@if ($hasData())
<div class="mx-3 my-auto">
<template x-ref="template_point_{{ $record->id }}">
<div class="grid grid-cols-5 grid-rows-5 gap-1 m-5 z-10">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2', 'H']])
@php
$max = $getMax();
$min = $getMin();
@endphp
@foreach ($record->odds_points as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->home,
'dec' => 2,
'max' => $item->home == $max['home'] ? 1 : 0,
'min' => $item->home == $min['home'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->away,
'dec' => 2,
'max' => $item->away == $max['away'] ? 1 : 0,
'min' => $item->away == $min['away'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->handicap,
'dec' => 1,
'max' => false,
'min' => false,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->margin,
'dec' => 1,
'max' => false,
'min' => false,
])
@endforeach
</div>
</template>
<x-filament::icon-button icon="heroicon-o-chat-bubble-left-ellipsis" color="gray"
x-tooltip.html="{
content: () => $refs.template_point_{{ $record->id }}.innerHTML,
allowHTML: true,
theme: $store.theme,
appendTo: $root
}" />
</div>
@endif
@@ -0,0 +1,58 @@
@if ($hasData())
<div class="mx-3 my-auto">
<template x-ref="template_point_q1_{{ $record->id }}">
<div class="grid grid-cols-5 grid-rows-5 gap-1 m-5 z-10">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2', 'H']])
@php
$max = $getMax();
$min = $getMin();
@endphp
@foreach ($record->odds_points_q1 as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->home,
'dec' => 2,
'max' => $item->home == $max['home'] ? 1 : 0,
'min' => $item->home == $min['home'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->away,
'dec' => 2,
'max' => $item->away == $max['away'] ? 1 : 0,
'min' => $item->away == $min['away'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->handicap,
'dec' => 1,
'max' => false,
'min' => false,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->margin,
'dec' => 1,
'max' => false,
'min' => false,
])
@endforeach
</div>
</template>
<x-filament::icon-button icon="heroicon-o-chat-bubble-left-ellipsis" color="gray"
x-tooltip.html="{
content: () => $refs.template_point_q1_{{ $record->id }}.innerHTML,
allowHTML: true,
theme: $store.theme,
appendTo: $root
}" />
</div>
@endif
@@ -10,7 +10,7 @@
$min = $getMin();
@endphp
@foreach ($record->odds_total as $item)
@foreach ($record->odds_totals as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
@@ -0,0 +1,58 @@
@if ($hasData())
<div class="mx-3 my-auto">
<template x-ref="template_total_q1_{{ $record->id }}">
<div class="grid grid-cols-5 grid-rows-5 gap-1 m-5 z-10">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@php
$max = $getMax();
$min = $getMin();
@endphp
@foreach ($record->odds_totals_q1 as $item)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->over,
'dec' => 2,
'max' => $item->over == $max['over'] ? 1 : 0,
'min' => $item->over == $min['over'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->under,
'dec' => 2,
'max' => $item->under == $max['under'] ? 1 : 0,
'min' => $item->under == $min['under'] ? 1 : 0,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->total,
'dec' => 1,
'max' => false,
'min' => false,
])
@include('filament.tables.columns.multiline.fums', [
'odd' => $item->margin,
'dec' => 1,
'max' => false,
'min' => false,
])
@endforeach
</div>
</template>
<x-filament::icon-button icon="heroicon-o-chat-bubble-left-ellipsis" color="gray"
x-tooltip.html="{
content: () => $refs.template_total_q1_{{ $record->id }}.innerHTML,
allowHTML: true,
theme: $store.theme,
appendTo: $root
}" />
</div>
@endif
@@ -62,7 +62,8 @@
</x-filament::dropdown>
{{-- Swop Sport --}}
{{-- $livewire->resetTableFiltersForm(); // Clears all filters
$livewire->tableSearch = ''; // Clears the main search bar --}}
<x-filament::input.wrapper prefix-icon="{{ $sporticon }}" prefix-icon-color="primary">
<x-filament::input.select wire:model="sport_id" wire:change="swopSport">
@foreach ($sports as $id => $name)