Integrate qualification master data (QualifikationMasterTable) with functionary models, update schema and repository logic, refactor satzID references, and harmonize database migration (V010).

This commit is contained in:
2026-04-06 13:59:14 +02:00
parent c35869f8ee
commit 9237882437
7 changed files with 64 additions and 21 deletions
@@ -19,9 +19,12 @@ import kotlin.uuid.Uuid
*/
class FunktionaerController(private val funktionaerRepository: FunktionaerRepository) {
/**
* DTO für die API-Response eines Funktionärs.
*/
data class FunktionaerDto(
val funktionaerId: String,
val satzID: String,
val satzId: String,
val satzNummer: Int,
val name: String? = null,
val qualifikationen: List<String> = emptyList(),
@@ -31,9 +34,12 @@ class FunktionaerController(private val funktionaerRepository: FunktionaerReposi
val updatedAt: Instant
)
/**
* Request-Body zum Anlegen eines neuen Funktionärs.
*/
@Serializable
data class FunktionaerCreateRequest(
val satzID: String,
val satzId: String,
val satzNummer: Int,
val name: String? = null,
val qualifikationen: List<String> = emptyList(),
@@ -82,12 +88,12 @@ class FunktionaerController(private val funktionaerRepository: FunktionaerReposi
}
/**
* GET /funktionaer/satz/{satzID}/{satzNummer} — Sucht einen Funktionär nach Satz-ID und Nummer.
* GET /funktionaer/satz/{satzId}/{satzNummer} — Sucht einen Funktionär nach Satz-ID und Nummer.
*/
get("/satz/{satzID}/{satzNummer}") {
val satzID = call.parameters["satzID"] ?: return@get call.respond(HttpStatusCode.BadRequest)
get("/satz/{satzId}/{satzNummer}") {
val satzId = call.parameters["satzId"] ?: return@get call.respond(HttpStatusCode.BadRequest)
val satzNummer = call.parameters["satzNummer"]?.toIntOrNull() ?: return@get call.respond(HttpStatusCode.BadRequest)
val funktionaer = funktionaerRepository.findBySatz(satzID, satzNummer)
val funktionaer = funktionaerRepository.findBySatz(satzId, satzNummer)
if (funktionaer != null) call.respond(funktionaer.toDto()) else call.respond(HttpStatusCode.NotFound)
}
@@ -97,7 +103,7 @@ class FunktionaerController(private val funktionaerRepository: FunktionaerReposi
post {
val req = call.receive<FunktionaerCreateRequest>()
val domFunktionaer = Funktionaer(
satzId = req.satzID,
satzId = req.satzId,
satzNummer = req.satzNummer,
name = req.name,
qualifikationen = req.qualifikationen,
@@ -141,7 +147,7 @@ class FunktionaerController(private val funktionaerRepository: FunktionaerReposi
private fun Funktionaer.toDto() = FunktionaerDto(
funktionaerId = funktionaerId.toString(),
satzID = satzId,
satzId = satzId,
satzNummer = satzNummer,
name = name,
qualifikationen = qualifikationen,