32 lines
2.0 KiB
Kotlin
32 lines
2.0 KiB
Kotlin
package chats.data.remote.signalr
|
|
|
|
import chats.data.remote.dto.ChatDto
|
|
import chats.data.remote.dto.MessageDto
|
|
|
|
sealed class ChatEvent {
|
|
data class NewMessage(val message: MessageDto) : ChatEvent()
|
|
data class MessageEdited(val messageId: String, val chatId: String, val content: String) : ChatEvent()
|
|
data class MessageDeleted(val messageId: String, val chatId: String) : ChatEvent()
|
|
data class MessagesRead(val chatId: String, val userId: String, val lastReadSequenceId: Int) : ChatEvent()
|
|
data class UserTyping(val chatId: String, val userId: String) : ChatEvent()
|
|
data class UserStoppedTyping(val chatId: String, val userId: String) : ChatEvent()
|
|
data class UserOnline(val userId: String) : ChatEvent()
|
|
data class UserOffline(val userId: String, val lastSeen: String?) : ChatEvent()
|
|
data class NewChat(val chat: ChatDto) : ChatEvent()
|
|
data class ReactionUpdated(val messageId: String, val chatId: String, val userId: String, val emoji: String) : ChatEvent()
|
|
|
|
// Call Events (WebRTC Signaling)
|
|
data class CallIncoming(val chatId: String, val from: String, val offer: String, val callType: String) : ChatEvent()
|
|
data class CallAnswered(val chatId: String, val answer: String) : ChatEvent()
|
|
data class IceCandidateReceived(val chatId: String, val candidate: String) : ChatEvent()
|
|
data class CallEnded(val chatId: String) : ChatEvent()
|
|
|
|
// Group Call Events
|
|
data class GroupCallIncoming(val chatId: String, val from: String, val callerInfo: Any) : ChatEvent()
|
|
data class GroupCallParticipants(val chatId: String, val participants: List<String>) : ChatEvent()
|
|
data class GroupCallUserJoined(val chatId: String, val userId: String) : ChatEvent()
|
|
data class GroupCallUserLeft(val chatId: String, val userId: String) : ChatEvent()
|
|
data class GroupCallOffer(val chatId: String, val from: String, val offer: String) : ChatEvent()
|
|
data class GroupCallAnswer(val chatId: String, val from: String, val answer: String) : ChatEvent()
|
|
}
|