# Lageplan – Verbesserungs-Fahrplan Priorisierter Plan zur Weiterentwicklung. Wir arbeiten ihn Punkt für Punkt ab. Legende Aufwand: 🟢 klein · 🟡 mittel · 🔴 gross --- ## Phase 0 – Fundament & Sicherheit - [x] **0.1 – JWT-Secret härten** 🟢 ✅ - Gemeinsames Secret-Modul; in Produktion hart fehlschlagen, wenn `NEXTAUTH_SECRET` fehlt oder < 32 Zeichen. Kein öffentlich bekannter Fallback mehr. - Betrifft: `src/lib/auth.ts`, `src/middleware.ts` - _Hinweis: Cookie-Flags (httpOnly/secure/sameSite) sind bereits korrekt._ - [x] **0.2 – Token-Laufzeit verkürzt** 🟢 ✅ - „Angemeldet bleiben" 30 → 14 Tage. Laufzeiten zentralisiert (`SESSION_MAX_AGE_*` in `auth.ts`). - _Offen für später: automatische Verlängerung bei Aktivität + serverseitiger Widerruf (grösserer Umbau, braucht Live-Test)._ - [x] **0.3 – Benutzer-/Mandanten-Verwaltung** 🟡 ✅ - Super-Admin sieht ALLE Benutzer über alle Mandanten (Mandant-Spalte, letzte Anmeldung, Status), sperren/entsperren (`User.isActive`), Passwort-Reset, **Suche**. - **Anlegen mit Mandanten-Auswahl** (verhindert verwaiste User). - `admin/page.tsx` von 1365 → ~230 Zeilen entwirrt: je Bereich eine eigene Komponente (tenants/users/projects/icons/categories-tab), toter Code entfernt. - Offen (später): Rollen-Dualität (User.role vs. Membership.role) vereinheitlichen. ## Phase 1 – Einsatz vs. Übung - [x] **1.1 – `mode`-Feld am Projekt** 🟢 ✅ - Feld `mode` (EINSATZ/UEBUNG) im Schema + Auto-Migration + Validierung. - Auswahl beim Erstellen (Segmented-Control), Badge in Projektliste, eigene Nummer `Ü-…`. - [x] **1.2 – UI je nach Modus** 🟡 ✅ - Direkte Buttons „Neuer Einsatz" (rot) / „Neue Übung" (blau) in der Topbar. - Übung → Übungs-Cockpit statt Journal: Übungsziele + Zielerreichung + Auswertung. - Deutliches „ÜBUNG"-Banner, Sidebar-Tab heisst bei Übung „Auswertung". ## Phase 2 – Symbole aufräumen & ergänzen - [ ] **2.1 – Kategorien vereinheitlichen** 🟢 (Motorspritze, Hydrant, Leitern …) - [ ] **2.2 – Fehlende taktische Zeichen** 🟡 (Warteraum, Rettungsachse … – Input von Fabian) - [ ] **2.3 – Symbol-Schönheitsfehler** 🟢 (Eingang/Treppe Umriss, Absperrung Seitenlinien) - [ ] **2.4 – Custom-Felder pro Symbol** 🟢 (z. B. Stockwerke; `Item.properties` existiert) ## Phase 3 – Lage-/Rapportansicht - [ ] **3.1 – Reduzierte Lage-View** 🟡 - Read-Only (Pendenzen + Stand + Aufgaben) für Grossbildschirm. `Rapport` + Token existieren. ## Phase 4 – Echte Kollaboration - [ ] **4.1 – Karte & Journal getrennt live-editierbar** 🔴 - Single-Editor-Lock aufbrechen; Socket.io-Sync erweitern. ## Phase 5 – Kür - [ ] **5.1 – Linien-Typ-Abfrage** 🟡 (Rettungsachse / Leitung / normal) --- _Fortschritt wird hier laufend abgehakt._