ConversationRepository

class ConversationRepository(conversationDao: ConversationDao, val di: DI) : DIAware

Repository for managing conversations. Handles retrieval, creation, updating, and user status tracking for conversations.

Constructors

Link copied to clipboard
constructor(conversationDao: ConversationDao, di: DI)

Properties

Link copied to clipboard
open override val di: DI

Kodein DI container for dependency injection.

Link copied to clipboard
open val diContext: DIContext<*>
Link copied to clipboard
open val diTrigger: DITrigger?

Functions

Link copied to clipboard

Returns a Flow emitting the list of all conversations.

Link copied to clipboard
suspend fun getConversationById(conversationId: String): Conversation?

Retrieves a conversation by its unique ID.

Link copied to clipboard
suspend fun getOrCreateConversation(localUuid: String, remoteUser: UserEntity): Conversation

Retrieves an existing conversation or creates a new one if it does not exist.

Link copied to clipboard
suspend fun markAsRead(conversationId: String)

Marks a conversation as read by clearing its unread count.

Link copied to clipboard
suspend fun updateUserStatus(userUuid: String, isOnline: Boolean, userAddress: String?)

Updates a user's online status and associated address.

Link copied to clipboard
suspend fun updateWithMessage(conversationId: String, message: Message)

Updates the conversation with the latest message. Increments unread count if the message is from another user.