alarms finsihed

This commit is contained in:
salam committed 2026-01-28 16:21:15 +01:00
1 parent 99b657eb3a
commit ca58eba530
8 files changed
+200 -96

No files matched your search

@@ -3,17 +3,9 @@
namespace App\Filament\Resources\Events\Pages;
use App\Filament\Resources\Events\EventResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditEvent extends EditRecord
{
protected static string $resource = EventResource::class;
protected function getHeaderActions(): array
{
return [
// DeleteAction::make(),
];
}
}
@@ -13,7 +13,11 @@ class ListEvents extends ListRecords
protected string|Width|null $maxContentWidth = Width::Full;
protected $listeners = ['refreshBettypeMenu' => '$refresh'];
protected $listeners = [
'refreshBettypeMenu' => '$refresh',
'filterUpdateGreen' => 'updateTableFiltersGreen',
'filterUpdateYellow' => 'updateTableFiltersYellow',
'filterUpdateRed' => 'updateTableFiltersRed'];
protected function getHeaderWidgets(): array
{
@@ -22,6 +26,27 @@ class ListEvents extends ListRecords
];
}
public function updateTableFiltersGreen(string $filter): void
{
$this->tableFilters['events']['filter_alarm_yellow'] = null;
$this->tableFilters['events']['filter_alarm_red'] = null;
$this->tableFilters['events']['filter_alarm_green'] = $filter;
}
public function updateTableFiltersYellow(string $filter): void
{
$this->tableFilters['events']['filter_alarm_red'] = null;
$this->tableFilters['events']['filter_alarm_green'] = null;
$this->tableFilters['events']['filter_alarm_yellow'] = $filter;
}
public function updateTableFiltersRed(string $filter): void
{
$this->tableFilters['events']['filter_alarm_yellow'] = null;
$this->tableFilters['events']['filter_alarm_green'] = null;
$this->tableFilters['events']['filter_alarm_red'] = $filter;
}
public function getColumns(): int|array
{
return [
@@ -14,6 +14,7 @@ use App\Models\Event;
use App\Models\EventBookmaker;
use App\Models\EventUserStar;
use App\Models\Group;
use App\Models\OddsTable;
use App\Models\Sport;
use App\Models\User;
use CodeWithKyrian\FilamentDateRange\Forms\Components\DateRangePicker;
@@ -22,6 +23,7 @@ use Filament\Actions\ActionGroup;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\Select;
use Filament\Schemas\Components\Utilities\Get;
use Filament\Support\Enums\FontWeight;
@@ -173,6 +175,9 @@ class EventsTable
Filter::make('events')
->columns(5)->columnSpan(5)
->schema([
Hidden::make('filter_alarm_green'),
Hidden::make('filter_alarm_yellow'),
Hidden::make('filter_alarm_red'),
Select::make(name: 'sport_id')
->options(fn () => Sport::getSportForClient())
->default(self::$user->sport_id)
@@ -299,6 +304,51 @@ class EventsTable
->whereDate('starttime', '<=', $end->format('Y-m-d 00:00:00'));
}
}
)->when(
$data['filter_alarm_green'],
function (Builder $query, $filter_alarm_green) {
$res = OddsTable::where('name', $filter_alarm_green)->value('fieldnames');
$fieldnames = explode(',', $res);
return $query->whereHas('event_bookmaker', function ($query) use ($fieldnames) {
$query->where('bookmaker_id', auth()->user()->bookmaker_id)
->where(function ($query) use ($fieldnames) {
foreach ($fieldnames as $field) {
$query->orWhere($field, 1);
}
});
});
}
)->when(
$data['filter_alarm_yellow'],
function (Builder $query, $filter_alarm_yellow) {
$res = OddsTable::where('name', $filter_alarm_yellow)->value('fieldnames');
$fieldnames = explode(',', $res);
return $query->whereHas('event_bookmaker', function ($query) use ($fieldnames) {
$query->where('bookmaker_id', auth()->user()->bookmaker_id)
->where(function ($query) use ($fieldnames) {
foreach ($fieldnames as $field) {
$query->orWhere($field, 2);
}
});
});
}
)->when(
$data['filter_alarm_red'],
function (Builder $query, $filter_alarm_red) {
$res = OddsTable::where('name', $filter_alarm_red)->value('fieldnames');
$fieldnames = explode(',', $res);
return $query->whereHas('event_bookmaker', function ($query) use ($fieldnames) {
$query->where('bookmaker_id', auth()->user()->bookmaker_id)
->where(function ($query) use ($fieldnames) {
foreach ($fieldnames as $field) {
$query->orWhere($field, 3);
}
});
});
}
);
})->indicateUsing(function (array $data): array {
$indicators = [];
@@ -320,13 +370,19 @@ class EventsTable
}
}
if ($data['competition_group_id'] ?? null) {
$competition_groups = CompetitionGroup::whereIn('id', $data['competition_group_id'])->pluck('name')->toArray();
if (count($competition_groups) > 1) {
$indicators[] = Indicator::make('Leagues: '.implode(', ', $competition_groups))->removeField('competition_group_id')->color('info');
} else {
$indicators[] = Indicator::make('League: '.$competition_groups[0])->removeField('competition_group_id')->color('info')->color('info');
}
if ($data['filter_alarm_green'] ?? null) {
$title = OddsTable::where('name', $data['filter_alarm_green'])->value('title');
$indicators[] = Indicator::make('Alarm: '.$title)->removeField('filter_alarm_green')->color('success');
}
if ($data['filter_alarm_yellow'] ?? null) {
$title = OddsTable::where('name', $data['filter_alarm_yellow'])->value('title');
$indicators[] = Indicator::make('Alarm: '.$title)->removeField('filter_alarm_yellow')->color('warning');
}
if ($data['filter_alarm_red'] ?? null) {
$title = OddsTable::where('name', $data['filter_alarm_red'])->value('title');
$indicators[] = Indicator::make('Alarm: '.$title)->removeField('filter_alarm_red')->color('danger');
}
if ($data['starttime_period'] ?? null) {
@@ -343,6 +399,15 @@ class EventsTable
}
}
if ($data['competition_group_id'] ?? null) {
$competition_groups = CompetitionGroup::whereIn('id', $data['competition_group_id'])->pluck('name')->toArray();
if (count($competition_groups) > 1) {
$indicators[] = Indicator::make('Leagues: '.implode(', ', $competition_groups))->removeField('competition_group_id')->color('info');
} else {
$indicators[] = Indicator::make('League: '.$competition_groups[0])->removeField('competition_group_id')->color('info')->color('info');
}
}
if ($data['stars_status'] ?? null) {
$indicators[] = Indicator::make('Favorits')->removeField('stars_status')->color('info');
}
@@ -3,17 +3,22 @@
namespace App\Filament\Resources\Events\Widgets;
use App\Actions\AlarmStatistic;
use Filament\Widgets\Concerns\InteractsWithPageFilters;
use Filament\Widgets\StatsOverviewWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
class AlarmWidget extends StatsOverviewWidget
{
use InteractsWithPageFilters;
protected $listeners = [
'refreshAlarmWidget' => '$refresh',
];
protected ?string $pollingInterval = '10s';
public array $filters = [];
protected function getStats(): array
{
@@ -23,69 +28,85 @@ class AlarmWidget extends StatsOverviewWidget
case 1:
return [
Stat::make('1X2', '1X2')->view('filament.resources.events.widgets.alarm-widget',
['title' => '1X2', 'red' => $res['odds_3ways'][3] ?? 0, 'yellow' => $res['odds_3ways'][2] ?? 0, 'green' => $res['odds_3ways'][1] ?? 0]),
['filter' => 'odds_3ways', 'title' => '1X2', 'red' => $res['odds_3ways'][3] ?? 0, 'yellow' => $res['odds_3ways'][2] ?? 0, 'green' => $res['odds_3ways'][1] ?? 0]),
Stat::make('1X2', '1X2')->view('filament.resources.events.widgets.alarm-widget',
['title' => '1X2 HT', 'red' => $res['odds_3ways_ht'][3] ?? 0, 'yellow' => $res['odds_3ways_ht'][2] ?? 0, 'green' => $res['odds_3ways_ht'][1] ?? 0]),
['filter' => 'odds_3ways_ht', 'title' => '1X2 HT', 'red' => $res['odds_3ways_ht'][3] ?? 0, 'yellow' => $res['odds_3ways_ht'][2] ?? 0, 'green' => $res['odds_3ways_ht'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
['filter' => 'odds_totals', 'title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals HT', 'red' => $res['odds_totals_ht'][3] ?? 0, 'yellow' => $res['odds_totals_ht'][2] ?? 0, 'green' => $res['odds_totals_ht'][1] ?? 0]),
['filter' => 'odds_totals_ht', 'title' => 'Totals HT', 'red' => $res['odds_totals_ht'][3] ?? 0, 'yellow' => $res['odds_totals_ht'][2] ?? 0, 'green' => $res['odds_totals_ht'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'GG NG', 'red' => $res['odds_ggng'][3] ?? 0, 'yellow' => $res['odds_ggng'][2] ?? 0, 'green' => $res['odds_ggng'][1] ?? 0]),
['filter' => 'odds_ggng', 'title' => 'GG NG', 'red' => $res['odds_ggng'][3] ?? 0, 'yellow' => $res['odds_ggng'][2] ?? 0, 'green' => $res['odds_ggng'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'DNB', 'red' => $res['odds_dnb'][3] ?? 0, 'yellow' => $res['odds_dnb'][2] ?? 0, 'green' => $res['odds_dnb'][1] ?? 0]),
['filter' => 'odds_dnb', 'title' => 'DNB', 'red' => $res['odds_dnb'][3] ?? 0, 'yellow' => $res['odds_dnb'][2] ?? 0, 'green' => $res['odds_dnb'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'DC', 'red' => $res['odds_dc'][3] ?? 0, 'yellow' => $res['odds_dc'][2] ?? 0, 'green' => $res['odds_dc'][1] ?? 0]),
['filter' => 'odds_dc', 'title' => 'DC', 'red' => $res['odds_dc'][3] ?? 0, 'yellow' => $res['odds_dc'][2] ?? 0, 'green' => $res['odds_dc'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'TQ', 'red' => $res['odds_tq'][3] ?? 0, 'yellow' => $res['odds_tq'][2] ?? 0, 'green' => $res['odds_tq'][1] ?? 0]),
['filter' => 'odds_tq', 'title' => 'TQ', 'red' => $res['odds_tq'][3] ?? 0, 'yellow' => $res['odds_tq'][2] ?? 0, 'green' => $res['odds_tq'][1] ?? 0]),
];
case 2:
return [
Stat::make('1X2', '1X2')->view('filament.resources.events.widgets.alarm-widget',
['title' => '1X2', 'red' => $res['odds_3ways'][3] ?? 0, 'yellow' => $res['odds_3ways'][2] ?? 0, 'green' => $res['odds_3ways'][1] ?? 0]),
['filter' => 'odds_3ways', 'title' => '1X2', 'red' => $res['odds_3ways'][3] ?? 0, 'yellow' => $res['odds_3ways'][2] ?? 0, 'green' => $res['odds_3ways'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'ML', 'red' => $res['odds_2ways'][3] ?? 0, 'yellow' => $res['odds_2ways'][2] ?? 0, 'green' => $res['odds_2ways'][1] ?? 0]),
['filter' => 'odds_2ways', 'title' => 'ML', 'red' => $res['odds_2ways'][3] ?? 0, 'yellow' => $res['odds_2ways'][2] ?? 0, 'green' => $res['odds_2ways'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'HC', 'red' => $res['odds_points'][3] ?? 0, 'yellow' => $res['odds_points'][2] ?? 0, 'green' => $res['odds_points'][1] ?? 0]),
['filter' => 'odds_points', 'title' => 'HC', 'red' => $res['odds_points'][3] ?? 0, 'yellow' => $res['odds_points'][2] ?? 0, 'green' => $res['odds_points'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'HC Q1', 'red' => $res['odds_points_q1'][3] ?? 0, 'yellow' => $res['odds_points_q1'][2] ?? 0, 'green' => $res['odds_points_q1'][1] ?? 0]),
['filter' => 'odds_points_q1', 'title' => 'HC Q1', 'red' => $res['odds_points_q1'][3] ?? 0, 'yellow' => $res['odds_points_q1'][2] ?? 0, 'green' => $res['odds_points_q1'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
['filter' => 'odds_totals', 'title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals Q1', 'red' => $res['odds_totals_q1'][3] ?? 0, 'yellow' => $res['odds_totals_q1'][2] ?? 0, 'green' => $res['odds_totals_q1'][1] ?? 0]),
['filter' => 'odds_totals_q1', 'title' => 'Totals Q1', 'red' => $res['odds_totals_q1'][3] ?? 0, 'yellow' => $res['odds_totals_q1'][2] ?? 0, 'green' => $res['odds_totals_q1'][1] ?? 0]),
];
case 3:
return [
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'ML', 'red' => $res['odds_2ways'][3] ?? 0, 'yellow' => $res['odds_2ways'][2] ?? 0, 'green' => $res['odds_2ways'][1] ?? 0]),
['filter' => 'odds_2ways', 'title' => 'ML', 'red' => $res['odds_2ways'][3] ?? 0, 'yellow' => $res['odds_2ways'][2] ?? 0, 'green' => $res['odds_2ways'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'HC', 'red' => $res['odds_points'][3] ?? 0, 'yellow' => $res['odds_points'][2] ?? 0, 'green' => $res['odds_points'][1] ?? 0]),
['filter' => 'odds_points', 'title' => 'HC', 'red' => $res['odds_points'][3] ?? 0, 'yellow' => $res['odds_points'][2] ?? 0, 'green' => $res['odds_points'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'HC Q1', 'red' => $res['odds_points_q1'][3] ?? 0, 'yellow' => $res['odds_points_q1'][2] ?? 0, 'green' => $res['odds_points_q1'][1] ?? 0]),
['filter' => 'odds_points_q1', 'title' => 'HC Q1', 'red' => $res['odds_points_q1'][3] ?? 0, 'yellow' => $res['odds_points_q1'][2] ?? 0, 'green' => $res['odds_points_q1'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'HC HT', 'red' => $res['odds_points_ht'][3] ?? 0, 'yellow' => $res['odds_points_ht'][2] ?? 0, 'green' => $res['odds_points_ht'][1] ?? 0]),
['filter' => 'odds_points_ht', 'title' => 'HC HT', 'red' => $res['odds_points_ht'][3] ?? 0, 'yellow' => $res['odds_points_ht'][2] ?? 0, 'green' => $res['odds_points_ht'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
['filter' => 'odds_totals', 'title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals Q1', 'red' => $res['odds_totals_q1'][3] ?? 0, 'yellow' => $res['odds_totals_q1'][2] ?? 0, 'green' => $res['odds_totals_q1'][1] ?? 0]),
['filter' => 'odds_totals_q1', 'title' => 'Totals Q1', 'red' => $res['odds_totals_q1'][3] ?? 0, 'yellow' => $res['odds_totals_q1'][2] ?? 0, 'green' => $res['odds_totals_q1'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals HT', 'red' => $res['odds_totals_ht'][3] ?? 0, 'yellow' => $res['odds_totals_ht'][2] ?? 0, 'green' => $res['odds_totals_ht'][1] ?? 0]),
['filter' => 'odds_totals_ht', 'title' => 'Totals HT', 'red' => $res['odds_totals_ht'][3] ?? 0, 'yellow' => $res['odds_totals_ht'][2] ?? 0, 'green' => $res['odds_totals_ht'][1] ?? 0]),
];
case 5:
return [
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'ML', 'red' => $res['odds_2ways'][3] ?? 0, 'yellow' => $res['odds_2ways'][2] ?? 0, 'green' => $res['odds_2ways'][1] ?? 0]),
['filter' => 'odds_2ways', 'title' => 'ML', 'red' => $res['odds_2ways'][3] ?? 0, 'yellow' => $res['odds_2ways'][2] ?? 0, 'green' => $res['odds_2ways'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'MLS1', 'red' => $res['odds_2ways_s1'][3] ?? 0, 'yellow' => $res['odds_2ways_s1'][2] ?? 0, 'green' => $res['odds_2ways_s1'][1] ?? 0]),
['filter' => 'odds_2ways_s1', 'title' => 'MLS1', 'red' => $res['odds_2ways_s1'][3] ?? 0, 'yellow' => $res['odds_2ways_s1'][2] ?? 0, 'green' => $res['odds_2ways_s1'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'HC', 'red' => $res['odds_points'][3] ?? 0, 'yellow' => $res['odds_points'][2] ?? 0, 'green' => $res['odds_points'][1] ?? 0]),
['filter' => 'odds_points', 'title' => 'HC', 'red' => $res['odds_points'][3] ?? 0, 'yellow' => $res['odds_points'][2] ?? 0, 'green' => $res['odds_points'][1] ?? 0]),
Stat::make('', '')->view('filament.resources.events.widgets.alarm-widget',
['title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
['filter' => 'odds_totals', 'title' => 'Totals', 'red' => $res['odds_totals'][3] ?? 0, 'yellow' => $res['odds_totals'][2] ?? 0, 'green' => $res['odds_totals'][1] ?? 0]),
];
}
}
public function filterAlarm($table, $alarm)
{
switch ($alarm) {
case 1:
$this->dispatch('filterUpdateGreen', $table);
break;
case 2:
$this->dispatch('filterUpdateYellow', $table);
break;
case 3:
$this->dispatch('filterUpdateRed', $table);
break;
}
}
public function getColumns(): int|array
{
return [
Generated
+36 -36
View File
@@ -6825,16 +6825,16 @@
},
{
"name": "symfony/finder",
"version": "v7.4.4",
"version": "v7.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "01b24a145bbeaa7141e75887ec904c34a6728a5f"
"reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/01b24a145bbeaa7141e75887ec904c34a6728a5f",
"reference": "01b24a145bbeaa7141e75887ec904c34a6728a5f",
"url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb",
"reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb",
"shasum": ""
},
"require": {
@@ -6869,7 +6869,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v7.4.4"
"source": "https://github.com/symfony/finder/tree/v7.4.5"
},
"funding": [
{
@@ -6889,7 +6889,7 @@
"type": "tidelift"
}
],
"time": "2026-01-12T12:19:02+00:00"
"time": "2026-01-26T15:07:59+00:00"
},
{
"name": "symfony/html-sanitizer",
@@ -6967,16 +6967,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v7.4.4",
"version": "v7.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "977a554a34cf8edc95ca351fbecb1bb1ad05cc94"
"reference": "446d0db2b1f21575f1284b74533e425096abdfb6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/977a554a34cf8edc95ca351fbecb1bb1ad05cc94",
"reference": "977a554a34cf8edc95ca351fbecb1bb1ad05cc94",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/446d0db2b1f21575f1284b74533e425096abdfb6",
"reference": "446d0db2b1f21575f1284b74533e425096abdfb6",
"shasum": ""
},
"require": {
@@ -7025,7 +7025,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.4.4"
"source": "https://github.com/symfony/http-foundation/tree/v7.4.5"
},
"funding": [
{
@@ -7045,20 +7045,20 @@
"type": "tidelift"
}
],
"time": "2026-01-09T12:14:21+00:00"
"time": "2026-01-27T16:16:02+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v7.4.4",
"version": "v7.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "48b067768859f7b68acf41dfb857a5a4be00acdd"
"reference": "229eda477017f92bd2ce7615d06222ec0c19e82a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/48b067768859f7b68acf41dfb857a5a4be00acdd",
"reference": "48b067768859f7b68acf41dfb857a5a4be00acdd",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/229eda477017f92bd2ce7615d06222ec0c19e82a",
"reference": "229eda477017f92bd2ce7615d06222ec0c19e82a",
"shasum": ""
},
"require": {
@@ -7144,7 +7144,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.4.4"
"source": "https://github.com/symfony/http-kernel/tree/v7.4.5"
},
"funding": [
{
@@ -7164,7 +7164,7 @@
"type": "tidelift"
}
],
"time": "2026-01-24T22:13:01+00:00"
"time": "2026-01-28T10:33:42+00:00"
},
{
"name": "symfony/mailer",
@@ -7252,16 +7252,16 @@
},
{
"name": "symfony/mime",
"version": "v7.4.4",
"version": "v7.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "40945014c0a9471ccfe19673c54738fa19367a3c"
"reference": "b18c7e6e9eee1e19958138df10412f3c4c316148"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/40945014c0a9471ccfe19673c54738fa19367a3c",
"reference": "40945014c0a9471ccfe19673c54738fa19367a3c",
"url": "https://api.github.com/repos/symfony/mime/zipball/b18c7e6e9eee1e19958138df10412f3c4c316148",
"reference": "b18c7e6e9eee1e19958138df10412f3c4c316148",
"shasum": ""
},
"require": {
@@ -7272,15 +7272,15 @@
},
"conflict": {
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"phpdocumentor/reflection-docblock": "<5.2|>=6",
"phpdocumentor/type-resolver": "<1.5.1",
"symfony/mailer": "<6.4",
"symfony/serializer": "<6.4.3|>7.0,<7.0.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"phpdocumentor/reflection-docblock": "^5.2",
"symfony/dependency-injection": "^6.4|^7.0|^8.0",
"symfony/process": "^6.4|^7.0|^8.0",
"symfony/property-access": "^6.4|^7.0|^8.0",
@@ -7317,7 +7317,7 @@
"mime-type"
],
"support": {
"source": "https://github.com/symfony/mime/tree/v7.4.4"
"source": "https://github.com/symfony/mime/tree/v7.4.5"
},
"funding": [
{
@@ -7337,7 +7337,7 @@
"type": "tidelift"
}
],
"time": "2026-01-08T16:12:55+00:00"
"time": "2026-01-27T08:59:58+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -8170,16 +8170,16 @@
},
{
"name": "symfony/process",
"version": "v7.4.4",
"version": "v7.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "626f07a53f4b4e2f00e11824cc29f928d797783b"
"reference": "608476f4604102976d687c483ac63a79ba18cc97"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/626f07a53f4b4e2f00e11824cc29f928d797783b",
"reference": "626f07a53f4b4e2f00e11824cc29f928d797783b",
"url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97",
"reference": "608476f4604102976d687c483ac63a79ba18cc97",
"shasum": ""
},
"require": {
@@ -8211,7 +8211,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.4.4"
"source": "https://github.com/symfony/process/tree/v7.4.5"
},
"funding": [
{
@@ -8231,7 +8231,7 @@
"type": "tidelift"
}
],
"time": "2026-01-20T09:23:51+00:00"
"time": "2026-01-26T15:07:59+00:00"
},
{
"name": "symfony/routing",
@@ -12814,12 +12814,12 @@
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {},
"stability-flags": [],
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^8.3"
},
"platform-dev": {},
"plugin-api-version": "2.9.0"
"platform-dev": [],
"plugin-api-version": "2.6.0"
}
@@ -14,6 +14,7 @@ return new class extends Migration
Schema::create('odds_tables', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('title');
$table->string('oddnames');
$table->string('fieldnames');
$table->timestamps();
+16 -16
View File
@@ -12,23 +12,23 @@ class OddsTableSeeder extends Seeder
/**
* Provoider
*/
$sql = "INSERT INTO `odds_tables` (`id`, `name`, `oddnames`, `fieldnames`, `created_at`, `updated_at`)
$sql = "INSERT INTO `odds_tables` (`id`, `name`, `title`, `oddnames`, `fieldnames`, `created_at`, `updated_at`)
VALUES
(1, 'odds_2ways', 'h2w,a2w', 'alarm_2w_h2w,alarm_2w_a2w', NULL, NULL),
(2, 'odds_2ways_s1', 'h2w,a2w', 'alarm_2ws1_h2w,alarm_2ws1_a2w', NULL, NULL),
(3, 'odds_3ways', 'h3w,d3w,a3w', 'alarm_3w_h3w,alarm_3w_d3w,alarm_3w_a3w', NULL, NULL),
(4, 'odds_3ways_ht', 'h3w,d3w,a3w', 'alarm_3wht_h3w,alarm_3wht_d3w,alarm_3wht_a3w', NULL, NULL),
(5, 'odds_dc', 'dc1x,dc12,dcx2', 'alarm_dc_dc1x,alarm_dc_dc12,alarm_dc_dcx2', NULL, NULL),
(6, 'odds_dnb', 'dnb1,dnb2', 'alarm_dbn_dnb1,alarm_dbn_dnb2', NULL, NULL),
(7, 'odds_ggng', 'gg,ng', 'alarm_ggng_gg,alarm_ggng_ng', NULL, NULL),
(8, 'odds_points', 'home,away', 'alarm_po_home,alarm_po_away', NULL, NULL),
(9, 'odds_points_ht', 'home,away', 'alarm_poht_home,alarm_poht_away', NULL, NULL),
(10, 'odds_points_q1', 'home,away', 'alarm_poq1_home,alarm_poq1_away', NULL, NULL),
(11, 'odds_totals', 'over,under', 'alarm_to_over,alarm_to_under', NULL, NULL),
(12, 'odds_totals_ht', 'over,under', 'alarm_toht_over,alarm_toht_under', NULL, NULL),
(13, 'odds_totals_q1', 'over,under', 'alarm_toq1_over,alarm_toq1_under', NULL, NULL),
(14, 'odds_tq', 'htq,atq', 'alarm_tq_htq,alarm_tq_atq', NULL, NULL);
";
(1, 'odds_2ways', 'ML', 'h2w,a2w', 'alarm_2w_h2w,alarm_2w_a2w', NULL, NULL),
(2, 'odds_2ways_s1', 'ML S1', 'h2w,a2w', 'alarm_2ws1_h2w,alarm_2ws1_a2w', NULL, NULL),
(3, 'odds_3ways', '1X2', 'h3w,d3w,a3w', 'alarm_3w_h3w,alarm_3w_d3w,alarm_3w_a3w', NULL, NULL),
(4, 'odds_3ways_ht', '1X2 HT', 'h3w,d3w,a3w', 'alarm_3wht_h3w,alarm_3wht_d3w,alarm_3wht_a3w', NULL, NULL),
(5, 'odds_dc', 'DC', 'dc1x,dc12,dcx2', 'alarm_dc_dc1x,alarm_dc_dc12,alarm_dc_dcx2', NULL, NULL),
(6, 'odds_dnb', 'DNB', 'dnb1,dnb2', 'alarm_dbn_dnb1,alarm_dbn_dnb2', NULL, NULL),
(7, 'odds_ggng', 'GGNG', 'gg,ng', 'alarm_ggng_gg,alarm_ggng_ng', NULL, NULL),
(8, 'odds_points', 'PO', 'home,away', 'alarm_po_home,alarm_po_away', NULL, NULL),
(9, 'odds_points_ht', 'PO HT', 'home,away', 'alarm_poht_home,alarm_poht_away', NULL, NULL),
(10, 'odds_points_q1', 'PO Q1', 'home,away', 'alarm_poq1_home,alarm_poq1_away', NULL, NULL),
(11, 'odds_totals', 'TO', 'over,under', 'alarm_to_over,alarm_to_under', NULL, NULL),
(12, 'odds_totals_ht', 'TO HT', 'over,under', 'alarm_toht_over,alarm_toht_under', NULL, NULL),
(13, 'odds_totals_q1', 'TO Q1', 'over,under', 'alarm_toq1_over,alarm_toq1_under', NULL, NULL),
(14, 'odds_tq', 'TQ', 'htq,atq', 'alarm_tq_htq,alarm_tq_atq', NULL, NULL);
";
DB::unprepared($sql);
}
@@ -3,19 +3,19 @@
<div class="row-span-3 text-lg text-gray-500 pt-3">{{ $title }}</div>
@if ($red)
<div class="cursor-pointer"><x-alarm-red>{{ $red }}</x-alarm-red></div>
<div class="cursor-pointer" wire:click="filterAlarm('{{ $filter }}', 3)"><x-alarm-red>{{ $red }}</x-alarm-red></div>
@else
<x-alarm-neutral>0</x-alarm-neutral>
@endif
@if ($yellow)
<div class="cursor-pointer"><x-alarm-yellow>{{ $yellow }}</x-alarm-yellow></div>
<div class="cursor-pointer" wire:click="filterAlarm('{{ $filter }}', 2)"><x-alarm-yellow>{{ $yellow }}</x-alarm-yellow></div>
@else
<x-alarm-neutral>0</x-alarm-neutral>
@endif
@if ($green)
<div class="cursor-pointer"><x-alarm-green>{{ $green }}</x-alarm-green></div>
<div class="cursor-pointer" wire:click="filterAlarm('{{ $filter }}', 1)"><x-alarm-green>{{ $green }}</x-alarm-green></div>
@else
<x-alarm-neutral>0</x-alarm-neutral>
@endif