From 5010e7ac027d50d4fcc285b3f3ec21843bc53a02 Mon Sep 17 00:00:00 2001 From: salam Date: Fri, 22 May 2026 16:42:20 +0200 Subject: [PATCH] statistico players wip --- app/Filament/Pages/Statistic.php | 43 +++++++++++++++---- ...eChart.php => ChartMovingAverageEvent.php} | 14 +++--- ...nctualChart.php => ChartPunctualEvent.php} | 10 ++--- .../Widgets/DB/LoadMoveingAveragePlayer.php | 0 .../LoadEvents.php => Data/EventsLoad.php} | 12 +----- .../EventsLoadAspGoal.php} | 4 +- .../HelperMoveingAverage.php} | 4 +- .../HelperStatisticType.php} | 4 +- .../PlayerLoad.php} | 9 ++-- .../Widgets/MovingAverageChartPlayer.php | 11 ++--- app/Filament/Widgets/PunctualChartPlayer.php | 8 ++-- ...dianAverage.php => StatsMedianAverage.php} | 10 ++--- 12 files changed, 75 insertions(+), 54 deletions(-) rename app/Filament/Widgets/{MovingAverageChart.php => ChartMovingAverageEvent.php} (65%) rename app/Filament/Widgets/{PunctualChart.php => ChartPunctualEvent.php} (71%) delete mode 100644 app/Filament/Widgets/DB/LoadMoveingAveragePlayer.php rename app/Filament/Widgets/{DB/LoadEvents.php => Data/EventsLoad.php} (97%) rename app/Filament/Widgets/{DB/LoadEventsAspGoal.php => Data/EventsLoadAspGoal.php} (99%) rename app/Filament/Widgets/{DB/MoveingAverage.php => Data/HelperMoveingAverage.php} (92%) rename app/Filament/Widgets/{DB/StatisticType.php => Data/HelperStatisticType.php} (88%) rename app/Filament/Widgets/{DB/LoadPunctualChartPlayer.php => Data/PlayerLoad.php} (95%) rename app/Filament/Widgets/{MedianAverage.php => StatsMedianAverage.php} (82%) diff --git a/app/Filament/Pages/Statistic.php b/app/Filament/Pages/Statistic.php index 29ef8fcf..0627dd0a 100644 --- a/app/Filament/Pages/Statistic.php +++ b/app/Filament/Pages/Statistic.php @@ -3,11 +3,11 @@ namespace App\Filament\Pages; use App\Actions\LoadStatisticFixturesLeaguesOptions; -use App\Filament\Widgets\MedianAverage; -use App\Filament\Widgets\MovingAverageChart; +use App\Filament\Widgets\ChartMovingAverageEvent; +use App\Filament\Widgets\ChartPunctualEvent; use App\Filament\Widgets\MovingAverageChartPlayer; -use App\Filament\Widgets\PunctualChart; use App\Filament\Widgets\PunctualChartPlayer; +use App\Filament\Widgets\StatsMedianAverage; use App\Models\Element; use App\Models\StatisticFixtures; use App\Models\StatistikoDetail; @@ -32,6 +32,11 @@ class Statistic extends BaseDashboard protected static ?string $title = 'Statistic'; + protected int|string|array $columnSpan = [ + 'md' => 2, + 'xl' => 3, + ]; + public function getHeading(): string|Htmlable|null { return ''; @@ -41,7 +46,12 @@ class Statistic extends BaseDashboard { return $schema ->components([ - Grid::make() + Grid::make([ + 'default' => 2, + 'sm' => 2, + 'md' => 3, + 'lg' => 4, + ]) ->schema([ Select::make('league_id') ->prefixIcon('phosphor-trophy') @@ -106,7 +116,12 @@ class Statistic extends BaseDashboard ), ])->columns(5) ->columnSpanFull(), - Grid::make() + Grid::make([ + 'default' => 2, + 'sm' => 2, + 'md' => 3, + 'lg' => 4, + ]) ->schema([ Select::make('tm_player_id') ->label('Player') @@ -186,14 +201,24 @@ class Statistic extends BaseDashboard ]); } + public function getFooterWidgetsColumns(): int|array + { + return [ + 'default' => 1, + 'sm' => 2, + 'lg' => 3, + 'xl' => 4, + ]; + } + protected function getFooterWidgets(): array { return [ - MedianAverage::make(), - PunctualChart::make(), - MovingAverageChart::make(), + StatsMedianAverage::make(), + ChartPunctualEvent::make(), + ChartMovingAverageEvent::make(), PunctualChartPlayer::make(), - // MovingAverageChartPlayer::make(), + MovingAverageChartPlayer::make(), ]; } diff --git a/app/Filament/Widgets/MovingAverageChart.php b/app/Filament/Widgets/ChartMovingAverageEvent.php similarity index 65% rename from app/Filament/Widgets/MovingAverageChart.php rename to app/Filament/Widgets/ChartMovingAverageEvent.php index 98847325..53c8a5ff 100644 --- a/app/Filament/Widgets/MovingAverageChart.php +++ b/app/Filament/Widgets/ChartMovingAverageEvent.php @@ -2,13 +2,13 @@ namespace App\Filament\Widgets; -use App\Filament\Widgets\DB\LoadEvents; -use App\Filament\Widgets\DB\MoveingAverage; -use App\Filament\Widgets\DB\StatisticType; +use App\Filament\Widgets\Data\EventsLoad; +use App\Filament\Widgets\Data\HelperMoveingAverage; +use App\Filament\Widgets\Data\HelperStatisticType; use Filament\Widgets\ChartWidget; use Filament\Widgets\Concerns\InteractsWithPageFilters; -class MovingAverageChart extends ChartWidget +class ChartMovingAverageEvent extends ChartWidget { use InteractsWithPageFilters; @@ -31,12 +31,12 @@ class MovingAverageChart extends ChartWidget protected function getData(): array { - $this->heading = StatisticType::get($this->filters); + $this->heading = HelperStatisticType::get($this->filters); - $data = LoadEvents::load($this->filters); + $data = EventsLoad::load($this->filters); if ($data) { - MoveingAverage::get($data); + HelperMoveingAverage::get($data); } return $data; diff --git a/app/Filament/Widgets/PunctualChart.php b/app/Filament/Widgets/ChartPunctualEvent.php similarity index 71% rename from app/Filament/Widgets/PunctualChart.php rename to app/Filament/Widgets/ChartPunctualEvent.php index 1c456f73..ede7b2f7 100644 --- a/app/Filament/Widgets/PunctualChart.php +++ b/app/Filament/Widgets/ChartPunctualEvent.php @@ -2,12 +2,12 @@ namespace App\Filament\Widgets; -use App\Filament\Widgets\DB\LoadEvents; -use App\Filament\Widgets\DB\StatisticType; +use App\Filament\Widgets\Data\EventsLoad; +use App\Filament\Widgets\Data\HelperStatisticType; use Filament\Widgets\ChartWidget; use Filament\Widgets\Concerns\InteractsWithPageFilters; -class PunctualChart extends ChartWidget +class ChartPunctualEvent extends ChartWidget { use InteractsWithPageFilters; @@ -30,9 +30,9 @@ class PunctualChart extends ChartWidget protected function getData(): array { - $this->heading = StatisticType::get($this->filters); + $this->heading = HelperStatisticType::get($this->filters); - $data = LoadEvents::load($this->filters); + $data = EventsLoad::load($this->filters); return $data; } diff --git a/app/Filament/Widgets/DB/LoadMoveingAveragePlayer.php b/app/Filament/Widgets/DB/LoadMoveingAveragePlayer.php deleted file mode 100644 index e69de29b..00000000 diff --git a/app/Filament/Widgets/DB/LoadEvents.php b/app/Filament/Widgets/Data/EventsLoad.php similarity index 97% rename from app/Filament/Widgets/DB/LoadEvents.php rename to app/Filament/Widgets/Data/EventsLoad.php index 4b5e05e4..fb381c67 100644 --- a/app/Filament/Widgets/DB/LoadEvents.php +++ b/app/Filament/Widgets/Data/EventsLoad.php @@ -1,12 +1,12 @@ $labels, ]; - self::$last_query = $data; - return $data; } } diff --git a/app/Filament/Widgets/DB/LoadEventsAspGoal.php b/app/Filament/Widgets/Data/EventsLoadAspGoal.php similarity index 99% rename from app/Filament/Widgets/DB/LoadEventsAspGoal.php rename to app/Filament/Widgets/Data/EventsLoadAspGoal.php index 5d6dcc84..d669e3c6 100644 --- a/app/Filament/Widgets/DB/LoadEventsAspGoal.php +++ b/app/Filament/Widgets/Data/EventsLoadAspGoal.php @@ -1,12 +1,12 @@ 'Goals', diff --git a/app/Filament/Widgets/DB/LoadPunctualChartPlayer.php b/app/Filament/Widgets/Data/PlayerLoad.php similarity index 95% rename from app/Filament/Widgets/DB/LoadPunctualChartPlayer.php rename to app/Filament/Widgets/Data/PlayerLoad.php index 7c82db5a..98520a04 100644 --- a/app/Filament/Widgets/DB/LoadPunctualChartPlayer.php +++ b/app/Filament/Widgets/Data/PlayerLoad.php @@ -1,10 +1,10 @@ $value) { + $val = 0; + if (isset($value->event->starttime)) { $labels[] = $value->event->starttime->format('d.M.y'); @@ -103,7 +106,7 @@ class LoadPunctualChartPlayer $val = (int) $value['offsides']; break; case 'crd': - $val = (int) $value['crd_h']; + $val = (int) $value['card_yellow'] + $value['card_red'] + $value['card_yellowred']; break; case 'snt': $val = (int) $value['shots_on_target']; diff --git a/app/Filament/Widgets/MovingAverageChartPlayer.php b/app/Filament/Widgets/MovingAverageChartPlayer.php index c725f2c9..4832bf7c 100644 --- a/app/Filament/Widgets/MovingAverageChartPlayer.php +++ b/app/Filament/Widgets/MovingAverageChartPlayer.php @@ -2,8 +2,9 @@ namespace App\Filament\Widgets; -use App\Actions\Statistics\LoadEvents; -use App\Actions\Statistics\StatisticType; +use App\Filament\Widgets\Data\HelperMoveingAverage; +use App\Filament\Widgets\Data\HelperStatisticType; +use App\Filament\Widgets\Data\PlayerLoad; use Filament\Widgets\ChartWidget; use Filament\Widgets\Concerns\InteractsWithPageFilters; @@ -30,12 +31,12 @@ class MovingAverageChartPlayer extends ChartWidget protected function getData(): array { - $this->heading = StatisticType::get($this->filters); + $this->heading = HelperStatisticType::get($this->filters); - $data = LoadEvents::load($this->filters); + $data = PlayerLoad::load($this->filters); if ($data) { - // MoveingAveragePlayer::get($data); + HelperMoveingAverage::get($data); } return $data; diff --git a/app/Filament/Widgets/PunctualChartPlayer.php b/app/Filament/Widgets/PunctualChartPlayer.php index 4f15a97a..6e1fef85 100644 --- a/app/Filament/Widgets/PunctualChartPlayer.php +++ b/app/Filament/Widgets/PunctualChartPlayer.php @@ -2,8 +2,8 @@ namespace App\Filament\Widgets; -use App\Filament\Widgets\DB\LoadPunctualChartPlayer; -use App\Filament\Widgets\DB\StatisticType; +use App\Filament\Widgets\Data\HelperStatisticType; +use App\Filament\Widgets\Data\PlayerLoad; use Filament\Widgets\ChartWidget; use Filament\Widgets\Concerns\InteractsWithPageFilters; @@ -34,9 +34,9 @@ class PunctualChartPlayer extends ChartWidget return []; } - $this->heading = StatisticType::get($this->filters); + $this->heading = HelperStatisticType::get($this->filters); - $data = LoadPunctualChartPlayer::load($this->filters); + $data = PlayerLoad::load($this->filters); return $data; } diff --git a/app/Filament/Widgets/MedianAverage.php b/app/Filament/Widgets/StatsMedianAverage.php similarity index 82% rename from app/Filament/Widgets/MedianAverage.php rename to app/Filament/Widgets/StatsMedianAverage.php index ce9fea35..5b6423be 100644 --- a/app/Filament/Widgets/MedianAverage.php +++ b/app/Filament/Widgets/StatsMedianAverage.php @@ -2,13 +2,13 @@ namespace App\Filament\Widgets; -use App\Filament\Widgets\DB\LoadEvents; -use App\Filament\Widgets\DB\LoadEventsAspGoal; +use App\Filament\Widgets\Data\EventsLoad; +use App\Filament\Widgets\Data\EventsLoadAspGoal; use Filament\Widgets\Concerns\InteractsWithPageFilters; use Filament\Widgets\StatsOverviewWidget; use Filament\Widgets\StatsOverviewWidget\Stat; -class MedianAverage extends StatsOverviewWidget +class StatsMedianAverage extends StatsOverviewWidget { use InteractsWithPageFilters; @@ -17,9 +17,9 @@ class MedianAverage extends StatsOverviewWidget $filters = $this->filters; if ($filters['similar_past_matches'] == 'none') { - $data = LoadEvents::load($filters); + $data = EventsLoad::load($filters); } else { - $data = LoadEventsAspGoal::load($filters); + $data = EventsLoadAspGoal::load($filters); } if (! isset($data['datasets'][0])) {