Link Funktionaer to Reiter via reiter_id, implement findByName in ReiterRepository, optimize ZNS import for functionary-reiter matching, remove redundant fields from FunktionaerTable, and add database migration V011.
This commit is contained in:
+3
@@ -30,6 +30,7 @@ class FunktionaerExposedRepository : FunktionaerRepository {
|
||||
return Funktionaer(
|
||||
funktionaerId = row[FunktionaerTable.id],
|
||||
personId = row[FunktionaerTable.personId],
|
||||
reiterId = row[FunktionaerTable.reiterId],
|
||||
satzId = row[FunktionaerTable.satzId],
|
||||
satzNummer = row[FunktionaerTable.satzNummer] ?: 0,
|
||||
name = row[FunktionaerTable.name],
|
||||
@@ -84,6 +85,7 @@ class FunktionaerExposedRepository : FunktionaerRepository {
|
||||
if (exists) {
|
||||
FunktionaerTable.update({ FunktionaerTable.id eq funktionaer.funktionaerId }) {
|
||||
it[personId] = funktionaer.personId
|
||||
it[reiterId] = funktionaer.reiterId
|
||||
it[satzId] = funktionaer.satzId
|
||||
it[satzNummer] = funktionaer.satzNummer
|
||||
it[name] = funktionaer.name
|
||||
@@ -96,6 +98,7 @@ class FunktionaerExposedRepository : FunktionaerRepository {
|
||||
FunktionaerTable.insert {
|
||||
it[id] = funktionaer.funktionaerId
|
||||
it[personId] = funktionaer.personId
|
||||
it[reiterId] = funktionaer.reiterId
|
||||
it[satzId] = funktionaer.satzId
|
||||
it[satzNummer] = funktionaer.satzNummer
|
||||
it[name] = funktionaer.name
|
||||
|
||||
+2
-13
@@ -2,6 +2,7 @@
|
||||
|
||||
package at.mocode.masterdata.infrastructure.persistence.funktionaer
|
||||
|
||||
import at.mocode.masterdata.infrastructure.persistence.reiter.ReiterTable
|
||||
import org.jetbrains.exposed.v1.core.Table
|
||||
import org.jetbrains.exposed.v1.datetime.CurrentTimestamp
|
||||
import org.jetbrains.exposed.v1.datetime.timestamp
|
||||
@@ -15,6 +16,7 @@ import kotlin.uuid.ExperimentalUuidApi
|
||||
object FunktionaerTable : Table("funktionaer") {
|
||||
val id = uuid("funktionaer_id")
|
||||
val personId = uuid("person_id").nullable()
|
||||
val reiterId = uuid("reiter_id").references(ReiterTable.id).nullable()
|
||||
|
||||
// === ZNS.zip RICHT01.DAT (Zentrales Nennungssystem) === ANFANG ===
|
||||
|
||||
@@ -29,19 +31,6 @@ object FunktionaerTable : Table("funktionaer") {
|
||||
|
||||
// === ZNS.zip RICHT01.DAT === ENDE ===
|
||||
|
||||
// Kontakt
|
||||
val imageUrl = varchar("image_url", 255).nullable()
|
||||
val email = varchar("email", 200).nullable()
|
||||
val telefon = varchar("telefon", 50).nullable()
|
||||
val website = varchar("website", 255).nullable()
|
||||
|
||||
// Adresse
|
||||
val strasse = varchar("strasse", 200).nullable()
|
||||
val hausnummer = varchar("hausnummer", 10).nullable()
|
||||
val plz = varchar("plz", 10).nullable()
|
||||
val ort = varchar("ort", 100).nullable()
|
||||
val bundesland = varchar("bundesland", 100).nullable()
|
||||
|
||||
// Status & Verwaltung
|
||||
val istAktiv = bool("ist_aktiv").default(true)
|
||||
val bemerkungen = text("bemerkungen").nullable()
|
||||
|
||||
+11
@@ -8,7 +8,9 @@ import at.mocode.core.utils.database.DatabaseFactory
|
||||
import at.mocode.masterdata.domain.model.Reiter
|
||||
import at.mocode.masterdata.domain.repository.ReiterRepository
|
||||
import org.jetbrains.exposed.v1.core.ResultRow
|
||||
import org.jetbrains.exposed.v1.core.and
|
||||
import org.jetbrains.exposed.v1.core.eq
|
||||
import org.jetbrains.exposed.v1.core.lowerCase
|
||||
import org.jetbrains.exposed.v1.jdbc.*
|
||||
import kotlin.uuid.ExperimentalUuidApi
|
||||
import kotlin.uuid.Uuid
|
||||
@@ -63,6 +65,15 @@ class ReiterExposedRepository : ReiterRepository {
|
||||
.singleOrNull()
|
||||
}
|
||||
|
||||
override suspend fun findByName(vorname: String, nachname: String): List<Reiter> = DatabaseFactory.dbQuery {
|
||||
ReiterTable.selectAll()
|
||||
.where {
|
||||
(ReiterTable.vorname.lowerCase() eq vorname.lowercase()) and
|
||||
(ReiterTable.nachname.lowerCase() eq nachname.lowercase())
|
||||
}
|
||||
.map { row -> rowToDomReiter(row) }
|
||||
}
|
||||
|
||||
override suspend fun findAll(limit: Int, offset: Int): List<Reiter> = DatabaseFactory.dbQuery {
|
||||
ReiterTable.selectAll()
|
||||
.limit(limit).offset(offset.toLong())
|
||||
|
||||
Reference in New Issue
Block a user