iachat/lib/events/types.rb
Cayo P. R. Oliveira 21133c3383
feat: mark unread conversations (#49)
* feat: add MESSAGES_UNREAD event and implement unread action in ConversationsController

* feat: rename MESSAGES_UNREAD event to CONVERSATION_UNREAD and update unread action in ConversationsController

* feat: implement send_unread_conversation method and update conversation_unread event handling

* feat: add test for dispatching conversation.unread event in ConversationsController

* feat: add conversation_unread event handling in ChannelListener

* feat: add send_unread_conversation method and corresponding tests in Whatsapp channel

* feat: add logging for nil last_message in send_unread_conversation method

* feat: add send_unread_conversation to error handling methods

* feat: implement send_unread_conversation method with logging for nil last_message

* fix: add nil check and logging for last_message in send_unread_conversation method

* fix: update conversation_unread method to call unread_conversation instead of send_unread_conversation

* refactor: rename send_unread_conversation to unread_conversation and update method implementation

* refactor: rename send_unread_conversation to send_unread_messages and update implementation to handle multiple messages

* refactor: rename send_read_messages to read_messages and send_unread_messages to unread_message for clarity

* refactor: rename send_read_messages to read_messages and send_unread_messages to unread_message for clarity

* refactor: rename send_read_messages to read_messages for consistency
2025-05-22 11:52:03 -03:00

62 lines
2.0 KiB
Ruby

# frozen_string_literal: true
module Events::Types
### Installation Events ###
# account events
ACCOUNT_CREATED = 'account.created'
ACCOUNT_CACHE_INVALIDATED = 'account.cache_invalidated'
ACCOUNT_PRESENCE_UPDATED = 'account.presence_updated'
#### Account Events ###
# campaign events
CAMPAIGN_TRIGGERED = 'campaign.triggered'
# channel events
WEBWIDGET_TRIGGERED = 'webwidget.triggered'
# conversation events
CONVERSATION_CREATED = 'conversation.created'
CONVERSATION_UPDATED = 'conversation.updated'
CONVERSATION_READ = 'conversation.read'
CONVERSATION_BOT_HANDOFF = 'conversation.bot_handoff'
# FIXME: deprecate the opened and resolved events in future in favor of status changed event.
CONVERSATION_OPENED = 'conversation.opened'
CONVERSATION_RESOLVED = 'conversation.resolved'
CONVERSATION_STATUS_CHANGED = 'conversation.status_changed'
CONVERSATION_CONTACT_CHANGED = 'conversation.contact_changed'
ASSIGNEE_CHANGED = 'assignee.changed'
TEAM_CHANGED = 'team.changed'
CONVERSATION_TYPING_ON = 'conversation.typing_on'
CONVERSATION_RECORDING = 'conversation.recording'
CONVERSATION_TYPING_OFF = 'conversation.typing_off'
CONVERSATION_MENTIONED = 'conversation.mentioned'
CONVERSATION_UNREAD = 'conversation.unread'
# message events
MESSAGE_CREATED = 'message.created'
FIRST_REPLY_CREATED = 'first.reply.created'
REPLY_CREATED = 'reply.created'
MESSAGE_UPDATED = 'message.updated'
MESSAGES_READ = 'messages.read'
# contact events
CONTACT_CREATED = 'contact.created'
CONTACT_UPDATED = 'contact.updated'
CONTACT_MERGED = 'contact.merged'
CONTACT_DELETED = 'contact.deleted'
# contact events
INBOX_CREATED = 'inbox.created'
INBOX_UPDATED = 'inbox.updated'
# notification events
NOTIFICATION_CREATED = 'notification.created'
NOTIFICATION_DELETED = 'notification.deleted'
NOTIFICATION_UPDATED = 'notification.updated'
# agent events
AGENT_ADDED = 'agent.added'
AGENT_REMOVED = 'agent.removed'
end