third place corrected
This commit is contained in:
@@ -4,6 +4,7 @@ import {
|
||||
ThirdAssignment, slotLabel,
|
||||
} from "@/lib/bracket";
|
||||
import { placeIsSecure } from "@/lib/secure-places";
|
||||
import { thirdSlotIsSecure } from "@/lib/third-place-security";
|
||||
|
||||
// Ein aufgelöster Teilnehmer einer K.o.-Begegnung.
|
||||
export interface ResolvedSide {
|
||||
@@ -46,15 +47,6 @@ function loserOf(m: Match | undefined): string | null {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Prüft, ob die gesamte Gruppenphase abgeschlossen ist.
|
||||
// Erst dann stehen die Drittplatzierten-Rangliste und die
|
||||
// Annex-C-Zuordnung final fest.
|
||||
function groupStageComplete(matches: Match[]): boolean {
|
||||
const groupMatches = matches.filter((m) => m.group != null);
|
||||
if (groupMatches.length === 0) return false;
|
||||
return groupMatches.every((m) => m.status === "FINISHED");
|
||||
}
|
||||
|
||||
// Löst einen R32-Slot (W/R/3) zu einer Team-ID auf, sofern bereits bekannt.
|
||||
// provisional = true, solange die zugrunde liegende Gruppe/Zuordnung nicht fix ist.
|
||||
function resolveR32Slot(
|
||||
@@ -91,9 +83,12 @@ function resolveR32Slot(
|
||||
const row = thirds.find((r) => r.group === thirdGroup && r.qualifies);
|
||||
// Fix nur, wenn ALLE drei Bedingungen erfüllt sind:
|
||||
// 1. Annex C aufgelöst (8 Dritte zuweisbar)
|
||||
// 2. Komplette Gruppenphase beendet (Dritten-Rangliste final)
|
||||
// 3. Das Team gehört gesichert zu den besten 8
|
||||
const fix = annexResolved && groupStageComplete(matches) && row?.qualifies === true;
|
||||
// 2. Der Slot ist in allen noch möglichen Konstellationen stabil
|
||||
// (Enumeration aller Annex-C-Kombinationen)
|
||||
// 3. Das konkrete Team ist bekannt (Gruppe fertig)
|
||||
const fix = annexResolved
|
||||
&& thirdSlotIsSecure(winnerGroup, matches, teams)
|
||||
&& row?.qualifies === true;
|
||||
const provisional = !fix;
|
||||
const prefix = provisional ? "aktuell " : "";
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user