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.pferde.di
import at.mocode.frontend.features.pferde.presentation.PferdeViewModel
import org.koin.dsl.module
val pferdeModule = module {
factory { PferdeViewModel() }
}
@@ -12,7 +12,12 @@ data class Pferd(
val geschlecht: Geschlecht = Geschlecht.WALLACH,
val farbe: String = "",
val geburtsjahr: Int? = null,
val status: PferdeStatus = PferdeStatus.AKTIV
val status: PferdeStatus = PferdeStatus.AKTIV,
val feiId: String? = null,
val oepsNummer: String? = null,
val vater: String? = null,
val mutter: String? = null,
val besitzer: String? = null
)
enum class Geschlecht(val label: String) {
@@ -38,6 +38,9 @@ fun PferdeScreen(
onFarbeChange = viewModel::onEditFarbeChange,
onGeburtsjahrChange = viewModel::onEditGeburtsjahrChange,
onStatusChange = viewModel::onEditStatusChange,
onFeiIdChange = viewModel::onEditFeiIdChange,
onOepsNummerChange = viewModel::onEditOepsNummerChange,
onBesitzerChange = viewModel::onEditBesitzerChange,
onSave = viewModel::onSave,
onCancel = viewModel::onCancel
)
@@ -105,6 +108,9 @@ private fun PferdeEditorContent(
onFarbeChange: (String) -> Unit,
onGeburtsjahrChange: (String) -> Unit,
onStatusChange: (PferdeStatus) -> Unit,
onFeiIdChange: (String) -> Unit,
onOepsNummerChange: (String) -> Unit,
onBesitzerChange: (String) -> Unit,
onSave: () -> Unit,
onCancel: () -> Unit
) {
@@ -134,6 +140,23 @@ private fun PferdeEditorContent(
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)) {
MsEnumDropdown(
label = "Geschlecht",
@@ -160,16 +183,25 @@ private fun PferdeEditorContent(
label = "Geburtsjahr",
modifier = Modifier.weight(1f)
)
MsEnumDropdown(
label = "Status",
options = PferdeStatus.entries.toTypedArray(),
selectedOption = uiState.editStatus,
onOptionSelected = onStatusChange,
optionLabel = { it.label },
MsTextField(
value = uiState.editBesitzer,
onValueChange = onBesitzerChange,
label = "Besitzer",
modifier = Modifier.weight(1f)
)
}
Spacer(Modifier.height(16.dp))
MsEnumDropdown(
label = "Status",
options = PferdeStatus.entries.toTypedArray(),
selectedOption = uiState.editStatus,
onOptionSelected = onStatusChange,
optionLabel = { it.label },
modifier = Modifier.width(300.dp)
)
Spacer(Modifier.height(24.dp))
if (uiState.editStatus == PferdeStatus.INAKTIV) {
@@ -3,6 +3,7 @@ package at.mocode.frontend.features.pferde.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.pferde.domain.Geschlecht
import at.mocode.frontend.features.pferde.domain.Pferd
import at.mocode.frontend.features.pferde.domain.PferdeStatus
@@ -21,13 +22,16 @@ data class PferdeUiState(
val editGeschlecht: Geschlecht = Geschlecht.WALLACH,
val editFarbe: String = "",
val editGeburtsjahr: String = "",
val editStatus: PferdeStatus = PferdeStatus.AKTIV
val editStatus: PferdeStatus = PferdeStatus.AKTIV,
val editFeiId: String = "",
val editOepsNummer: String = "",
val editBesitzer: String = ""
)
/**
* ViewModel für die Pferde-Verwaltung.
*/
open class PferdeViewModel(initialLoad: Boolean = true) {
open class PferdeViewModel(initialLoad: Boolean = true) : ViewModel() {
var uiState by mutableStateOf(PferdeUiState())
protected set
@@ -60,10 +64,25 @@ open class PferdeViewModel(initialLoad: Boolean = true) {
editGeschlecht = pferd.geschlecht,
editFarbe = pferd.farbe,
editGeburtsjahr = pferd.geburtsjahr?.toString() ?: "",
editStatus = pferd.status
editStatus = pferd.status,
editFeiId = pferd.feiId ?: "",
editOepsNummer = pferd.oepsNummer ?: "",
editBesitzer = pferd.besitzer ?: ""
)
}
fun onEditFeiIdChange(value: String) {
uiState = uiState.copy(editFeiId = value)
}
fun onEditOepsNummerChange(value: String) {
uiState = uiState.copy(editOepsNummer = value)
}
fun onEditBesitzerChange(value: String) {
uiState = uiState.copy(editBesitzer = value)
}
fun onEditNameChange(value: String) {
uiState = uiState.copy(editName = value)
}