33 lines
1.2 KiB
Java
33 lines
1.2 KiB
Java
package org.mercury_im.messenger.persistence.room.dao;
|
|
|
|
import androidx.lifecycle.LiveData;
|
|
import androidx.room.Dao;
|
|
import androidx.room.Query;
|
|
import androidx.room.TypeConverters;
|
|
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomChatModel;
|
|
import org.mercury_im.messenger.persistence.room.type_converter.EntityBareJidConverter;
|
|
|
|
import java.util.List;
|
|
|
|
@Dao
|
|
@TypeConverters(EntityBareJidConverter.class)
|
|
public interface ChatDao extends BaseDao<RoomChatModel> {
|
|
|
|
@Query("SELECT * FROM chats")
|
|
LiveData<List<RoomChatModel>> getAllChats();
|
|
|
|
@Query("SELECT chats.* FROM chats JOIN entities WHERE accountId = :accountId")
|
|
LiveData<List<RoomChatModel>> getAllChatsOf(long accountId);
|
|
|
|
@Query("SELECT * FROM chats WHERE xmppId = :identityId")
|
|
LiveData<RoomChatModel> getChatWithIdentity(long identityId);
|
|
|
|
@Query("SELECT chats.* FROM chats JOIN entities WHERE accountId = :accountId AND jid = :jid")
|
|
LiveData<RoomChatModel> getChatWithJid(long accountId, EntityBareJid jid);
|
|
|
|
@Query("SELECT * FROM chats JOIN contacts WHERE contacts.id = :contactId")
|
|
LiveData<RoomChatModel> getChatWithContact(long contactId);
|
|
}
|