Remove nennung-feature (domain models, DI modules, and UI components).

This commit is contained in:
2026-04-11 13:04:20 +02:00
parent 84128432e3
commit eda18a8ff2
22 changed files with 435 additions and 60 deletions
@@ -52,17 +52,19 @@ kotlin {
implementation(projects.core.znsParser)
// Feature-Module
implementation(projects.frontend.features.nennungFeature)
implementation(projects.frontend.features.pingFeature)
implementation(projects.frontend.features.nennungFeature)
implementation(projects.frontend.features.znsImportFeature)
implementation(projects.frontend.features.veranstalterFeature)
implementation(projects.frontend.features.veranstaltungFeature)
implementation(projects.frontend.features.funktionaerFeature)
implementation(projects.frontend.features.profileFeature)
implementation(projects.frontend.features.reiterFeature)
implementation(projects.frontend.features.pferdeFeature)
implementation(projects.frontend.features.vereinFeature)
implementation(projects.frontend.features.turnierFeature)
implementation(project(":frontend:features:profile-feature"))
implementation(project(":frontend:features:reiter-feature"))
implementation(project(":frontend:features:pferde-feature"))
implementation(project(":frontend:features:billing-feature"))
implementation(project(":frontend:features:verein-feature"))
implementation(projects.frontend.features.billingFeature)
// Compose Desktop
implementation(compose.desktop.currentOs)
@@ -14,7 +14,9 @@ import at.mocode.frontend.core.sync.di.syncModule
import at.mocode.frontend.features.billing.di.billingModule
import at.mocode.frontend.features.profile.di.profileModule
import at.mocode.frontend.features.verein.di.vereinFeatureModule
import at.mocode.nennung.feature.di.nennungFeatureModule
import at.mocode.frontend.features.nennung.di.nennungFeatureModule
import at.mocode.frontend.features.pferde.di.pferdeModule
import at.mocode.frontend.features.reiter.di.reiterModule
import at.mocode.ping.feature.di.pingFeatureModule
import at.mocode.zns.feature.di.znsImportModule
import kotlinx.coroutines.runBlocking
@@ -36,6 +38,8 @@ fun main() = application {
znsImportModule,
profileModule,
billingModule,
pferdeModule,
reiterModule,
vereinFeatureModule,
desktopModule,
)
@@ -27,6 +27,12 @@ import at.mocode.frontend.features.verein.presentation.VereinScreen
import at.mocode.frontend.features.verein.presentation.VereinViewModel
import at.mocode.ping.feature.presentation.PingScreen
import at.mocode.ping.feature.presentation.PingViewModel
import at.mocode.frontend.features.pferde.presentation.PferdeScreen
import at.mocode.frontend.features.pferde.presentation.PferdeViewModel
import at.mocode.frontend.features.reiter.presentation.ReiterScreen
import at.mocode.frontend.features.reiter.presentation.ReiterViewModel
import at.mocode.frontend.features.nennung.presentation.NennungViewModel
import at.mocode.frontend.features.nennung.presentation.NennungsMaske
import at.mocode.turnier.feature.presentation.TurnierDetailScreen
import at.mocode.veranstalter.feature.presentation.FakeVeranstalterStore
import at.mocode.veranstaltung.feature.presentation.AdminUebersichtScreen
@@ -379,14 +385,18 @@ private fun DesktopContentArea(
// Onboarding ohne Login
is AppScreen.Onboarding -> {
val authTokenManager: at.mocode.frontend.core.auth.data.AuthTokenManager = koinInject()
at.mocode.desktop.v2.OnboardingScreen(
geraetName = obGeraet,
secureKey = obKey,
onGeraetNameChange = onObGeraetChange,
onSecureKeyChange = onObKeyChange,
) { _, _ ->
authTokenManager.setToken("dummy.jwt.token")
onNavigate(AppScreen.VeranstaltungVerwaltung)
at.mocode.frontend.core.designsystem.theme.AppTheme {
Surface(color = MaterialTheme.colorScheme.background) {
at.mocode.desktop.v2.OnboardingScreen(
geraetName = obGeraet,
secureKey = obKey,
onGeraetNameChange = onObGeraetChange,
onSecureKeyChange = onObKeyChange,
) { _, _ ->
authTokenManager.setToken("dummy.jwt.token")
onNavigate(AppScreen.VeranstaltungVerwaltung)
}
}
}
}
@@ -412,37 +422,50 @@ private fun DesktopContentArea(
}
// --- Pferde-Verwaltung & Profil ---
is AppScreen.PferdVerwaltung -> at.mocode.desktop.v2.PferdeVerwaltungScreen(
onBack = onBack,
onEdit = { onNavigate(AppScreen.PferdProfil(it)) }
)
is AppScreen.PferdVerwaltung -> {
val viewModel = koinViewModel<PferdeViewModel>()
PferdeScreen(viewModel = viewModel)
}
is AppScreen.PferdProfil -> at.mocode.desktop.v2.PferdProfilV2(
id = currentScreen.id,
onBack = onBack,
)
is AppScreen.PferdProfil -> {
val viewModel = koinViewModel<PferdeViewModel>()
// In der aktuellen Ausbaustufe wählen wir das Pferd im ViewModel aus
LaunchedEffect(currentScreen.id) {
// Mock: Wir suchen das Pferd in den Suchergebnissen
viewModel.uiState.searchResults.find { it.id == currentScreen.id.toString() }?.let {
viewModel.selectPferd(it)
}
}
PferdeScreen(viewModel = viewModel)
}
// --- Reiter-Verwaltung & Profil ---
is AppScreen.ReiterVerwaltung -> at.mocode.desktop.v2.ReiterVerwaltungScreen(
onBack = onBack,
onEdit = { onNavigate(AppScreen.ReiterProfil(it)) }
)
is AppScreen.ReiterVerwaltung -> {
val viewModel = koinViewModel<ReiterViewModel>()
ReiterScreen(viewModel = viewModel)
}
is AppScreen.ReiterProfil -> at.mocode.desktop.v2.ReiterProfilV2(
id = currentScreen.id,
onBack = onBack,
)
is AppScreen.ReiterProfil -> {
val viewModel = koinViewModel<ReiterViewModel>()
LaunchedEffect(currentScreen.id) {
viewModel.uiState.searchResults.find { it.id == currentScreen.id.toString() }?.let {
viewModel.selectReiter(it)
}
}
ReiterScreen(viewModel = viewModel)
}
// --- Verein-Verwaltung & Profil ---
is AppScreen.VereinVerwaltung -> at.mocode.desktop.v2.VereinVerwaltungScreen(
onBack = onBack,
onEdit = { onNavigate(AppScreen.VereinProfil(it)) }
)
is AppScreen.VereinVerwaltung -> {
val vereinViewModel: VereinViewModel = koinViewModel()
VereinScreen(viewModel = vereinViewModel)
}
is AppScreen.VereinProfil -> at.mocode.desktop.v2.VereinProfilV2(
id = currentScreen.id,
onBack = onBack,
)
is AppScreen.VereinProfil -> {
val vereinViewModel: VereinViewModel = koinViewModel()
// Mock: Selektion im ViewModel (falls unterstützt)
VereinScreen(viewModel = vereinViewModel)
}
// --- Funktionaer-Verwaltung & Profil ---
is AppScreen.FunktionaerVerwaltung -> at.mocode.desktop.v2.FunktionaerVerwaltungScreen(
@@ -664,6 +687,14 @@ private fun DesktopContentArea(
)
}
is AppScreen.Nennung -> {
val nennungViewModel: at.mocode.frontend.features.nennung.presentation.NennungViewModel = koinViewModel()
NennungsMaske(
viewModel = nennungViewModel,
onAbrechnungOeffnen = { /* Navigation zu Billing falls nötig */ }
)
}
// Fallback → Root
else -> AdminUebersichtScreen(
onVeranstalterAuswahl = { onNavigate(AppScreen.VeranstalterAuswahl) },