forked from melod1n/fast-messenger
refactor: unify db refresh flows
This commit is contained in:
@@ -9,9 +9,13 @@ import dev.meloda.fast.model.database.VkConvoEntity
|
||||
@Dao
|
||||
abstract class ConvoDao : EntityDao<VkConvoEntity> {
|
||||
|
||||
@Query("SELECT * FROM convos")
|
||||
@Query("SELECT * FROM convos ORDER BY majorId DESC, minorId DESC")
|
||||
abstract suspend fun getAll(): List<VkConvoEntity>
|
||||
|
||||
@Transaction
|
||||
@Query("SELECT * FROM convos ORDER BY majorId DESC, minorId DESC")
|
||||
abstract suspend fun getAllWithMessage(): List<ConvoWithMessage>
|
||||
|
||||
@Query("SELECT * FROM convos WHERE id IN (:ids)")
|
||||
abstract suspend fun getAllByIds(ids: List<Int>): List<VkConvoEntity>
|
||||
|
||||
@@ -22,6 +26,9 @@ abstract class ConvoDao : EntityDao<VkConvoEntity> {
|
||||
@Query("SELECT * FROM convos WHERE id IS (:id)")
|
||||
abstract suspend fun getByIdWithMessage(id: Long): ConvoWithMessage?
|
||||
|
||||
@Query("DELETE FROM convos WHERE id IS (:id)")
|
||||
abstract suspend fun deleteById(id: Long): Int
|
||||
|
||||
@Query("DELETE FROM convos WHERE rowid IN (:ids)")
|
||||
abstract suspend fun deleteByIds(ids: List<Int>): Int
|
||||
}
|
||||
|
||||
@@ -10,15 +10,21 @@ abstract class MessageDao : EntityDao<VkMessageEntity> {
|
||||
@Query("SELECT * FROM messages")
|
||||
abstract suspend fun getAll(): List<VkMessageEntity>
|
||||
|
||||
@Query("SELECT * FROM messages WHERE peerId IS (:convoId)")
|
||||
@Query("SELECT * FROM messages WHERE peerId IS (:convoId) ORDER BY date DESC, id DESC")
|
||||
abstract suspend fun getAll(convoId: Long): List<VkMessageEntity>
|
||||
|
||||
@Query("SELECT * FROM messages WHERE id IN (:ids)")
|
||||
abstract suspend fun getAllByIds(ids: List<Int>): List<VkMessageEntity>
|
||||
abstract suspend fun getAllByIds(ids: List<Long>): List<VkMessageEntity>
|
||||
|
||||
@Query("SELECT * FROM messages WHERE id IS (:messageId)")
|
||||
abstract suspend fun getById(messageId: Long): VkMessageEntity?
|
||||
|
||||
@Query("SELECT * FROM messages WHERE peerId IS (:convoId) AND cmId IS (:cmId)")
|
||||
abstract suspend fun getByConvoMessageId(convoId: Long, cmId: Long): VkMessageEntity?
|
||||
|
||||
@Query("SELECT MAX(id) FROM messages")
|
||||
abstract suspend fun getMaxId(): Long?
|
||||
|
||||
@Query("DELETE FROM messages WHERE id IN (:ids)")
|
||||
abstract suspend fun deleteByIds(ids: List<Int>): Int
|
||||
abstract suspend fun deleteByIds(ids: List<Long>): Int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user