SyncOpDao.kt
31 lignes · 1067 octets
package fr.ebii.card2vcf.sync import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import kotlinx.coroutines.flow.Flow @Dao interface SyncOpDao { @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insert(entity: SyncOpEntity): Long @Query("SELECT * FROM sync_ops ORDER BY createdAt ASC") suspend fun listAll(): List<SyncOpEntity> @Query("SELECT * FROM sync_ops ORDER BY createdAt ASC") fun observeAll(): Flow<List<SyncOpEntity>> @Query("UPDATE sync_ops SET attempts = attempts + 1, lastError = :error WHERE id = :id") suspend fun markFailure(id: Long, error: String?) @Query("SELECT * FROM sync_ops WHERE id = :id") suspend fun getById(id: Long): SyncOpEntity? @Query("DELETE FROM sync_ops WHERE id = :id") suspend fun deleteById(id: Long) @Query("SELECT * FROM sync_ops WHERE entityType = :entityType AND localId = :localId LIMIT 1") suspend fun findByEntityTypeAndLocalId(entityType: String, localId: Long): SyncOpEntity? }
GitRust