TacheDao.kt 34 lignes · 1192 octets
package fr.ebii.card2vcf.data

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import kotlinx.coroutines.flow.Flow

@Dao
interface TacheDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun upsert(entity: TacheEntity): Long

    @Query("SELECT * FROM taches WHERE serverId = :serverId")
    suspend fun getByServerId(serverId: String): TacheEntity?

    @Query("SELECT * FROM taches WHERE localId = :localId")
    suspend fun getByLocalId(localId: Long): TacheEntity?

    @Query("DELETE FROM taches WHERE serverId = :serverId")
    suspend fun deleteByServerId(serverId: String)

    @Query("DELETE FROM taches WHERE localId = :localId")
    suspend fun deleteByLocalId(localId: Long)

    @Query("SELECT * FROM taches WHERE projetServerId = :projetServerId")
    suspend fun listByProjetServerId(projetServerId: String): List<TacheEntity>

    @Query("SELECT * FROM taches WHERE projetServerId = :projetServerId ORDER BY ordre ASC")
    fun observeByProjetServerId(projetServerId: String): Flow<List<TacheEntity>>

    @Query("SELECT * FROM taches")
    suspend fun listAll(): List<TacheEntity>
}