Remove domain models and services related to Abteilung, AbteilungsRegelService, and Bewerb: cleanup unnecessary entities, validation logic, and tests across backend modules.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Curator Log - 13.04.2026
|
||||
|
||||
## 🛠️ Build-Inkonsistenz & KMP-Fixes
|
||||
|
||||
### Problem-Analyse
|
||||
- **Build-Fehler im `zns-parser`:** Das Multiplatform-Modul versuchte, das JVM-only Modul `masterdata-infrastructure` zu laden. Dies führte zu Inkompatibilitäten beim Auflösen der JS/Wasm-Varianten.
|
||||
- **Build-Fehler im `billing-domain`:** Ähnliches Problem wie oben; das Modul versuchte `platform-testing` (JVM-only) im `commonTest` zu nutzen.
|
||||
- **"Unresolved reference" im `entries-service`:** Das Modul `entries-domain` war in Gradle als KMP konfiguriert, die Quelldateien lagen jedoch in `src/main/kotlin` statt `src/commonMain/kotlin`. Dadurch wurden leere Artefakte generiert.
|
||||
- **"Unresolved reference: Syncable" im `ping-feature`:** `PingEvent` im `ping-api` implementiert `Syncable` (aus `core-domain`), aber `ping-api` hat `core-domain` nur als `implementation` eingebunden. Dadurch war `Syncable` für Konsumenten von `ping-api` (wie `ping-feature`) nicht sichtbar.
|
||||
|
||||
- **Fehlendes `actual` im `turnier-feature`:** `turnierFeatureModule` war als `expect` in `commonMain` definiert, hatte aber nur eine `actual` Implementierung für `jvmMain`. Dies verhinderte Kompilierungen für JS/WasmJs (Web-Frontend).
|
||||
- **Abhängigkeitsfehler im `verein-feature`:** Die Abhängigkeiten (Compose, KMP-Bundles, etc.) waren fälschlicherweise in `jvmMain` statt `commonMain` deklariert, was JS/WasmJs-Builds verhinderte.
|
||||
|
||||
### Durchgeführte Änderungen
|
||||
- **Backend (ZNS Parser):** Inkompatible Abhängigkeit zu `masterdata-infrastructure` entfernt. Das Parsing nutzt nun ausschließlich das `masterdata-domain` Modul.
|
||||
- **Backend (Billing Domain):** Abhängigkeit zu `platform-testing` von `commonTest` nach `jvmTest` verschoben und `wasmJs()` Target hinzugefügt.
|
||||
- **Backend (Entries Domain):** Verzeichnisstruktur auf KMP-Standard (`commonMain` / `commonTest`) korrigiert.
|
||||
- **Backend (Entries Domain):** `wasmJs()` Target explizit hinzugefügt, um volle Kompatibilität mit dem Web-Frontend sicherzustellen.
|
||||
- **Contracts (Ping API):** Abhängigkeit zu `projects.core.coreDomain` von `implementation` auf `api` geändert, um das `Syncable` Interface für Konsumenten transitiv verfügbar zu machen.
|
||||
- **Frontend (Local DB):** `actual class DatabaseDriverFactory` für `wasmJs` hinzugefügt und notwendige SQLDelight Wasm-Abhängigkeiten in `build.gradle.kts` ergänzt.
|
||||
- **Frontend (Verein Feature):** Abhängigkeiten in `build.gradle.kts` von `jvmMain` in `commonMain` verschoben, um plattformübergreifende Verfügbarkeit sicherzustellen.
|
||||
- **Infrastruktur:** `@OptIn(ExperimentalUuidApi)` in allen betroffenen Modulen konsolidiert.
|
||||
|
||||
### Verifizierung
|
||||
- `NennungBillingIntegrationTest` erfolgreich ausgeführt (3/3 bestanden).
|
||||
- `entries-service` baut fehlerfrei (`compileKotlin`).
|
||||
- `zns-parser` baut für JVM/JS/Wasm (`compileKotlinJvm`, etc.).
|
||||
- `meldestelle-web` baut erfolgreich (`compileKotlinWasmJs`).
|
||||
- `billing-domain` baut erfolgreich für JVM/JS/WasmJs.
|
||||
|
||||
### Status
|
||||
Die Build-Pipeline ist wieder stabil. Das Billing-Feature und die E-Mail-Bestätigung sind vollständig integriert und testbar.
|
||||
@@ -13,15 +13,22 @@ Die Phase 12 (Abrechnung & Billing) wurde um die zentrale Funktion der PDF-Rechn
|
||||
- **ApiRoutes:** Neue Route `ApiRoutes.Billing.rechnung(kontoId)` definiert.
|
||||
- **BillingViewModel:** State um `pdfData` erweitert. Logik zum asynchronen Laden und Zwischenspeichern des PDF-Bytes (für die spätere Anzeige/Druck) implementiert.
|
||||
- **BillingScreen:** "Rechnung"-Button (PDF-Icon) neben dem Buchungs-Button eingefügt. Integration eines Preview-Dialogs zur Bestätigung des PDF-Eingangs.
|
||||
- **Web-Integration:** `billing-feature` in `meldestelle-web` (WasmJS) integriert. `NennungWebFormular` um Konto-Laden und Rechnungs-Download nach erfolgreicher Nennung erweitert.
|
||||
|
||||
## 🗺️ Roadmap Progress
|
||||
- [x] **Rechnungserstellung:** In `MASTER_ROADMAP.md` als abgeschlossen markiert. ✓
|
||||
- [ ] **Offene Posten & Buchungs-Logik:** Verbleiben als nächste Prioritäten in Phase 12.
|
||||
- [x] **Offene Posten:** Logik und UI-Filter implementiert. ✓
|
||||
- [ ] **Buchungs-Logik:** Verbleiben als nächste Prioritäten in Phase 12.
|
||||
|
||||
## 🧹 Cleanup & Maintenance
|
||||
- `libs.versions.toml` konsolidiert.
|
||||
- `FakeBillingRepository` für Offline-Tests aktualisiert.
|
||||
- **Hotfix:** Kompilierfehler in `PdfService.kt` behoben (`cell.padding` durch `cell.setPadding(5f)` ersetzt).
|
||||
- **Hotfix:** Fehlende `index.html` und Ressourcen-Konfiguration für `meldestelle-web` (WasmJS) hinzugefügt, um Verzeichnisauflistung im Browser zu beheben.
|
||||
- **Hotfix:** Behebung des `NotSupportedError: Failed to execute 'attachShadow' on 'Element'` im Web-Frontend durch Austausch des `<canvas>` gegen ein `<div>` als Compose-Container in `index.html`.
|
||||
- **Update:** `TeilnehmerKontoRepository` um `findOffenePosten` erweitert.
|
||||
- **Mail-Integration:** `MailService` im `entries-service` implementiert (Simulation & Spring Boot Mail Support). `NennungEinreichenRequest` um Email-Feld erweitert. Bestätigungs-Emails werden nun nach erfolgreicher Nennung getriggert.
|
||||
- **Web-Update:** `NennungWebFormular` im Web-Frontend um ein Email-Eingabefeld zur Erfassung der Bestätigungsadresse ergänzt.
|
||||
|
||||
---
|
||||
*Log erstellt am 13.04.2026 durch Junie (Curator Mode).*
|
||||
|
||||
Reference in New Issue
Block a user