<?php

declare(strict_types=1);

/**
 * Matchcenter: Spielplan, Ergebnisse und Tabellen der Aktivenmannschaften.
 * Daten: data/matchcenter.json (maschinenverwaltet von bin/matchcenter-sync.php).
 * Struktur: Hero → „Nächste Spiele"-Band → pro Mannschaft eine Sektion
 * (Nächste Spiele · Letzte Ergebnisse · Tabelle). Ohne Cache rendert die Seite
 * einen freundlichen Hinweis statt eines Fehlers (Graceful Degradation).
 */
$mc = json_load('matchcenter');
$teams = $mc['teams'] ?? [];
$upcoming = $mc['upcoming'] ?? [];

$meta = [
    'title'       => 'Matchcenter · Spiele, Ergebnisse & Tabellen',
    'description' => 'Spielplan, Ergebnisse und Tabellen der Aktivenmannschaften des TSV 08 Kulmbach: 1. Mannschaft und Frauenmannschaft – automatisch aktuell.',
    'og_image'    => 'img/pages/matchcenter-hero-1600.jpg',
    'scripts'     => ['crest.js', 'group-tabs.js'],
    'schema'      => array_merge(
        page_schema([
            ['name' => 'Startseite', 'slug' => ''],
            ['name' => 'Fußball', 'slug' => 'fussball'],
            ['name' => 'Matchcenter', 'slug' => 'matchcenter'],
        ]),
        sportsevent_nodes($upcoming)
    ),
];

component('hero', ['hero' => [
    'compact' => true,
    'align'   => 'center',
    'title'   => 'Matchcenter',
    'text'    => 'Alle Spiele, Ergebnisse und Tabellen unserer Aktivenmannschaften – immer aktuell.',
    /* Eigenes Hero-Motiv (Spielszene) statt des leeren Platzes von /fussball — die Seite
       zeigt Spiele, also zeigt der Kopf welche. Quelle: 14_mrz.jpg aus der alten Seite,
       vor dem Skalieren oben um 230 px beschnitten (1620x1080 → 1620x850). Der Beschnitt
       rückt die Spielszene in die Bildmitte, sonst schneidet der flache Compact-Hero sie
       auf Mobil komplett weg. */
    'image'   => [
        'base'   => 'img/pages/matchcenter-hero',
        'widths' => [640, 1000, 1600],
        'alt'    => '',
    ],
]]);

if ($teams === []) {
    component('matchcenter-empty');
    return;
}

component('next-matches', ['matches' => $upcoming, 'teams' => $teams]);

foreach ($teams as $team) {
    component('matchcenter-section', ['team' => $team]);
}
