diff --git a/app/Filament/Widgets/Data/LoadEvents.php b/app/Filament/Widgets/Data/LoadEvents.php index 6c8898f2..f704be58 100644 --- a/app/Filament/Widgets/Data/LoadEvents.php +++ b/app/Filament/Widgets/Data/LoadEvents.php @@ -2,6 +2,7 @@ namespace App\Filament\Widgets\Data; +use App\Models\CompetitionGroup; use App\Models\StatisticFixtures; use App\Models\StatistikoDetail; use App\Models\StatistikoEvent; @@ -48,9 +49,6 @@ class LoadEvents if (! $match_id) { return []; } - // if (! $team_id && $similar_past_matches == 'none') { - // return []; - // } if ($statistic_type == 'none') { $statistic_type = 'gls'; @@ -495,6 +493,112 @@ class LoadEvents ]; } + /** + * LEAGUE AVERAGES + */ + if ($similar_past_matches == 'none') { + $res = CompetitionGroup::with('country')->where('id', $league_id)->first(); + $season_mode = $res->country->season_mode; + if ($season_mode == 'fullyear') { + $season = date('Y'); + } else { + $season = date('y') - 1 . '/' . date('Y'); + } + $res = StatistikoEvent::where('league_id', $league_id) + ->where('season', $season) + ->orderBy('starttime', 'ASC') + ->get(); + + $media_team = []; + $media_league = []; + + // 1) la media dei falli di tutte le partite giocate dal Flamengo + // (esempio, giocate 6 partite con falli 17-11-15-14-15-12, la media รจ 14) + + // 2) la media dei falli di tutte le partite giocate nel campionato Brasiliano + // (esempio 6 giornate giocate = 60 partite quindi 120 squadre, quindi 120 dati tipo 17-12-12-15-8-15-13-21-..., + // quindi la media di questi 120 dati) + + foreach ($res as $value) { + + if ($team_id == $value['home_id'] or $team_id == $value['away_id']) { + switch ($statistic_type) { + case 'gls': + $media_team[] = (int) $value['gls_h']; + $media_team[] = (int) $value['gls_a']; + break; + case 'crn': + $media_team[] = (int) $value['crn_h']; + $media_team[] = (int) $value['crn_a']; + break; + case 'fls': + $media_team[] = (int) $value['fls_h']; + $media_team[] = (int) $value['fls_a']; + break; + case 'ofs': + $media_team[] = (int) $value['ofs_h']; + $media_team[] = (int) $value['ofs_a']; + break; + case 'crd': + $media_team[] = (int) $value['crd_h']; + $media_team[] = (int) $value['crd_a']; + break; + case 'snt': + $media_team[] = (int) $value['snt_h']; + $media_team[] = (int) $value['snt_a']; + break; + case 'tsh': + $media_team[] = (int) $value['tsh_h']; + $media_team[] = (int) $value['tsh_a']; + break; + } + } + + switch ($statistic_type) { + case 'gls': + $media_league[] = (int) $value['gls_h']; + $media_league[] = (int) $value['gls_a']; + break; + case 'crn': + $media_league[] = (int) $value['crn_h']; + $media_league[] = (int) $value['crn_a']; + break; + case 'fls': + $media_league[] = (int) $value['fls_h']; + $media_league[] = (int) $value['fls_a']; + break; + case 'ofs': + $media_league[] = (int) $value['ofs_h']; + $media_league[] = (int) $value['ofs_a']; + break; + case 'crd': + $media_league[] = (int) $value['crd_h']; + $media_league[] = (int) $value['crd_a']; + break; + case 'snt': + $media_league[] = (int) $value['snt_h']; + $media_league[] = (int) $value['snt_a']; + break; + case 'tsh': + $media_league[] = (int) $value['tsh_h']; + $media_league[] = (int) $value['tsh_a']; + break; + } + } + + // dd($media_team, $media_league); + + + $average_team = round(array_sum($media_team) / \count($media_team), 2); + $average_league = round(array_sum($media_league) / \count($media_league), 2); + + $data_team = array_fill(5, 6, 'banana'); + + $labels + + dd($average_team, $average_league); + } + self::$last_query = $data; // dd($data); diff --git a/database/migrations/2026_04_20_145255_mongo_event.php b/database/migrations/2026_04_20_145255_mongo_event.php index d537b789..5586aeea 100644 --- a/database/migrations/2026_04_20_145255_mongo_event.php +++ b/database/migrations/2026_04_20_145255_mongo_event.php @@ -20,6 +20,7 @@ return new class extends Migration $collection->index('home_id'); $collection->index('away_id'); $collection->index('starttime'); + $collection->index('season'); }); }