- **Billing Domain:**
- Added Kotlin Multiplatform project with domain models (`TeilnehmerKonto`, `Buchung`, `BuchungsTyp`) to represent billing entities.
- Defined serialization strategies using `InstantSerializer`.
- **Service Implementation:**
- Introduced `BillingServiceApplication` as the main entry point for the billing service.
- Developed `TeilnehmerKontoService` for account management and transactions.
- **Persistence Layer:**
- Implemented Exposed repositories (`ExposedTeilnehmerKontoRepository`, `ExposedBillingRepositories`) for database interaction.
- Added table definitions (`TeilnehmerKontoTable`, `BuchungTable`) with indexes for efficient querying.
- **Build Configuration:**
- Setup Gradle build files for billing domain and service modules with dependencies for Kotlin, Serialization, Spring Boot, and Exposed.
- **Test Additions:**
- Extended ZNS importer tests with new scenarios for qualification parsing
- Added `backend.infrastructure.persistence` to `@SpringBootApplication` scanBasePackages in `IdentityServiceApplication` and included it as a dependency in `build.gradle.kts`.
- Cleaned up unused imports in several files, including `Screens.kt`, `VeranstaltungScreens.kt`, and `TurnierAbrechnungTab.kt`.
- Updated `PingJpaEntity` to include `@Column` annotation for `createdAt` field.
- Refactored import ordering in `ZnsImportServiceTest` and `DatabaseFactory`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted obsolete modules related to horses, clubs, officials, and persons services, including their configurations, build files, and database provisioning scripts.
- Cleaned up associated references in the project structure (e.g., `settings.gradle.kts`).
- Removed unused database tables and Spring beans related to these domains.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Created `ZnsImportService` to handle uploading, parsing, and persisting ZNS data from legacy `.zip` files.
- Introduced corresponding test cases in `ZnsImportServiceTest` for handling edge cases including imports and updates.
- Added REST controller `ZnsImportController` for initiating import jobs and retrieving their status.
- Defined `ZnsImportResult` data structure for reporting results of import operations.
- Established database configuration specific to ZNS importer for development profile.
- Updated utility libraries with `FixedWidthLineReader` for fixed-width string parsing.
- Refactored architecture by placing parser logic in `core:zns-parser` for reuse across backend and Compose Desktop app.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>