Update roadmaps to reflect completion of billing, entries integration, and ZNS importer tasks.
This commit is contained in:
@@ -1,72 +1,27 @@
|
||||
# 👷 [Backend Developer] — Zwischenstand & Roadmap
|
||||
|
||||
> **Stand:** 3. April 2026
|
||||
> **Stand:** 10. April 2026
|
||||
> **Rolle:** Spring Boot / Ktor, Kotlin, SQL, API-Design, Datenbankschema, Services
|
||||
|
||||
---
|
||||
|
||||
## ✅ Erledigte Sprints
|
||||
|
||||
### Sprint A (Teilweise) — Abgeschlossene Punkte
|
||||
### Sprint A — Abgeschlossene Punkte
|
||||
|
||||
- [x] **A-1** | Tenant-Isolation vollständig ausrollen
|
||||
- [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
|
||||
- [x] **A-3** | Validierungs-Grundlage: Turnierkategorie-Limits
|
||||
|
||||
### Sprint B — Abgeschlossene Punkte
|
||||
|
||||
- [x] **B-1** | CRUD-Endpunkte (Reiter, Pferde, Vereine, Funktionäre)
|
||||
- [x] **B-2** | Kassa-Service (Teilnehmer-Konten & Buchungen v1)
|
||||
- [x] **B-3** | ÖTO-Validierung (OEPS/FEI-ID, Lizenzen)
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Sprint A — Offen (höchste Priorität)
|
||||
|
||||
- [x] **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
|
||||
- [x] **Rollout auf weitere Services** — masterdata/events/zns-import nutzen kein eigenes Tenant-Schema (
|
||||
Single-Tenant-Architektur per ADR-0021 korrekt; nur Entries-Service ist Multi-Tenant)
|
||||
- [x] E2E-Isolationstest re-enabled (`@Disabled` entfernt; `EntriesIsolationIntegrationTest` aktiv)
|
||||
- [x] E2E-Test-Bugfix: `springdoc` von `3.0.0` → `2.8.9` (ClassNotFoundException behoben); `@ActiveProfiles("test")` +
|
||||
`TestExposedConfiguration` ergänzt (Exposed DB-Connect im Test-Profil); alle Tests grün ✅
|
||||
|
||||
- [ ] **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)
|
||||
|
||||
- [x] **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
|
||||
- [x] **`Reiter`**: GET (Liste/Suche/Einzeln/Satznummer), POST, PUT, DELETE — Filter: `lizenzKlasse`, `vereinId`
|
||||
- [x] **`Pferde`**: GET (Liste/Suche/Einzeln/Lebensnummer), POST, PUT, DELETE — Filter: `jahrgang`, `besitzerId`
|
||||
- [x] **`Vereine`**: GET (Liste/Suche/Einzeln/Nummer), POST, PUT, DELETE — Filter: `verband` (Bundesland)
|
||||
- [x] **`Funktionäre`**: GET (Liste/Suche/Einzeln/Richternummer), POST, PUT, DELETE — 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)
|
||||
## 🔴 Sprint C — Offen (höchste Priorität)
|
||||
|
||||
- [ ] **C-1** | Nennungs-Service (Grundstruktur)
|
||||
- [ ] Tabelle `nennungen` anlegen (FK → `abteilung_id`, Status-Automat)
|
||||
|
||||
Reference in New Issue
Block a user