chore: integriere Logo-Upload und Vorschau in Veranstalter-Wizard, verbessere Navigationslogik und erweitere Datenmodelle

Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-21 15:16:01 +02:00
parent 544fbf792c
commit 7cfdd06d1e
14 changed files with 306 additions and 59 deletions
@@ -53,7 +53,7 @@ sealed class AppScreen(val route: String) {
AppScreen("/veranstalter/$veranstalterId/event/$veranstaltungId")
data class EventDetail(val id: Long) : AppScreen("/event/$id")
data object EventNeu : AppScreen("/event/neu")
data class EventNeu(val veranstalterId: Long? = null) : AppScreen("/event/neu")
data class TurnierDetail(val veranstaltungId: Long, val turnierId: Long) :
AppScreen("/event/$veranstaltungId/turnier/$turnierId")
@@ -84,7 +84,7 @@ sealed class AppScreen(val route: String) {
private val FUNKTIONAER_PROFIL = Regex("/funktionaere/profil/(\\d+)$")
private val VERANSTALTER_PROFIL = Regex("/veranstalter/profil/(\\d+)$")
private val VERANSTALTER_PROFIL_EDIT = Regex("/veranstalter/profil/(\\d+)/edit$")
// private val VERANSTALTUNG_PROFIL_LEGACY = Regex("/veranstaltung/profil/(\\d+)$")
private val EVENT_NEU = Regex("/event/neu(\\?veranstalterId=(\\d+))?$")
fun fromRoute(route: String): AppScreen {
return when (route) {
@@ -107,12 +107,16 @@ sealed class AppScreen(val route: String) {
"/funktionaere/verwaltung" -> FunktionaerVerwaltung
"/veranstalter/verwaltung" -> VeranstalterVerwaltung
"/veranstalter/auswahl" -> VeranstalterAuswahl
"/event/neu" -> EventNeu
"/event/neu" -> EventNeu()
"/meisterschaften" -> Meisterschaften
"/cups" -> Cups
"/stammdaten/import" -> StammdatenImport
"/nennungs-eingang" -> NennungsEingang
else -> {
EVENT_NEU.matchEntire(route)?.let { match ->
val vId = match.groups[2]?.value?.toLong()
return EventNeu(vId)
}
BILLING.matchEntire(route)?.destructured?.let { (vId, tId) ->
return Billing(vId.toLong(), tId.toLong())
}