CrmContactDao.kt
52 lignes · 1649 octets
package fr.ebii.card2vcf.data import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import androidx.room.Update import kotlinx.coroutines.flow.Flow @Dao interface CrmContactDao { @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insert(entity: CrmContactEntity): Long @Update suspend fun update(entity: CrmContactEntity) @Query("DELETE FROM crm_contacts WHERE id = :id") suspend fun deleteById(id: Long) @Query("SELECT * FROM crm_contacts WHERE id = :id") suspend fun getById(id: Long): CrmContactEntity? @Query("SELECT * FROM crm_contacts WHERE serverId = :serverId") suspend fun getByServerId(serverId: String): CrmContactEntity? @Query("DELETE FROM crm_contacts WHERE serverId = :serverId") suspend fun deleteByServerId(serverId: String) @Query("SELECT * FROM crm_contacts ORDER BY createdAt DESC") fun observeAll(): Flow<List<CrmContactEntity>> @Query("SELECT * FROM crm_contacts ORDER BY createdAt DESC") suspend fun getAll(): List<CrmContactEntity> @Query( """ SELECT rowid FROM crm_contacts_fts WHERE crm_contacts_fts MATCH :query """, ) suspend fun searchIds(query: String): List<Long> @Insert(onConflict = OnConflictStrategy.IGNORE) suspend fun insertExclusion(ex: DuplicateExclusionEntity): Long @Query("SELECT * FROM duplicate_exclusions") suspend fun getExclusions(): List<DuplicateExclusionEntity> @Query("DELETE FROM duplicate_exclusions WHERE idA = :id OR idB = :id") suspend fun deleteExclusionsFor(id: Long) }
GitRust