Skip to content

schemas

Actionbot edited this page Oct 6, 2026 · 5 revisions

Daten: Schemas

Zweck

Beschreibung der lokalen Entity Schemas.

StatusEntity

@Entity(tableName = "feed_statuses", primaryKeys = ["id", "type"])
data class StatusEntity(
    val id: Int,
    val statusJson: String,
    val type: String, // Feedart + Digest der Server-/Tokenzuordnung
    val position: Int = 0 // ursprüngliche Reihenfolge der API-Seite
)

Tabelle: feed_statuses

Spalte Typ Beschreibung
id Int (Teil des PK) Status-ID von der API
statusJson String Serialisiertes Status-Objekt (Gson)
type String (Teil des PK) dashboard:<digest> oder global:<digest>; Digest aus Server und Token
position Int Index innerhalb der erfolgreich gespeicherten ersten API-Seite

Der SHA-256-Digest partitioniert den Cache, ohne den Bearer-Token als Cachekey zu speichern. Er ist keine Verschlüsselung der enthaltenen Statusdaten. Alte unpartitionierte Typen dashboard/global werden nicht als kontobezogener Rückfall gelesen. Die Schemaänderung verwendet Datenbankversion 2 mit destruktivem Neuaufbau des Feedcaches; der Version-1-Fahrtcache in DataStore bleibt davon getrennt.

StatusDao liest nach position ASC, id DESC; das Repository speichert die ursprüngliche API-Reihenfolge mit mapIndexed. Das Dashboard sortiert nach Abfahrt, nicht nach Status-ID oder Erstellungsfolge. Offline wird deshalb die gespeicherte Reihenfolge erhalten.

Aktiver Fahrtcache in DataStore

trip_tracking_state ist ein Gson-JSON mit CachedTripTrackingState, keine Room-Entity. Das Format bleibt Version 1. Es enthält aktive Status-ID, Check-in, eingegrenzte Haltfolge, Besuchs-/Ansagefortschritt sowie bereits vorhandene Änderungs- und Live-Anzeigemetadaten. Die SEV-Ergänzung fügt zwei optionale Felder hinzu:

Feld Typ Bedeutung
fullStopovers List? Vollständige API-Haltfolge als Richtungskontext, auch nach dem eigenen Ausstieg. Alte Einträge verwenden ersatzweise die vorhandene Haltfolge.
sevMaps Map<String, SevMap>? Öffentliche Karten je Bahnhofsslug mit SEV-Punkten, Hinweisen und Abrufzeit. Fehlendes Feld bedeutet keine SEV-Quelle.

Das Wiederherstellen vertraut nicht unmittelbar auf eine frühere Auflösung: Quellenalter, Maßnahmendatum und Richtung werden erneut geprüft. Gerätepositionen, Bewegungshistorie und GPS-Zeitprognosen werden nicht in diesen Feldern gespeichert. Details zum Schreiben/Löschen: PreferencesManager.

Native Träwelling-Linienzüge und SEV-Straßen-Geometrien sind keine zusätzlichen Schemafelder. Beide bleiben im RAM; die restaurierte Haltfolge bildet bei sichtbarem Wiederanlauf nur die Basis für neue passende Geometrieabrufe. Quelle und Lebensdauer stehen unter GPS-Zeiten.

Verwandte Seiten

Clone this wiki locally