meldestelle/docs/04_Agents/Roadmaps/Architect_Roadmap.md
Stefan Mogeritsch 0aa1a1b9b7 feat(entries+time-scheduling): add support for automatic breaks and inspection type configurations
- **Domain Enhancements:**
  - Introduced `PausenKonfiguration` and `BesichtigungsBlock` entities to handle automatic breaks and inspection scheduling.
  - Added `BesichtigungsTypE` enum for inspection types (`ZU_FUSS`, `ZU_PFERD`).
  - Updated `Bewerb` and `Abteilung` models to include pause and inspection type fields.

- **Service Updates:**
  - Enhanced `StartlistenService` to calculate start times, accounting for breaks and inspection buffers.
  - Extended `BewerbService` to support patchable time scheduling via new `updateZeitplan` API.

- **Persistence Changes:**
  - Updated tables (`BewerbTable`, `AbteilungTable`) to persist break configurations and inspection types.
  - Implemented repository mappings to include these new fields.

- **Testing:**
  - Introduced `BewerbeZeitplanIntegrationTest` to validate new scheduling behaviors, including automatic pauses and inspection handling.

- **Documentation:**
  - Added rulebook and conceptual documents for inspection and scheduling logic in `docs/01_Architecture/`.
2026-04-11 12:21:42 +02:00

3.0 KiB

🏗️ [Lead Architect] — Zwischenstand & Roadmap

Stand: 3. April 2026 Rolle: Strategie, Architektur-Entscheidungen (ADRs), Domänen-Modell, Master-Roadmap


Erledigte Sprints

Sprint A — Abgeschlossen

  • A-1 | ADR-0021 Tenant-Resolution-Strategie

    • Schema-per-Tenant vs. Tenant-ID analysiert → Entscheidung: Eine Veranstaltung = eine Datenbank
    • ADR-0021 in docs/01_Architecture/adr/0021-tenant-resolution-strategy-de.md abgelegt
    • Backend Developer informiert (Backend A-1 gestartet)
  • A-2 | Domänen-Modell formal präzisiert

    • Hierarchie Veranstaltung → Turnier → Bewerb → Abteilung festgeschrieben
    • TeilnehmerKonto auf Veranstaltungsebene (Multi-Turnier) ins Modell aufgenommen
    • Veranstaltungs-Kassa mit Turnier-übergreifendem Saldo modelliert
    • Abteilungs-Typen SEPARATE_SIEGEREHRUNG und ORGANISATORISCH definiert
    • Curator beauftragt: Ubiquitous_Language.md aktualisiert

Sprint B — Abgeschlossen

  • B-1 | ADR für LAN-Sync-Protokoll schreiben
    • Optionen analysieren: Event-Sourcing vs. CRDT vs. Timestamp-Sync
    • Entscheidung für Meldestelle ↔ Richter-Turm Sync getroffen: Event-Sourcing Light mit Lamport-Uhren (Option D)
    • ADR-0022 in docs/01_Architecture/adr/0022-lan-sync-protocol-de.md abgelegt
    • Backend Developer und Frontend Expert über Entscheidung informiert (siehe jeweilige Roadmaps)

⏸️ USB-Stick Fallback — Separate Besprechung zu einem späteren Zeitpunkt (Sprint B/C)


🟠 Sprint C — In Arbeit

  • C-1 | Zeitplan-Optimierung Konzept

    • Fachliche Anforderungen (Use Cases) definiert
    • Zeitberechnungs-Algorithmus spezifiziert
    • Drag & Drop Logik für Kalender-Ansicht entworfen
    • Konzept-Dokument in docs/01_Architecture/ abgelegt → docs/01_Architecture/konzept-zeitplan-optimierung-de.md
  • C-2 | MASTER_ROADMAP aktualisieren

    • Phase 9 Fortschritt reflektieren
    • Link zum Zeitplan-Konzept ergänzt
    • Weitere Sprints (D, E) grob skizzieren

🔵 Sprint D — Geplant

  • D-1 | USB-Stick Fallback (Sync)
    • Technische Machbarkeit (File-Storage vs. SQLite-Export) prüfen
    • ADR für Offline-Transfer erstellen

📌 Abhängigkeiten

Meine Aufgabe Blockiert wen
ADR-0021 👷 Backend: Tenant-Isolation (Backend Sprint A)
Domänen-Modell 👷 Backend: Schema-Design; 🎨 Frontend: ViewModel-Design
LAN-Sync ADR (B-1) 🎨 Frontend: Sync-UI; 👷 Backend: Sync-Endpunkte
Sync-Konzept (C-1) 🐧 DevOps: mDNS/WebSocket-Infrastruktur

💡 Empfehlung

Sofort starten: B-1 (LAN-Sync ADR) — Phase 8 der MASTER_ROADMAP wartet auf mDNS/WebSocket-Discovery; ohne ADR können Backend und Frontend nicht parallel implementieren.