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

Отправка текстовых сообщений#

Пользователи процесса#

Предусловия#

Точки входа#

  • Пользователь ввел текстовое сообщение в переписке по заявке

Варианты завершения#

  • Текстовое сообщение отправлено
  • Текстовое сообщение не отправлено

Процесс#

Шаг Описание
1 Пользователь набирает сообщение, при необходимости ставит признак приватности
2 Пользователь отправляет сообщение
3 Система отображает пользователю-отправителю сообщение в статусе Отправляется
3.1 Если пользовать поставил признак приватности сообщения, система:
- отображает сообщение как Приватное
- возвращает переключатель приватности в false (следующее отправляемое сообщение по-умолчанию не приватное)
4 Система сохраняет сообщение
4.1 Если системе не удалось сохранить сообщение, отображает сообщение в статусе Ошибка отправки
4.2 Если пользователь нажимает кнопку повторной отправки сообщения, возврат к шагу 3, иначе Конец сценария.
5 Система отображает сообщение всем пользователям (список сообщений сдвигается). Если применимо к пользователю, то в статусе Отправлено
5.1 Если сообщение имеет признак приватности (isPrivate == true), система отображает сообщение как Приватное

Особенности процесса#

  • могут быть введены любые символы
  • максимальное количество символов в одном сообщении = 2000
  • при вводе длинного текста, поле ввода расширяется по вертикали до 6 строк. Если строк больше - появляется скролл для прокрутки текста
  • кнопка отправки становится доступна, если в поле ввода введены символы
  • сообщение отправляется при нажатии на Enter на клавиатуре или на кнопку отправки на экранной форме

Сохранение сообщения#

Модель message.schema.json

  • Id - уникальный Id сообщения
  • sentAt - дата и время отправки сообщения пользователем
  • sentBy - id пользователя, отправившего сообщение
  • messageType
    • TEXT - при отправке текстового сообщения
    • FILE - при отправке файла
  • messageText - заполняется текстом отправляемого сообщения
  • isPrivate- true, если пользователь установил этот признак перед отправкой сообщения/файла
  • file.path - путь к загруженному файлу
  • file.name - отображаемое название файла - соответствует названию файла, который выбрал пользователь
  • file.size - отображаемы размер файла - соответствует размеру файла, который выбрал пользователь
  • notReadBy[]
    • добавляются роли CONTRACTOR, AGENT, CUSTOMER,
    • исключая роль автора сообщения.
    • для приватных сообщений исключается роль CUSTOMER.
    • для НЕ приватных сообщений при отправке ролью CONTRACTOR исключается роль AGENT
  • replyForId - если это был ответ на другое сообщение, Id сообщения на которе был ответ
  • links[] - при наличии ссылок (может быть больше одной внутри текста), каждая ссылка парсится и сохраняется отдельным элементом в links[], для дальнейшего отображения в списке ссылок:
    • url - адрес ссылки

Если сохраняемое сообщение является ответом на друге сообщение (указан replyForId), то в сообщении, на которое отвечает пользователь, заполняется:

  • hasReply - true