Mercury-IM/data/src/main/java/org/mercury_im/messenger/core/repository/AccountRepository.java

34 lines
851 B
Java

package org.mercury_im.messenger.core.repository;
import org.mercury_im.messenger.core.entity.Account;
import org.mercury_im.messenger.core.util.Optional;
import java.util.List;
import io.reactivex.Completable;
import io.reactivex.Maybe;
import io.reactivex.Observable;
import io.reactivex.Single;
public interface AccountRepository {
Single<Account> insertAccount(Account account);
Observable<Optional<Account>> observeAccount(long accountId);
Maybe<Account> getAccount(long accountId);
Observable<Optional<Account>> observeAccountByAddress(String address);
Maybe<Account> getAccountByAddress(String address);
Observable<List<Account>> observeAllAccounts();
Single<Account> updateAccount(Account account);
Single<Account> upsertAccount(Account account);
Completable deleteAccount(Account account);
}