feat: erweitere DemoEventFlow und EventWizardViewModel um neue Schritte
Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
parent
2d7046d0e3
commit
3b4e3db51d
|
|
@ -10,12 +10,20 @@ import at.mocode.frontend.core.wizard.runtime.WizardState
|
||||||
sealed interface DemoEventStep : StepId {
|
sealed interface DemoEventStep : StepId {
|
||||||
data object ZnsCheck : DemoEventStep
|
data object ZnsCheck : DemoEventStep
|
||||||
data object VeranstalterSelection : DemoEventStep
|
data object VeranstalterSelection : DemoEventStep
|
||||||
|
data object AnsprechpersonMapping : DemoEventStep
|
||||||
|
data object MetaData : DemoEventStep
|
||||||
}
|
}
|
||||||
|
|
||||||
data class DemoEventAcc(val dummy: String = "")
|
data class DemoEventAcc(
|
||||||
|
val veranstalterId: String? = null,
|
||||||
|
val veranstalterNr: String = ""
|
||||||
|
)
|
||||||
|
|
||||||
object DemoEventGuards {
|
object DemoEventGuards {
|
||||||
val hasZns: Guard<DemoEventStep, DemoEventAcc> = { ctx, _ -> (ctx.stats?.vereinCount ?: 0) > 0 }
|
val hasZns: Guard<DemoEventStep, DemoEventAcc> = { ctx, _ -> (ctx.stats?.vereinCount ?: 0) > 0 }
|
||||||
|
// Platzhalter-Guard: aktuell stets true, damit Verhalten dem Legacy-Pfad entspricht.
|
||||||
|
// Wird später durch echte Domänenlogik ersetzt (Veranstalter-Typ/ID etc.).
|
||||||
|
val needsContactPerson: Guard<DemoEventStep, DemoEventAcc> = { _, _ -> true }
|
||||||
}
|
}
|
||||||
|
|
||||||
val DemoEventFlow = flow<DemoEventStep, DemoEventAcc>(start = DemoEventStep.ZnsCheck) {
|
val DemoEventFlow = flow<DemoEventStep, DemoEventAcc>(start = DemoEventStep.ZnsCheck) {
|
||||||
|
|
@ -23,6 +31,10 @@ val DemoEventFlow = flow<DemoEventStep, DemoEventAcc>(start = DemoEventStep.ZnsC
|
||||||
whenGuard("hasZns", DemoEventGuards.hasZns, go = DemoEventStep.VeranstalterSelection)
|
whenGuard("hasZns", DemoEventGuards.hasZns, go = DemoEventStep.VeranstalterSelection)
|
||||||
otherwise(DemoEventStep.VeranstalterSelection)
|
otherwise(DemoEventStep.VeranstalterSelection)
|
||||||
}
|
}
|
||||||
|
step(DemoEventStep.VeranstalterSelection) {
|
||||||
|
whenGuard("needsContactPerson", DemoEventGuards.needsContactPerson, go = DemoEventStep.AnsprechpersonMapping)
|
||||||
|
otherwise(DemoEventStep.MetaData)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hilfsfunktion für einfache manuelle Nutzung im Spike
|
// Hilfsfunktion für einfache manuelle Nutzung im Spike
|
||||||
|
|
|
||||||
|
|
@ -246,13 +246,18 @@ class EventWizardViewModel(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isHandledByRuntime(step: WizardStep): Boolean = when (step) {
|
private fun isHandledByRuntime(step: WizardStep): Boolean = when (step) {
|
||||||
WizardStep.ZNS_CHECK, WizardStep.VERANSTALTER_SELECTION -> true
|
WizardStep.ZNS_CHECK,
|
||||||
|
WizardStep.VERANSTALTER_SELECTION,
|
||||||
|
WizardStep.ANSPRECHPERSON_MAPPING,
|
||||||
|
WizardStep.META_DATA -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun mapToWizardStep(step: DemoEventStep): WizardStep? = when (step) {
|
private fun mapToWizardStep(step: DemoEventStep): WizardStep? = when (step) {
|
||||||
DemoEventStep.ZnsCheck -> WizardStep.ZNS_CHECK
|
DemoEventStep.ZnsCheck -> WizardStep.ZNS_CHECK
|
||||||
DemoEventStep.VeranstalterSelection -> WizardStep.VERANSTALTER_SELECTION
|
DemoEventStep.VeranstalterSelection -> WizardStep.VERANSTALTER_SELECTION
|
||||||
|
DemoEventStep.AnsprechpersonMapping -> WizardStep.ANSPRECHPERSON_MAPPING
|
||||||
|
DemoEventStep.MetaData -> WizardStep.META_DATA
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setVeranstalter(id: Uuid, nummer: String, name: String, standardOrt: String, logo: String?) {
|
fun setVeranstalter(id: Uuid, nummer: String, name: String, standardOrt: String, logo: String?) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user