UPD: Dataformat for sync

This commit is contained in:
Sebastian Böckelmann 2025-05-04 11:23:33 +02:00
parent ad8e180134
commit c8e9452a7e
3 changed files with 21 additions and 2 deletions

View File

@ -8,8 +8,9 @@ import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import come.stormborntales.notevault.data.local.dao.NoteDao
import come.stormborntales.notevault.data.local.entity.NoteEntity
import come.stormborntales.notevault.data.local.entity.SyncTime
@Database(entities = [NoteEntity::class], version = 1)
@Database(entities = [NoteEntity::class, SyncTime::class], version = 1)
@TypeConverters(UriListConverter::class)
abstract class AppDatabase : RoomDatabase() {
abstract fun noteDao(): NoteDao

View File

@ -3,6 +3,11 @@ package come.stormborntales.notevault.data.local.entity
import androidx.room.Entity
import androidx.room.PrimaryKey
enum class SyncStatus {
PENDING, // Lokale Änderungen warten auf Synchronisation
SYNCHRONIZED, // Der Eintrag wurde mit dem Server synchronisiert
DELETED // Der Eintrag wurde lokal gelöscht und wartet auf Serverabgleich
}
@Entity(tableName = "notes")
data class NoteEntity(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
@ -12,5 +17,10 @@ data class NoteEntity(
var year: Int?,
var genre: String?,
var description: String?,
val imagePreview: String
val imagePreview: String,
val remoteId: String? = null,
val localModificationTimestamp: Long = System.currentTimeMillis(), // Zeitstempel der letzten lokalen Änderung
val syncStatus: SyncStatus = SyncStatus.PENDING // Status der Synchronisation
)

View File

@ -0,0 +1,8 @@
package come.stormborntales.notevault.data.local.entity
import androidx.room.PrimaryKey
data class SyncTime(
@PrimaryKey val id: Long = 1, // Einziger Eintrag für das Gerät
val lastSyncTimestamp: Long = System.currentTimeMillis() // Zeitstempel des letzten Syncsy
)