feat(billing): implement REST API, database config, and tests for billing service
- **REST API:** Added `BillingController` with endpoints for managing participant accounts and transactions, including history retrieval. - **Database Configuration:** Introduced `BillingDatabaseConfiguration` to initialize database schema using Exposed. - **Testing:** Added integration tests for `TeilnehmerKontoService` using H2 in-memory database.
This commit is contained in:
@@ -12,17 +12,19 @@ last_update: 2026-04-10
|
||||
In dieser Session wurde das Fundament für den Kassa-Service (`billing-context`) gelegt und die Robustheit des ZNS-Importers durch zusätzliche Integrationstests für Funktionäre gesteigert.
|
||||
|
||||
### Wichtigste Ergebnisse
|
||||
1. **Billing Service Initialisierung:**
|
||||
* `billing-service` Modul erstellt und konfiguriert.
|
||||
* Exposed-Tabellendefinitionen für `TeilnehmerKonto` und `Buchung` implementiert.
|
||||
* Repository-Schnittstellen (Domain) und Exposed-Implementierungen (Service) erstellt.
|
||||
* `TeilnehmerKontoService` mit Basis-Logik (Kontoerstellung & Buchungen) implementiert.
|
||||
1. **Billing Service Initialisierung & API:**
|
||||
* `billing-service` Modul erstellt, konfiguriert und mit `core-domain` (Serialisierung) verknüpft.
|
||||
* Exposed-Tabellendefinitionen (v1) für `TeilnehmerKonto` und `Buchung` implementiert.
|
||||
* `BillingController` mit REST-Endpunkten für Konten, Buchungen und Historie erstellt.
|
||||
* `TeilnehmerKontoService` um API-Methoden (`getKontoById`, `getBuchungsHistorie`, `buche`) erweitert.
|
||||
* Integrationstests (`TeilnehmerKontoServiceTest`) erfolgreich mit H2-In-Memory-DB durchgeführt.
|
||||
* **OpenAPI-Dokumentation:** `documentation.yaml` für `billing-service` erstellt und CRUD-Endpunkte für Konten und Buchungen dokumentiert.
|
||||
2. **ZNS-Importer Hardening:**
|
||||
* Erweiterung von `ZnsImportServiceTest` um Tests für mehrfache Qualifikationen und die Update-Strategie (Delete+Insert) bei Funktionären (`RICHT01.dat`).
|
||||
* Alle 11 Integrationstests sind erfolgreich durchgelaufen.
|
||||
3. **Kompilations-Fixes (Billing):**
|
||||
* `billing-service` auf korrekte Exposed DSL Syntax (`selectAll().where { ... }`) umgestellt.
|
||||
* Explizite `transaction { ... }` Blöcke in `TeilnehmerKontoService` eingeführt (da `@Transactional` ohne JPA-Starter nicht verfügbar war).
|
||||
* Explizite `transaction { ... }` Blöcke in `TeilnehmerKontoService` eingeführt.
|
||||
* Typ-Konsistenz für `Instant` (kotlin.time) in `billing-domain` zur Übereinstimmung mit `core-domain` hergestellt.
|
||||
|
||||
### Betroffene Dateien
|
||||
@@ -30,9 +32,9 @@ In dieser Session wurde das Fundament für den Kassa-Service (`billing-context`)
|
||||
- `backend/infrastructure/zns-importer/src/test/kotlin/at/mocode/zns/importer/ZnsImportServiceTest.kt`
|
||||
|
||||
### Nächste Schritte
|
||||
- Implementierung der REST-API für den Billing-Service (OpenAPI-First).
|
||||
- Integration des Billing-Services in den `entries-context` (z.B. automatische Buchung von Nenngebühren).
|
||||
- UI-Anbindung im Frontend für Kontenübersicht und manuelle Buchungen.
|
||||
- Erweiterung der Abrechnungs-Logik (z.B. Rechnungserstellung als PDF).
|
||||
|
||||
---
|
||||
*Co-authored-by: Junie <junie@jetbrains.com>*
|
||||
|
||||
Reference in New Issue
Block a user