Files
libredesk/internal/ws/models/models.go
T
2026-04-13 14:51:37 +05:30

45 lines
1.3 KiB
Go

package models
// Action constants for WebSocket messages.
const (
MessageTypeMessageUpdate = "message_update"
MessageTypeConversationUpdate = "conversation_update"
MessageTypeNewMessage = "new_message"
MessageTypeNewConversation = "new_conversation"
MessageTypeNewNotification = "new_notification"
MessageTypeError = "error"
MessageTypeConversationSubscribe = "conversation_subscribe"
MessageTypeConversationSubscribed = "conversation_subscribed"
MessageTypeTyping = "typing"
)
// WSMessage represents a WS message.
type WSMessage struct {
MessageType int
Data []byte
}
// Message represents a WebSocket message to be sent.
type Message struct {
Type string `json:"type"`
Data interface{} `json:"data"`
}
// BroadcastMessage represents a message to be pushed to users.
type BroadcastMessage struct {
Data []byte `json:"data"`
Users []int `json:"users"`
}
// ConversationSubscribe represents a conversation subscription message.
type ConversationSubscribe struct {
ConversationUUID string `json:"conversation_uuid"`
}
// TypingMessage represents a typing indicator message.
type TypingMessage struct {
ConversationUUID string `json:"conversation_uuid"`
IsTyping bool `json:"is_typing"`
IsPrivateMessage bool `json:"is_private_message"`
}