mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-13 07:04:52 +02:00
37 lines
912 B
Java
37 lines
912 B
Java
|
package org.mercury_im.messenger.core.repository;
|
||
|
|
||
|
import org.mercury_im.messenger.core.entity.Account;
|
||
|
import org.mercury_im.messenger.core.entity.Address;
|
||
|
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<
|
||
|
AC extends Account<AD, ?>,
|
||
|
AD extends Address.UserAddress> {
|
||
|
|
||
|
Single<AC> insertAccount(AC account);
|
||
|
|
||
|
Observable<Optional<AC>> observeAccount(long accountId);
|
||
|
|
||
|
Maybe<AC> getAccount(long accountId);
|
||
|
|
||
|
Observable<Optional<AC>> observeAccountByAddress(AD address);
|
||
|
|
||
|
Maybe<AC> getAccountByAddress(AD address);
|
||
|
|
||
|
Observable<List<AC>> observeAllAccounts();
|
||
|
|
||
|
Single<AC> updateAccount(AC account);
|
||
|
|
||
|
Single<AC> upsertAccount(AC account);
|
||
|
|
||
|
Completable deleteAccount(AC account);
|
||
|
|
||
|
}
|