236876a043
- Consolidated and removed redundant steps in `SPRINT_EXECUTION_ORDER.md`. - Simplified descriptions and roadmap formatting for improved clarity. - Updated progress and dependencies to align with Phase 8 objectives. - Adjusted role-specific roadmaps to reflect the latest sprint updates. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
105 lines
4.9 KiB
Markdown
105 lines
4.9 KiB
Markdown
# 👷 [Backend Developer] — Zwischenstand & Roadmap
|
||
|
||
> **Stand:** 3. April 2026
|
||
> **Rolle:** Spring Boot / Ktor, Kotlin, SQL, API-Design, Datenbankschema, Services
|
||
|
||
---
|
||
|
||
## ✅ Erledigte Sprints
|
||
|
||
### Sprint A (Teilweise) — Abgeschlossene Punkte
|
||
|
||
- [x] **A-2** | Datenbankschema: Domänen-Hierarchie umgesetzt
|
||
- [x] Tabellen `veranstaltungen`, `turniere`, `bewerbe`, `abteilungen` mit FK-Ketten
|
||
- [x] `teilnehmer_konten` (Veranstaltungsebene), `turnier_kassa` (Turnierebene)
|
||
- [x] Flyway-Migrationen V1–V3 (inkl. Turnier-Status `DRAFT`/`PUBLISHED`)
|
||
- [x] `DomainHierarchyMigrationTest` grün
|
||
|
||
---
|
||
|
||
## 🔴 Sprint A — Offen (höchste Priorität)
|
||
|
||
- [ ] **A-1** | Tenant-Isolation vollständig ausrollen ⚠️ BLOCKER
|
||
- [x] ADR-0021 übernommen; `TenantWebFilter`, `TenantRegistry` (JDBC) implementiert
|
||
- [x] Entries Service: `JdbcTenantRegistry`, `TenantMigrationsRunner`, MDC-Logging
|
||
- [x] Flyway pro Tenant-Schema; Unit-Tests (`JdbcTenantRegistryTest`) grün
|
||
- [ ] **Rollout auf weitere Services** (aktuell nur Entries Service migriert)
|
||
- [ ] E2E-Isolationstest re-enablen (`@Disabled` wegen Jackson/Spring-Web-Autokonfiguration)
|
||
|
||
- [ ] **A-3** | Validierungs-Grundlage: Turnierkategorie-Limits
|
||
- [x] Entkoppelte Policy-Schnittstelle + Bewerb-Descriptor implementiert
|
||
- [x] Konkrete ÖTO-Regeln/Limits umgesetzt (eigene Policy-Implementierung)
|
||
- [ ] Sonderregeln aus 📜 Rulebook B-2 Spezifikation einarbeiten (wartet auf Übergabe)
|
||
|
||
---
|
||
|
||
## 🟠 Sprint B — Priorität 2 (diese Woche)
|
||
|
||
- [ ] **B-1** | CRUD-Endpunkte vervollständigen
|
||
- [x] `Veranstaltung`: GET, PUT
|
||
- [x] `Turniere`: POST, GET, GET{id}, PUT, DELETE, PATCH /status
|
||
- [x] `Bewerbe`: POST, GET, GET{id}, PUT, DELETE
|
||
- [x] `Abteilungen`: POST, GET, GET{id}, PUT, DELETE
|
||
- [x] Konsistentes Error-Format (`problem+json`); Service-Guardrails für `PUBLISHED`-Lock
|
||
- [ ] **`Reiter`**: POST/GET/GET{id}/PUT/DELETE (Suche `q`, Filter `lizenzKlasse`, `vereinId`)
|
||
- [ ] **`Pferde`**: POST/GET/GET{id}/PUT/DELETE (Suche `q`, Filter `jahrgang`, `besitzerId`)
|
||
- [ ] **`Vereine`**: POST/GET/GET{id}/PUT/DELETE (Suche `q`, Filter `verband`)
|
||
- [ ] **`Funktionäre`**: POST/GET/GET{id}/PUT/DELETE (Suche `q`, Filter `rolle`)
|
||
- [ ] OpenAPI-Dokumentation (Springdoc) veröffentlichen
|
||
- [ ] E2E-Tests: CRUD-Flows Turnier → Bewerb → Abteilung inkl. FK-Constraints
|
||
|
||
- [ ] **B-2** | Kassa-Service implementieren
|
||
- [ ] `TeilnehmerKonto`-Service: Saldo aus mehreren Turnieren aggregieren
|
||
- [ ] `Zahlvorgang`-Service: Zahlung auf Veranstaltungs-Ebene buchen
|
||
- [ ] Rechnungs-Generierung: Separate Rechnung je Turnier aus einem Zahlvorgang
|
||
- [ ] Endpunkte: `GET /veranstaltungen/{id}/kassa/saldo`, `POST /veranstaltungen/{id}/zahlvorgaenge`
|
||
|
||
- [ ] **B-3** | ÖTO-Validierung serverseitig absichern
|
||
- [ ] Spezifikation von 📜 Rulebook B-2 umsetzen (wartet auf Übergabe)
|
||
- [ ] OEPS-Nummern-Format, FEI-ID-Format validieren
|
||
- [ ] Lizenzklassen-Validierung (R1–R4, LZF)
|
||
- [ ] Altersklassen-Kompatibilität Pferd × Bewerb
|
||
- [ ] Abteilungs-Zwangsteilung CSN-C-NEU (≤95cm: ohne/mit Lizenz; ≥100cm: R1/R2+)
|
||
|
||
---
|
||
|
||
## 🟡 Sprint C — Priorität 3 (nächste Woche)
|
||
|
||
- [ ] **C-1** | Nennungs-Service (Grundstruktur)
|
||
- [ ] Tabelle `nennungen` anlegen (FK → `abteilung_id`, Status-Automat)
|
||
- [ ] `NennungsService`: Erstellen, Prüfen, Bestätigen, Ablehnen
|
||
- [ ] Nennungs-Workflow-Endpunkte
|
||
|
||
- [ ] **C-2** | Stammdaten-Seeder
|
||
- [ ] Initiale Testdaten (Reiter, Pferde, Vereine) für Entwicklungsumgebung
|
||
- [ ] Seed-Skript in `config/scripts/` ablegen
|
||
|
||
- [ ] **C-3** | LAN-Sync-Endpunkte (ADR-0022 ✅ freigegeben)
|
||
- [ ] `SyncEvent`-Datenmodell in `core`-Modul definieren (KMP-shared, Phase 1)
|
||
- [ ] SQLDelight-Tabellen `sync_events`, `sync_snapshots` anlegen
|
||
- [ ] `LamportClock`-Implementierung (thread-safe, persistent)
|
||
- [ ] WebSocket-Server auf Meldestelle-Desk (Ktor): HELLO/HELLO_ACK/SYNC_DELTA/SYNC_PUSH
|
||
- [ ] mDNS-Discovery-Service integrieren (gemäß ADR-0020)
|
||
- [ ] Domänen-Mastership-Validierung im Event-Handler
|
||
- [ ] Reconnect-Logik mit Delta-Sync (`lastKnownSeq`)
|
||
|
||
---
|
||
|
||
## 📌 Abhängigkeiten
|
||
|
||
| Warte auf | Von wem | Betrifft |
|
||
|----------------------------------------|-------------|-----------------|
|
||
| Rulebook B-2 Spezifikation | 📜 Rulebook | A-3, B-3 |
|
||
| ~~ADR-0022 (LAN-Sync)~~ | ✅ Erledigt | C-3 freigegeben |
|
||
| QA: E2E-Test-Umgebung Port-Binding Fix | 🧐 QA | A-1 @Disabled |
|
||
|
||
---
|
||
|
||
## 💡 Empfehlungen (nach Priorität)
|
||
|
||
1. **A-1 Rollout** — Tenant-Isolation auf alle verbleibenden Services ausweiten; `@Disabled` E2E-Test re-enablen sobald
|
||
Jackson-Fix vorliegt.
|
||
2. **B-1 Reiter/Pferde/Vereine/Funktionäre** — Frontend wartet auf diese Endpunkte für ViewModel-Anbindung.
|
||
3. **B-3 ÖTO-Validierung** — Erst nach Rulebook-Übergabe starten, aber Grundstruktur (Validator-Interface) schon
|
||
vorbereiten.
|