29 lines
1.3 KiB
Kotlin
29 lines
1.3 KiB
Kotlin
package chats.domain.repository
|
|
|
|
import chats.domain.model.Chat
|
|
import chats.domain.model.Message
|
|
|
|
interface ChatRepository {
|
|
suspend fun getChats(): List<Chat>
|
|
fun getMessagesFlow(chatId: String): kotlinx.coroutines.flow.Flow<List<Message>>
|
|
suspend fun getMessages(chatId: String, cursor: String? = null, pivot: Long? = null, limit: Int? = null): List<Message>
|
|
suspend fun sendMessage(
|
|
chatId: String,
|
|
content: String?,
|
|
type: String = "text",
|
|
attachments: List<chats.data.remote.api.AttachmentRequest>? = null,
|
|
replyToId: String? = null
|
|
): Message
|
|
suspend fun addReaction(messageId: String, emoji: String)
|
|
suspend fun sendTypingStatus(chatId: String)
|
|
suspend fun markMessagesAsRead(chatId: String, lastMessageId: String, lastReadSequenceId: Int)
|
|
suspend fun saveMessage(message: Message)
|
|
suspend fun deleteLocalMessage(messageId: String)
|
|
suspend fun uploadMedia(file: java.io.File): String
|
|
suspend fun getTrendingGifs(page: Int = 0): List<chats.data.remote.api.KlipyGifDto>
|
|
suspend fun searchGifs(query: String, page: Int = 0): List<chats.data.remote.api.KlipyGifDto>
|
|
suspend fun getGifCategories(): List<chats.data.remote.api.GifCategoryDto>
|
|
suspend fun createPersonalChat(userId: String): Chat
|
|
}
|
|
|