Перейти к содержанию

Отправка на почту уведомлений о новых сообщениях#

  • Система с периодичностью SPA_NOTIFICATION_UNREAD_MESSAGES_SCHEDULE рассылает на почту
    уведомление о наличии новых сообщений в заявке.

  • Если найдено больше одной заявки, по которым необходимо отправить уведомление, то на каждую заявку формируется отдельное уведомление.

Кто и какие уведомления получает#

Для роли CONTRACTOR рассылка выполняется только ответственным за тему исполнителям. (CONTRACTOR в таблице - ответственный за тему в которой находится сообщение):

Отправитель сообщения в переписку Приватное / публичное Кто получает уведомление в почту
CUSTOMER Публичное Все активные пользователи с ролью CONTRACTOR
CONTRACTOR Публичное Пользователь с ролью CUSTOMER, клиента в заявке
AGENT Публичное Пользователь с ролью CUSTOMER, клиента в заявке
Все активные пользователи с ролью CONTRACTOR
CUSTOMER Приватное отсутствует, клиент не может отправлять приватные сообщения
CONTRACTOR Приватное Все активные пользователи AGENT, агента в заявке
AGENT Приватное Все активные пользователи с ролью CONTRACTOR

Алгоритм определения необходимости отправить уведомление#

Для роли CUSTOMER#

Уведомления отправляются только для публичных сообщений, которые не прочитаны пользователем с ролью CUSTOMER

Для каждой не заявки, в которой есть неприватные сообщения (isPrivate == false) у которых есть notReadBy[] с ролью CUSTOMER,

  • система находит самое старое (по sentAt) непрочитанное ролью CUSTOMER сообщение,
  • если в ней notReadBy[].isNotifiacationSent == false, то отправляет уведомление на почту.

При отправке уведомления на почту, устанавливает этому сообщению notReadBy[].isNotifiacationSent == true

Для роли CONTRACTOR#

Уведомления отправляются только ответственным за тему исполнителям для публичных и приватных сообщений, которые не прочитаны ответственным за тему пользователем с ролью CONTRACTOR

Для каждой заявки, в которой есть notReadBy[], с ролью CONTRACTOR:

  • система находит самое старое (по sentAt) непрочитанное ролью CONTRACTOR сообщение,
  • если в ней notReadBy[].isNotifiacationSent == false, то отправляет уведомление на почту.

При отправке уведомления на почту, устанавливает этому сообщению notReadBy[].isNotifiacationSent == true

Для роли AGENT#

Уведомления отправляются только для только для приватных сообщений, которые не прочитаны пользователем с ролью AGENT

Для каждой заявки, в которой есть неприватные сообщения (isPrivate == true) у которых есть notReadBy[], с ролью AGENT:

  • система находит самое старое (по sentAt) непрочитанное ролью AGENT сообщение,
  • если в ней notReadBy[].isNotifiacationSent == false, то отправляет уведомление на почту.

При отправке уведомления на почту, устанавливает этому сообщению notReadBy[].isNotifiacationSent == true