ProjetDao.kt 28 lignes · 866 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 ProjetDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun upsert(entity: ProjetEntity): Long

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

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

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

    @Query("SELECT * FROM projets")
    suspend fun listAll(): List<ProjetEntity>

    @Query("SELECT * FROM projets ORDER BY nom ASC")
    fun observeAll(): Flow<List<ProjetEntity>>
}