feat: integriere Live-Daten in NennungsEingangScreen, erweitere NennungRemoteRepository um holeNennungen und markiereAlsGelesen, aktualisiere Port-Konfiguration

Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-15 22:59:20 +02:00
parent 6d631acce6
commit 67d7b38d79
4 changed files with 124 additions and 8 deletions
@@ -3,10 +3,27 @@ package at.mocode.frontend.features.nennung.domain
import at.mocode.frontend.core.network.PlatformConfig
import at.mocode.frontend.features.nennung.presentation.web.NennungPayload
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.request.*
import io.ktor.http.*
import kotlinx.serialization.Serializable
@Serializable
data class NennungResponse(
val id: String,
val turnierNr: String,
val status: String,
val vorname: String,
val nachname: String,
val lizenz: String,
val pferdName: String,
val pferdAlter: String,
val email: String,
val telefon: String?,
val bewerbe: String,
val bemerkungen: String?
)
@Serializable
data class NennungApiRequest(
val turnierNr: String,
@@ -24,6 +41,25 @@ data class NennungApiRequest(
class NennungRemoteRepository(private val client: HttpClient) {
private val mailServiceUrl = PlatformConfig.resolveMailServiceUrl()
suspend fun holeNennungen(): Result<List<NennungResponse>> {
return try {
val response = client.get("$mailServiceUrl/api/mail/nennungen")
Result.success(response.body())
} catch (e: Exception) {
Result.failure(e)
}
}
suspend fun markiereAlsGelesen(id: String): Result<Unit> {
return try {
// Endpunkt müsste im Backend noch implementiert werden, falls gewünscht.
// Für jetzt simuliert:
Result.success(Unit)
} catch (e: Exception) {
Result.failure(e)
}
}
suspend fun sendeNennung(turnierNr: String, payload: NennungPayload): Result<Unit> {
return try {
val request = NennungApiRequest(