feat: Implement product switcher for AppShell and update navigation context
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s

This commit is contained in:
Torsten Schulz (local)
2026-07-30 10:37:39 +02:00
parent b404c289bb
commit 240cbf7d14
4 changed files with 413 additions and 104 deletions

View File

@@ -53,6 +53,7 @@ Bestehendes Node/Express-Backend
- [x] Build-Konfigurationen `development`, `staging` und `production` mit `API_BASE_URL` per Dart-Define einrichten.
- [x] App-Theme, Typografie, responsive Desktop-Layout und zentrale Design-Tokens anlegen.
- [x] Navigation mit öffentlichem Bereich und geschütztem App-Bereich aufsetzen.
- [x] Produkt-Switch für Trainings-Tagebuch, TT Verein und Mein TT anlegen; Produktwechsel aktualisiert Kontext und Navigation. Rechtefilterung folgt mit Phase 2.
- [x] Fehlerbehandlung, Logging ohne personenbezogene Daten und zentrale Ladeindikatoren implementieren.
- [x] CI-Grundgerüst für Formatierung, Analyse und Tests anlegen.

View File

@@ -20,6 +20,19 @@ Die erste Version ist eine **online-first Flutter-App ohne WebView**. Sie verwen
Der MVP liefert damit für alle Rollen eine verlässliche tägliche Übersicht. Schreibende Verwaltungs- und Trainerabläufe folgen erst, wenn die lesenden Kernansichten auf allen Zielplattformen stabil sind.
## 1.1 Produktwechsel in der Desktop-App
Ein Benutzer kann innerhalb derselben Desktop-Installation zwischen den drei
Produkten **Trainings-Tagebuch** (`trainer`), **TT Verein** (`club`) und
**Mein TT** (`player`) wechseln. Der Wechsel ändert Produktname, Navigation,
Startbereich und Kontext sofort; Datenbank, Benutzerkonto und API bleiben
gemeinsam.
Der Switch ist kein Berechtigungsmechanismus. Ab Phase 2 werden die sichtbaren
Produkte und Menüpunkte zusätzlich aus Vereinszugang und den geladenen
Berechtigungen gefiltert. Produkte ohne Zugriff dürfen dann nicht auswählbar
sein.
## 2. Rollen- und Sichtbarkeitsmatrix
Die Berechtigungen kommen ausschließlich vom Backend (`GET /api/permissions/:clubId`). Die folgende Matrix definiert nur die Desktop-Navigation; sie ersetzt niemals eine Serverprüfung.