Standardize and refactor master data infrastructure: rename tables for plural consistency, remove unused entity tables, improve ZNS import mappings with enriched license properties, introduce Altersklasse domain model, activate Consul service discovery, and update application configuration accordingly.

This commit is contained in:
2026-04-06 19:48:15 +02:00
parent bc13a58a14
commit abaaeddaaf
53 changed files with 1575 additions and 333 deletions
@@ -1,11 +1,6 @@
package at.mocode.zns.import.service
import at.mocode.masterdata.domain.repository.*
import at.mocode.masterdata.infrastructure.persistence.*
import at.mocode.masterdata.infrastructure.persistence.funktionaer.FunktionaerExposedRepository
import at.mocode.masterdata.infrastructure.persistence.pferd.HorseExposedRepository
import at.mocode.masterdata.infrastructure.persistence.reiter.ReiterExposedRepository
import at.mocode.masterdata.infrastructure.persistence.verein.VereinExposedRepository
import at.mocode.zns.importer.ZnsImportService
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@@ -14,27 +9,6 @@ import org.springframework.context.annotation.Bean
@SpringBootApplication
class ZnsImportServiceApplication {
// Manuelle Bean-Definitionen für die Repositories, da diese in der Infrastruktur
// keine @Repository-Annotationen haben und wir MasterdataConfiguration nicht importieren wollen.
@Bean
fun landRepository(): LandRepository = LandRepositoryImpl()
@Bean
fun bundeslandRepository(): BundeslandRepository = BundeslandRepositoryImpl()
@Bean
fun vereinRepository(): VereinRepository = VereinExposedRepository()
@Bean
fun reiterRepository(): ReiterRepository = ReiterExposedRepository()
@Bean
fun horseRepository(): HorseRepository = HorseExposedRepository()
@Bean
fun funktionaerRepository(): FunktionaerRepository = FunktionaerExposedRepository()
@Bean
fun znsImportService(
vereinRepository: VereinRepository,
@@ -42,7 +16,9 @@ class ZnsImportServiceApplication {
horseRepository: HorseRepository,
funktionaerRepository: FunktionaerRepository,
landRepository: LandRepository,
bundeslandRepository: BundeslandRepository
bundeslandRepository: BundeslandRepository,
licenseRepository: MasterdataLicenseRepository,
altersklassenRepository: AltersklassenRepository
): ZnsImportService {
return ZnsImportService(
vereinRepository,
@@ -50,7 +26,9 @@ class ZnsImportServiceApplication {
horseRepository,
funktionaerRepository,
landRepository,
bundeslandRepository
bundeslandRepository,
licenseRepository,
altersklassenRepository
)
}
}
@@ -1,6 +1,9 @@
package at.mocode.zns.import.service.config
import at.mocode.masterdata.domain.repository.*
import at.mocode.masterdata.infrastructure.persistence.*
import at.mocode.masterdata.infrastructure.persistence.reiter.AltersklassenExposedRepository
import at.mocode.masterdata.infrastructure.persistence.reiter.MasterdataLicenseExposedRepository
import at.mocode.masterdata.infrastructure.persistence.funktionaer.FunktionaerExposedRepository
import at.mocode.masterdata.infrastructure.persistence.pferd.HorseExposedRepository
import at.mocode.masterdata.infrastructure.persistence.reiter.ReiterExposedRepository
@@ -11,6 +14,12 @@ import org.springframework.context.annotation.Configuration
@Configuration
class RepositoryConfiguration {
@Bean
fun landRepository(): LandRepository = LandRepositoryImpl()
@Bean
fun bundeslandRepository(): BundeslandRepository = BundeslandRepositoryImpl()
@Bean
fun vereinRepository(): VereinRepository = VereinExposedRepository()
@@ -22,4 +31,10 @@ class RepositoryConfiguration {
@Bean
fun funktionaerRepository(): FunktionaerRepository = FunktionaerExposedRepository()
@Bean
fun licenseRepository(): MasterdataLicenseRepository = MasterdataLicenseExposedRepository()
@Bean
fun altersklassenRepository(): AltersklassenRepository = AltersklassenExposedRepository()
}
@@ -2,9 +2,9 @@ package at.mocode.zns.import.service.config
import at.mocode.masterdata.infrastructure.persistence.funktionaer.FunktionaerQualifikationTable
import at.mocode.masterdata.infrastructure.persistence.funktionaer.FunktionaerTable
import at.mocode.masterdata.infrastructure.persistence.funktionaer.QualifikationMasterTable
import at.mocode.masterdata.infrastructure.persistence.funktionaer.FunktionaersQualifikationenTable
import at.mocode.masterdata.infrastructure.persistence.pferd.HorseTable
import at.mocode.masterdata.infrastructure.persistence.reiter.ReiterTable
import at.mocode.masterdata.infrastructure.persistence.reiter.*
import at.mocode.masterdata.infrastructure.persistence.verein.VereinTable
import jakarta.annotation.PostConstruct
import org.jetbrains.exposed.v1.jdbc.Database
@@ -34,8 +34,12 @@ class ZnsImportDatabaseConfiguration(
ReiterTable,
HorseTable,
FunktionaerTable,
QualifikationMasterTable,
FunktionaerQualifikationTable
FunktionaersQualifikationenTable,
FunktionaerQualifikationTable,
ReitLizenzenTable,
FahrLizenzenTable,
StartkartenTable,
ReiterLizenzenZuordnungTable
)
statements.forEach { exec(it) }
log.info("Datenbank-Schema erfolgreich initialisiert ({} Statements)", statements.size)