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