dm-103
This commit is contained in:
parent
fff7d1a641
commit
346ca621d0
1 changed files with 12 additions and 2 deletions
|
|
@ -28,13 +28,23 @@ data class MessageEntity(
|
|||
|
||||
@Dao
|
||||
interface MessageDao {
|
||||
// 💡 修正這裡:WHERE 條件欄位改為 chatRoomId
|
||||
@Query("SELECT * FROM messages WHERE chatRoomId = :roomId ORDER BY createdAt DESC") // 👈 確保是 DESC(降序)
|
||||
// 1. 根據 roomId 監聽整個聊天室的訊息 Flow
|
||||
@Query("SELECT * FROM messages WHERE chatRoomId = :roomId ORDER BY createdAt DESC")
|
||||
fun getMessagesFlow(roomId: String): Flow<List<MessageEntity>>
|
||||
|
||||
// 2. ✨【新增】根據訊息 id 查詢單筆資料(樂觀更新備份用)
|
||||
@Query("SELECT * FROM messages WHERE id = :messageId LIMIT 1")
|
||||
suspend fun getMessageById(messageId: String): MessageEntity?
|
||||
|
||||
// 3. 插入或更新單筆訊息
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
suspend fun insertOrUpdate(message: MessageEntity)
|
||||
|
||||
// 4. ✨【優化】支援批次插入或更新(可以順便把 refreshChatMessages 裡面的 forEach 換掉,效能更好)
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
suspend fun insertOrUpdateList(messages: List<MessageEntity>)
|
||||
|
||||
// 5. 根據 id 刪除特定訊息
|
||||
@Query("DELETE FROM messages WHERE id = :id")
|
||||
suspend fun deleteById(id: String)
|
||||
}
|
||||
Loading…
Reference in a new issue