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
@@ -0,0 +1,8 @@
package at.mocode.frontend.features.reiter.di
import at.mocode.frontend.features.reiter.presentation.ReiterViewModel
import org.koin.dsl.module
val reiterModule = module {
factory { ReiterViewModel() }
}
@@ -12,7 +12,13 @@ data class Reiter(
val satznummer: String?,
val lizenz: LizenzKlasse = LizenzKlasse.KEINE,
val sparte: Sparte = Sparte.KEINE,
val status: ReiterStatus = ReiterStatus.AKTIV
val status: ReiterStatus = ReiterStatus.AKTIV,
val feiId: String? = null,
val oepsNummer: String? = null,
val geburtsdatum: String? = null,
val email: String? = null,
val telefon: String? = null,
val verein: String? = null
) {
val name: String get() = "$vorname $nachname"
}
@@ -34,6 +34,12 @@ fun ReiterScreen(
onNachnameChange = viewModel::onEditNameChange,
onLizenzChange = viewModel::onEditLizenzChange,
onSparteChange = viewModel::onEditSparteChange,
onFeiIdChange = viewModel::onEditFeiIdChange,
onOepsNummerChange = viewModel::onEditOepsNummerChange,
onGeburtsdatumChange = viewModel::onEditGeburtsdatumChange,
onEmailChange = viewModel::onEditEmailChange,
onTelefonChange = viewModel::onEditTelefonChange,
onVereinChange = viewModel::onEditVereinChange,
onSave = viewModel::onSave,
onCancel = viewModel::onCancel
)
@@ -104,6 +110,12 @@ private fun ReiterEditorContent(
onNachnameChange: (String) -> Unit,
onLizenzChange: (LizenzKlasse) -> Unit,
onSparteChange: (Sparte) -> Unit,
onFeiIdChange: (String) -> Unit,
onOepsNummerChange: (String) -> Unit,
onGeburtsdatumChange: (String) -> Unit,
onEmailChange: (String) -> Unit,
onTelefonChange: (String) -> Unit,
onVereinChange: (String) -> Unit,
onSave: () -> Unit,
onCancel: () -> Unit
) {
@@ -133,6 +145,57 @@ private fun ReiterEditorContent(
Spacer(Modifier.height(16.dp))
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
MsTextField(
value = uiState.editFeiId,
onValueChange = onFeiIdChange,
label = "FEI ID",
modifier = Modifier.weight(1f)
)
MsTextField(
value = uiState.editOepsNummer,
onValueChange = onOepsNummerChange,
label = "ÖPS Nummer",
modifier = Modifier.weight(1f)
)
}
Spacer(Modifier.height(16.dp))
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
MsTextField(
value = uiState.editGeburtsdatum,
onValueChange = onGeburtsdatumChange,
label = "Geburtsdatum",
modifier = Modifier.weight(1f)
)
MsTextField(
value = uiState.editVerein,
onValueChange = onVereinChange,
label = "Verein",
modifier = Modifier.weight(1f)
)
}
Spacer(Modifier.height(16.dp))
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
MsTextField(
value = uiState.editEmail,
onValueChange = onEmailChange,
label = "E-Mail",
modifier = Modifier.weight(1f)
)
MsTextField(
value = uiState.editTelefon,
onValueChange = onTelefonChange,
label = "Telefon",
modifier = Modifier.weight(1f)
)
}
Spacer(Modifier.height(16.dp))
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
MsEnumDropdown(
label = "Lizenzklasse",
@@ -3,6 +3,7 @@ package at.mocode.frontend.features.reiter.presentation
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import at.mocode.frontend.features.reiter.domain.LizenzKlasse
import at.mocode.frontend.features.reiter.domain.Reiter
import at.mocode.frontend.features.reiter.domain.ReiterStatus
@@ -21,14 +22,20 @@ data class ReiterUiState(
val editVorname: String = "",
val editLizenz: LizenzKlasse = LizenzKlasse.KEINE,
val editSparte: Sparte = Sparte.KEINE,
val editStatus: ReiterStatus = ReiterStatus.AKTIV
val editStatus: ReiterStatus = ReiterStatus.AKTIV,
val editFeiId: String = "",
val editOepsNummer: String = "",
val editGeburtsdatum: String = "",
val editEmail: String = "",
val editTelefon: String = "",
val editVerein: String = ""
)
/**
* ViewModel für die Reiter-Verwaltung.
* In einem echten Szenario würden wir hier ein Repository injizieren.
*/
open class ReiterViewModel(initialLoad: Boolean = true) {
open class ReiterViewModel(initialLoad: Boolean = true) : ViewModel() {
var uiState by mutableStateOf(ReiterUiState())
protected set
@@ -62,10 +69,23 @@ open class ReiterViewModel(initialLoad: Boolean = true) {
editName = reiter.nachname,
editLizenz = reiter.lizenz,
editSparte = reiter.sparte,
editStatus = reiter.status
editStatus = reiter.status,
editFeiId = reiter.feiId ?: "",
editOepsNummer = reiter.oepsNummer ?: "",
editGeburtsdatum = reiter.geburtsdatum ?: "",
editEmail = reiter.email ?: "",
editTelefon = reiter.telefon ?: "",
editVerein = reiter.verein ?: ""
)
}
fun onEditFeiIdChange(value: String) { uiState = uiState.copy(editFeiId = value) }
fun onEditOepsNummerChange(value: String) { uiState = uiState.copy(editOepsNummer = value) }
fun onEditGeburtsdatumChange(value: String) { uiState = uiState.copy(editGeburtsdatum = value) }
fun onEditEmailChange(value: String) { uiState = uiState.copy(editEmail = value) }
fun onEditTelefonChange(value: String) { uiState = uiState.copy(editTelefon = value) }
fun onEditVereinChange(value: String) { uiState = uiState.copy(editVerein = value) }
fun onEditVornameChange(value: String) {
uiState = uiState.copy(editVorname = value)
}