main.com.sceyt.chatuikit.persistence.interactor.UserInteractor.kt Maven / Gradle / Ivy
package com.sceyt.chatuikit.persistence.interactor
import com.sceyt.chat.models.settings.UserSettings
import com.sceyt.chat.models.user.PresenceState
import com.sceyt.chatuikit.data.models.SceytResponse
import com.sceyt.chatuikit.data.models.messages.SceytUser
import kotlinx.coroutines.flow.Flow
interface UserInteractor {
suspend fun loadUsers(query: String): SceytResponse>
suspend fun loadMoreUsers(): SceytResponse>
suspend fun getUsersByIds(ids: List): SceytResponse>
suspend fun getUserDbById(id: String): SceytUser?
suspend fun getUsersDbByIds(id: List): List
suspend fun getCurrentUser(): SceytUser?
fun getCurrentUserNonSuspend(): SceytUser?
fun getCurrentUserAsFlow(): Flow
suspend fun uploadAvatar(avatarUrl: String): SceytResponse
suspend fun updateProfile(firsName: String?, lastName: String?,
avatarUrl: String?, metadataMap: Map?
): SceytResponse
suspend fun setPresenceState(presenceState: PresenceState): SceytResponse
suspend fun updateStatus(status: String): SceytResponse
suspend fun getSettings(): SceytResponse
suspend fun muteNotifications(muteUntil: Long): SceytResponse
suspend fun unMuteNotifications(): SceytResponse
suspend fun blockUnBlockUser(userId: String, block: Boolean): SceytResponse>
}