filter comparatore wip

This commit is contained in:
salam committed 2026-01-21 19:49:28 +01:00
1 parent 7a9eeb8aad
commit 937c5908d2
40 files changed
+362 -306

No files matched your search

@@ -2,6 +2,8 @@
namespace App\Filament\Resources\Events\Tables;
use App\Filament\Resources\Events\Tables\Tools\LoadBettypeSettings;
use App\Filament\Resources\Events\Tables\Tools\LoadMultilineBookmaker;
use App\Filament\Tables\Columns\Column3way;
use App\Filament\Tables\Columns\Column3wayHt;
use App\Filament\Tables\Columns\ColumnDc;
@@ -17,15 +19,11 @@ use App\Filament\Tables\Columns\ColumnTotalQ1;
use App\Filament\Tables\Columns\ColumnTq;
use App\Filament\Tables\Columns\EventColumn;
use App\Filament\Tables\Columns\MatchIds;
use App\Models\BettypeUser;
use App\Models\ComparingBookmaker;
use App\Models\CompetitionGroup;
use App\Models\Country;
use App\Models\Event;
use App\Models\EventUserStar;
use App\Models\Group;
use App\Models\MultilineClient;
use App\Models\MultilineSetting;
use App\Models\Sport;
use App\Models\User;
use CodeWithKyrian\FilamentDateRange\Forms\Components\DateRangePicker;
@@ -50,68 +48,19 @@ use Illuminate\Support\Carbon;
class EventsTable
{
public static $bettype_settings = [];
public static $multiline_bookmaker = [];
public static $multiline_gettype = [];
public static $user;
public static function load_multiline_bookmaker()
{
if (self::$user->is_multiline_direct) {
public static $bettype_settings;
if (self::$user->sport_id == 1) {
$cb = ComparingBookmaker::where('sport_id', 1)->where('client_bookmaker_id', self::$user->bookmaker_id)->select('sorting', 'bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get();
} else {
$cb = ComparingBookmaker::where('sport_id', '!=', 1)->where('client_bookmaker_id', self::$user->bookmaker_id)->select('sorting', 'bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get();
}
$bookmakers = [];
foreach ($cb as $value) {
$bookmakers[] = $value->bookmaker_id;
}
$res = MultilineSetting::where('sport_id', self::$user->sport_id)->get();
foreach ($res as $value) {
self::$multiline_gettype[$value->table]['filter'] = $cb;
self::$multiline_gettype[$value->table]['bookmaker'] = $bookmakers;
}
} else {
$res = MultilineClient::with('multiline_setting')
->select('bookmaker_id', 'multiline_setting_id')
->orderBy('sort')
->get();
foreach ($res as $value) {
$table = $value->multiline_setting->table;
self::$multiline_gettype[$table]['bookmaker'][] = (int) $value->bookmaker_id;
}
}
}
public static function load_bettype_settings()
{
$res = BettypeUser::with('multiline_setting')
->orderBy('multiline_setting_id')
->where('is_active', 1)
->get();
foreach ($res as $value) {
self::$bettype_settings[] = $value->multiline_setting->table;
}
}
public static $multiline_bookmaker;
public static function configure(Table $table): Table
{
self::$user = User::getUser();
self::load_bettype_settings();
self::$bettype_settings = LoadBettypeSettings::load();
self::load_multiline_bookmaker();
self::$multiline_bookmaker = LoadMultilineBookmaker::load();
return $table
->poll('10s')
@@ -143,97 +92,97 @@ class EventsTable
EventColumn::make('event'),
ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? [])
ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_bookmaker['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->alignCenter()
->label('ML'),
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'] ?? [])
Column3way::make('odds_3ways')->bookmakers(self::$multiline_bookmaker['odds_3ways'] ?? [])
->visible(fn () => in_array('odds_3ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->width(225)
->alignCenter()
->label('1X2'),
Column3wayHt::make('odds_3ways_ht')->bookmakers(self::$multiline_gettype['odds_3ways_ht'] ?? [])
->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('1X2 HT'),
ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_gettype['odds_totals'] ?? [])
ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_bookmaker['odds_totals'] ?? [])
->visible(fn () => in_array('odds_totals', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals'),
ColumnTotalHt::make('odds_totals_ht')->bookmakers(self::$multiline_gettype['odds_totals_ht'] ?? [])
Column3wayHt::make('odds_3ways_ht')->bookmakers(self::$multiline_bookmaker['odds_3ways_ht'] ?? [])
->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('1X2 HT'),
ColumnTotalHt::make('odds_totals_ht')->bookmakers(self::$multiline_bookmaker['odds_totals_ht'] ?? [])
->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals HT'),
ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_gettype['odds_totals_q1'] ?? [])
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings))
ColumnGgng::make('odds_ggng')->bookmakers(self::$multiline_bookmaker['odds_ggng'] ?? [])
->visible(fn () => \in_array('odds_ggng', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals Q1'),
->width(190)
->label('Goal No Goal'),
ColumnPoint::make('odds_points')->bookmakers(self::$multiline_gettype['odds_points'] ?? [])
ColumnPoint::make('odds_points')->bookmakers(self::$multiline_bookmaker['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'] ?? [])
ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_bookmaker['odds_totals_q1'] ?? [])
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals Q1'),
ColumnPointQ1::make('odds_points_q1')->bookmakers(self::$multiline_bookmaker['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))
ColumnMlS1::make('odds_2ways_s1')->bookmakers(self::$multiline_bookmaker['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('ML S1'),
ColumnDc::make('odds_dc')->bookmakers(self::$multiline_bookmaker['odds_dc'] ?? [])
->visible(fn () => \in_array('odds_dc', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Double Chance'),
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('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('odds_tq')->bookmakers(self::$bettype_settings['odds_tq'] ?? [])
->visible(fn () => in_array('odds_tq', self::$bettype_settings))
ColumnTq::make('odds_tq')->bookmakers(self::$multiline_bookmaker['odds_tq'] ?? [])
->visible(fn () => \in_array('odds_tq', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('To Qualify'),
ColumnDnb::make('odds_dnb')->bookmakers(self::$multiline_bookmaker['odds_dnb'] ?? [])
->visible(fn () => \in_array('odds_dnb', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Draw No Bet'),
])->searchable(['id', 'home.name', 'away.name', 'betsapi_id', 'betradar_id', 'bet365_id', 'bwin_id', 'magnig_id', 'magken_id', 'lognig_id', 'logcol_id'])
->defaultSort('starttime', 'ASC')
->extremePaginationLinks()