# Scheduler: `match_results`

## Zweck

Der Job `match_results` aktualisiert nicht nur Ergebnisse, sondern auch Spieltermine und zusaetzliche Ligaspiele aus MyTischtennis.

## Manuelle Trigger

- HTTP: `POST /api/scheduler/match_results`
- Log-Pfad: `/scheduler/match_results`

Der manuelle Trigger kann auf eine konkrete Mannschaft begrenzt werden:

- `clubTeamId`
- nur aktuelle Saison

Der automatische Scheduler laeuft weiterhin global fuer die aktivierten Accounts, ist aber ebenfalls auf die aktuelle Saison eingegrenzt.

## Datenquellen

### 1. Mannschaftsdaten

Pro konfigurierter Mannschaft:

- MyTischtennis-Spielerbilanzen
- falls verfuegbar: teambezogener Spielplan

### 2. Voller Gruppenspielplan

Fuer die komplette Liga/Gruppe:

- `.../gruppe/{groupId}/spielplan/vr`
- `.../gruppe/{groupId}/spielplan/rr`

Diese Quelle wird fuer den vollstaendigen Ligaspielplan verwendet.

### 3. Ligatabelle

- `.../gruppe/{groupId}/tabelle/gesamt`

Diese Quelle aktualisiert Tabellenstaende, wird aber nicht mehr als primaere Quelle fuer den vollstaendigen Spielimport verwendet.

## Importverhalten

- fehlende Spiele werden neu angelegt
- vorhandene Spiele werden bei Ergebnis, Datum und Uhrzeit aktualisiert
- Terminverschiebungen aus MyTischtennis werden damit uebernommen
- manuelle Diary-/Schedule-Ansichten koennen danach ueber die Match-Endpoints neu laden

## Debugging

Die Job-Zusammenfassung pro Team ist besonders relevant:

- `scheduleMatchesProcessed`
- `leagueScheduleMatchesProcessed`
- `tableMatchesProcessed`
- `playerStatsProcessed`

Wenn in der UI Spiele fehlen, ist die Reihenfolge fuer die Diagnose:

1. Liefert die MyTischtennis-Quelle den Spielplan?
2. Wurde er im Job verarbeitet?
3. Liegen die Matches in der DB?
4. Liefert der API-Endpoint `scope=all` die DB-Daten vollstaendig?
