# Multi-Product Umbau fuer `mein-tt.de` und `tt-verein.de`

## Summary
- Das Frontend wird von einer einheitlichen Vereins-App zu zwei klar getrennten Produkten auf gemeinsamer technischer Basis umgebaut:
  - `tt-verein.de` fuer Vereinsarbeit
  - `mein-tt.de` fuer einzelne Spieler
- Im ersten Schritt wird nur die Architektur und Produkttrennung umgesetzt, nicht der volle Ausbau neuer Spieler- oder Finanzmodule.
- Backend, Auth und Accounts bleiben vorerst gemeinsam; die Domain bestimmt Produktkontext, sichtbare Navigation, Standard-Startseite, zugelassene Routen und SEO.

## Implementation Changes
- Einen zentralen Produktkontext einfuehren, der beim App-Start den Host auf ein Produkt mapped.
  - `tt-verein.de` => `club`
  - `mein-tt.de` => `player`
  - lokale Entwicklung zusaetzlich per Env-Override steuerbar, damit beide Produkte ohne DNS testbar bleiben
- Den Produktkontext zentral bereitstellen, statt `window.location` spaeter verteilt in Views zu pruefen.
  - Store erweitert um `appProduct`, `appBrand`, `defaultHomeRoute`
  - kleine Konfigurationsquelle fuer Produkt-Metadaten, erlaubte Routen, SEO-Basisdaten und Navigationsdefinitionen

- Routing auf Produktfaehigkeit umstellen.
  - In `src/router.js` jede interne Route mit Produkt-Metadaten versehen, z. B. `products: ['club']`, `['player']`, `['club', 'player']`
  - Globaler Router-Guard blockiert direkte URL-Zugriffe auf fachlich unpassende Bereiche
  - Bei gesperrten Routen Umleitung auf produktpassende Startseite statt stiller Anzeige
- Produktzuordnung im ersten Schritt:
  - `tt-verein.de`: bestehende Vereinsbereiche bleiben zugelassen, insbesondere Mitglieder, Tagebuch, Kalender, Freigaben, Statistiken, Turniere, Spielplaene, Vereinssettings, Teamverwaltung, Abrechnung
  - `mein-tt.de`: zunaechst nur persoenliche Bereiche plus Kalender
  - konkret freigegeben auf `mein-tt.de`: Startseite, Login/Register/Passwort-Flows, Kalender, persoenliche Einstellungen, MyTischtennis-/click-TT-Konto, Bestellungen, Impressum/Datenschutz/Konto loeschen
  - alle klar vereinszentrierten Bereiche auf `mein-tt.de` sperren, einschliesslich Club-Auswahl als Primaernavigation, Mitgliederverwaltung, Freigaben, Teamverwaltung, Vereinssettings, Billing, Turnier- und Spielplan-Arbeitsflaechen
  - falls einzelne heute technisch noch `currentClub` voraussetzen, bleiben sie auf `mein-tt.de` zunaechst ebenfalls gesperrt, bis sie produktneutral gemacht sind

- Navigation aus `App.vue` heraus in deklarative Produktnavigation ueberfuehren.
  - keine fest verdrahteten Link-Bloecke mehr pro Template-Abschnitt
  - Menue wird aus einer Konfigurationsliste gerendert: Label, Route, Icon, Permission-Regeln, Produktzuordnung
  - `tt-verein.de` behaelt Club-Selektor und vereinszentrierte Sidebar
  - `mein-tt.de` erhaelt eine reduzierte persoenliche Navigation ohne Club-Selektor als dominantes Element
- Onboarding/Startverhalten trennen.
  - `tt-verein.de`: nach Login weiter club-zentriert; wenn kein Verein gewaehlt/verfuegbar, Club-Auswahl bzw. `createclub`
  - `mein-tt.de`: nach Login auf persoenliche Startseite; kein erzwungener Club-Schritt
  - bestehende Logik, die Navigation erst bei `selectedClub` sichtbar macht, wird fuer das Player-Produkt entkoppelt

- Public Surface und SEO pro Produkt trennen.
  - `src/utils/seo.js` nicht mehr auf `https://tt-tagebuch.de` fest verdrahten
  - produktabhaengige Canonical-URL, Seitentitel, OG-Daten und Standardbeschreibungen
  - `index.html` ohne feste Canonical auf alte Domain
  - oeffentliche Landingpages auf `tt-verein.de` vereinszentriert belassen
  - `mein-tt.de` bekommt eine eigene reduzierte oeffentliche Positionierung fuer Spieler, auch wenn die neuen Spielerfeatures fachlich erst spaeter kommen

## Public Interfaces / Config Changes
- Neue zentrale Produktkonfiguration, z. B. in einer Datei wie `src/config/products.js`
  - Hostname -> Produkt
  - Produktname/Brand
  - Default-Route
  - erlaubte Routen
  - SEO-Basiswerte
- Route-Meta wird erweitert um Produkt-Sichtbarkeit.
- Optionale Env-Variablen fuer lokale und Deployment-seitige Steuerung:
  - Produkt-Override fuer lokale Entwicklung
  - optionale Host-/Canonical-Basis-URLs je Produkt

## Test Plan
- Router-Guard:
  - `mein-tt.de` blockiert direkte Aufrufe von `/members`, `/billing`, `/club-settings`, `/team-management`
  - `tt-verein.de` laesst diese Routen bei Auth weiter zu
- Navigation:
  - auf `mein-tt.de` erscheinen keine vereinszentrierten Menuepunkte
  - auf `tt-verein.de` bleibt die bestehende Vereinsnavigation erhalten
- Onboarding:
  - Login auf `mein-tt.de` landet ohne Club-Zwang auf persoenlicher Startseite
  - Login auf `tt-verein.de` bleibt club-zentriert
- SEO:
  - Canonical, Title und Description wechseln je Host korrekt
  - oeffentliche Vereins-Landingpages referenzieren `tt-verein.de`, nicht mehr `tt-tagebuch.de`
- Regression:
  - bestehende Auth-Flows, Club-Wechsel und Permission-basierte Vereinsnavigation funktionieren auf `tt-verein.de` unveraendert weiter

## Assumptions
- Gemeinsames Backend und gemeinsame Accounts bleiben im ersten Schritt bestehen.
- Die Domain-Trennung ist fachlich hart: unpassende Bereiche werden nicht nur im Menue versteckt, sondern per Routing gesperrt.
- `mein-tt.de` ist im ersten Schritt bewusst schmal und zeigt nur vorhandene persoenliche bzw. unkritische Bereiche plus Kalender.
- Neue Spielerfunktionen wie individuelles Trainingsprogramm und Ziele sowie neue Vereinsmodule wie Budget/Finanzuebersichten/Rechnungen werden erst im naechsten Ausbau auf diese Architektur aufgesetzt.
- Die bisherige Marke `tt-tagebuch.de` wird technisch nicht mehr als primaere oeffentliche Canonical-Basis behandelt, sobald die neuen Domains live sind.
