UPD: Dataformat for sync
This commit is contained in:
parent
ad8e180134
commit
c8e9452a7e
@ -8,8 +8,9 @@ import androidx.room.RoomDatabase
|
|||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
import come.stormborntales.notevault.data.local.dao.NoteDao
|
import come.stormborntales.notevault.data.local.dao.NoteDao
|
||||||
import come.stormborntales.notevault.data.local.entity.NoteEntity
|
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)
|
@TypeConverters(UriListConverter::class)
|
||||||
abstract class AppDatabase : RoomDatabase() {
|
abstract class AppDatabase : RoomDatabase() {
|
||||||
abstract fun noteDao(): NoteDao
|
abstract fun noteDao(): NoteDao
|
||||||
|
@ -3,6 +3,11 @@ package come.stormborntales.notevault.data.local.entity
|
|||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.PrimaryKey
|
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")
|
@Entity(tableName = "notes")
|
||||||
data class NoteEntity(
|
data class NoteEntity(
|
||||||
@PrimaryKey(autoGenerate = true) val id: Int = 0,
|
@PrimaryKey(autoGenerate = true) val id: Int = 0,
|
||||||
@ -12,5 +17,10 @@ data class NoteEntity(
|
|||||||
var year: Int?,
|
var year: Int?,
|
||||||
var genre: String?,
|
var genre: String?,
|
||||||
var description: 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
|
||||||
|
|
||||||
)
|
)
|
||||||
|
@ -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
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user