This commit is contained in:
salam committed 2026-08-14 20:31:07 +02:00
1 parent 377478d9e8
commit 8a5b03eec4
3 files changed
+97 -93

No files matched your search

@@ -3,19 +3,22 @@
namespace App\Filament\Widgets\Data\LoadEvents;
use App\Models\StatistikoEvent;
use App\Models\StatistikoPlayer;
class LoadEventsQuery
{
public static function load(array $filter, array $matches_played, array $handicap_range, array $total_range, object $match)
public static function load(array $filter, array $handicap_range, array $total_range, object $match)
{
$league_id = (int) $filter['league_id'] ?? 0;
$team_id = (int) $filter['team_id'] ?? 0;
$season = $filter['season'] ?? 0;
$start = $filter['start_date'] ?? 0;
$end = $filter['end_date'] ?? 0;
$ss_player_id = (int) $filter['ss_player_id'] ?? 0;
$player_on_field = $filter['player_on_field'] ?? 'all';
$similar_past_matches = $filter['similar_past_matches'];
$statistic_type = $filter['statistic_type'] ?? 'gls';
$team_position = $filter['team_position'];
$home_id = $match->home_id;
$away_id = $match->away_id;
@@ -23,6 +26,50 @@ class LoadEventsQuery
$statistic_type = 'gls';
}
/**
* IF WITH PLAYER
*/
$matches_played = [];
if ($ss_player_id) {
$matches_season = StatistikoEvent::where(function ($query) use ($team_id, $team_position) {
switch ($team_position) {
case 'home':
return $query->where('home_id', '=', $team_id);
case 'away':
return $query->where('away_id', '=', $team_id);
default:
return $query->where('home_id', '=', $team_id)
->orWhere('away_id', '=', $team_id);
}
})->pluck('match_id')->toArray();
$matches_played = StatistikoPlayer::query()
->whereIn('match_id', $matches_season)
->where('ss_player_id', $ss_player_id)
->when($player_on_field, function ($query) use ($player_on_field) {
// 'all' => 'All',
// 'lineup' => 'Lineup',
// 'substituted' => 'Substituted',
// 'notplayed' => 'Not Played',
switch ($player_on_field) {
case 'all':
return $query->where('minutes_played', '>', 0);
case 'lineup':
return $query->where('lineup', 'T')->where('minutes_played', '>', 0);
case 'substituted':
return $query->where('lineup', 'P')->where('minutes_played', '>', 0);
default:
return $query->where('minutes_played', '>', 0);
}
})
->pluck('match_id')->toArray();
if (! $matches_played) {
$matches_played[] = -1;
}
}
/**
* STATTISTIC DATA
*/
@@ -61,6 +108,8 @@ class LoadEventsQuery
->orderBy('starttime', 'ASC')
->get();
// dd($res);
$arr = [];
foreach ($res as $value) {
$tmp = [];