]> git.localhorst.tv Git - alttp.git/commitdiff
reduce number of participants transferred
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Sun, 1 Feb 2026 21:19:08 +0000 (22:19 +0100)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Sun, 1 Feb 2026 21:19:08 +0000 (22:19 +0100)
app/Http/Controllers/TournamentController.php

index e7fd6b55bc886c9c2e9d06172dd50811f8c41075..f4cacdd5848729f58f3ec605866407a3522cb1ab 100644 (file)
@@ -32,9 +32,18 @@ class TournamentController extends Controller
                        'applications',
                        'applications.user',
                        'description',
-                       'participants',
-                       'participants.user',
                ]);
+               $participants = $tournament->participants()
+                       ->where(function ($query) use ($request, $tournament) {
+                               $query->where('placement', '<=', $tournament->limit_scoreboard);
+                               $query->orWhereJsonContains('roles', 'admin');
+                               $query->orWhereJsonContains('roles', 'monitor');
+                               if ($request->user()) {
+                                       $query->orWhere('user_id', '=', $request->user()->id);
+                               }
+                       })
+                       ->with(['user'])
+                       ->get();
                $rounds = $tournament->rounds()
                        ->with(['results', 'results.user', 'results.verified_by'])
                        ->limit($tournament->ceilRoundLimit(25))
@@ -45,6 +54,7 @@ class TournamentController extends Controller
                        }
                }
                $json = $tournament->toArray();
+               $json['participants'] = $participants->toArray();
                $json['rounds'] = $rounds->toArray();
                if ($request->user()) {
                        $json['group_assignments'] = GroupAssignment::query()