Mercury-IM/persistence/src/main/java/org/mercury_im/messenger/persistence/repository/ChatRepository.java

33 lines
923 B
Java

package org.mercury_im.messenger.persistence.repository;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.persistence.model.AccountModel;
import org.mercury_im.messenger.persistence.model.ChatModel;
import org.mercury_im.messenger.persistence.model.ContactModel;
import org.mercury_im.messenger.persistence.model.EntityModel;
import java.util.List;
import io.reactivex.Completable;
import io.reactivex.Maybe;
import io.reactivex.Observable;
public interface ChatRepository<E extends ChatModel> {
E newChatModel();
Observable<List<E>> getAllChats();
Observable<List<E>> getAllChatsOf(AccountModel account);
Observable<E> getOrCreateChatWith(long accountId, EntityBareJid jid);
Maybe<E> getChatWith(AccountModel account, EntityBareJid jid);
Maybe<E> getChatWith(EntityModel identity);
Maybe<E> getChatWith(ContactModel contact);
Completable closeChat(E chat);
}