Refine MsTextField component: introduce compact mode, enhance visual styling and error handling, and improve placeholder and keyboard interaction logic. Add Dimens and Colors updates, implement navigation rail and header layout for the desktop shell, and update ROADMAP documentation with planned phases.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package at.mocode.core.sync
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* Ein synchronisierbares Event gemäß ADR-0022 und "Konzept: Offline-First Synchronisation".
|
||||
*
|
||||
* Dieses Modell dient als Basis für das Event-Sourcing-basierte Synchronisations-System
|
||||
* zwischen Desktop-Zentrale, Richter-Türmen (LAN) und dem Cloud-Backend (WAN).
|
||||
*/
|
||||
@Serializable
|
||||
data class SyncEvent(
|
||||
/** Eindeutige ID der Veranstaltung (Mandant). */
|
||||
val eventId: String,
|
||||
|
||||
/** Optionale ID des Turniers innerhalb der Veranstaltung. */
|
||||
val turnierId: String? = null,
|
||||
|
||||
/** Monoton steigende Sequenznummer (Lamport-Uhr). */
|
||||
val sequenceNumber: Long,
|
||||
|
||||
/** Eindeutige ID des Knotens, der das Event erzeugt hat (z.B. "desktop-01"). */
|
||||
val originNodeId: String,
|
||||
|
||||
/** Typ des betroffenen Aggregats (z.B. "Nennung", "Ergebnis", "Pferd"). */
|
||||
val aggregateType: String,
|
||||
|
||||
/** Eindeutige ID des Aggregats. */
|
||||
val aggregateId: String,
|
||||
|
||||
/** Fachlicher Typ des Events (z.B. "Created", "Updated", "StatusChanged"). */
|
||||
val eventType: String,
|
||||
|
||||
/** Serialisierte Nutzlast des Events (JSON oder Protobuf). */
|
||||
val payload: String,
|
||||
|
||||
/** Zeitstempel der Erstellung (Epoch Millis). */
|
||||
val createdAt: Long,
|
||||
|
||||
/** Prüfsumme zur Integritätssicherung (optional im Core). */
|
||||
val checksum: String? = null,
|
||||
|
||||
/** Version des Payload-Schemas zur Evolution-Unterstützung. */
|
||||
val schemaVersion: Int = 1
|
||||
)
|
||||
Reference in New Issue
Block a user