feat(api): extend Masterdata API with CRUD endpoints for Pferde and Funktionäre

- Added full CRUD support for Pferde (list, search, get by ID, create, update, delete) with filters for Jahrgang and BesitzerId.
- Introduced FunktionaerController, offering CRUD operations for Funktionäre (list, search, get by ID, create, update, delete) with filtering by Rolle.
- Enhanced HorseController and ReiterController with updated data models, additional request validation, and detailed filtering options.
- Extended backend configurations to register new controllers and route handlers.
- Updated roadmaps and progress documents to reflect completed Sprint B-1 tasks.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-03 10:12:27 +02:00
parent 2dd5453365
commit 2270f9602f
11 changed files with 811 additions and 83 deletions
@@ -34,6 +34,7 @@ class KtorServerConfiguration {
reiterController: ReiterController,
horseController: HorseController,
vereinController: VereinController,
funktionaerController: FunktionaerController,
regulationController: RegulationController
): EmbeddedServer<NettyApplicationEngine, NettyApplicationEngine.Configuration> {
log.info("Starting Masterdata Ktor server on port {}", port)
@@ -46,6 +47,7 @@ class KtorServerConfiguration {
reiterController = reiterController,
horseController = horseController,
vereinController = vereinController,
funktionaerController = funktionaerController,
regulationController = regulationController,
meterRegistry = meterRegistry
)
@@ -155,6 +155,11 @@ class MasterdataConfiguration {
return VereinController(vereinRepository)
}
@Bean
fun funktionaerController(funktionaerRepository: FunktionaerRepository): FunktionaerController {
return FunktionaerController(funktionaerRepository)
}
@Bean
fun regulationController(regulationRepository: RegulationRepository): RegulationController {
return RegulationController(regulationRepository)