Skip to main content
Справочник всех сущностей и полей, задействованных в списке уведомлений, их чтении и архивации. Это словарь-компаньон к странице логики Чтение, архивация и список.

Понятия

Модели и поля

Уведомление

Одно событие-уведомление компании, адресованное объекту системы и разосланное по каналам. Рассылка получателям запускается при создании записи. Идентификация Связи Содержимое Адресация Маршрутизация Захват Служебные

Уведомление пользователя

Персональное состояние уведомления для конкретного получателя (прочтение/архив). Уникальность по паре компания + пользователь + уведомление. Идентификация Связи Состояние Служебные

Список уведомлений (API)

Постраничный список уведомлений компании с курсорной пагинацией, поиском по тексту и фильтрами прочтения/архива. Поиск по тексту уведомления; сортировка по убыванию времени обновления.

Базовый запрос уведомлений

Общий queryset, который ограничивает выборку текущей компанией и скрывает одноразовые уведомления, уже забранные другим пользователем. Исключает одноразовые уведомления с заполненным получателем-захватчиком, не равным текущему пользователю.

Курсорная пагинация уведомлений

Настройка курсорной постраничности со сортировкой по убыванию времени обновления.

Действия пользователя над уведомлениями

Набор действий: счётчик непрочитанных, пометка прочтения и архивация. Счётчик непрочитанных = все видимые уведомления минус строки состояния пользователя.

Формат уведомления

Формат выдачи уведомления в списке. Поле автора отдаётся как идентификатор пользователя; создано/одноразовый захват/кем забрано/когда забрано доступны только для чтения.

Базовый ввод по списку ID

Общая часть запросов чтения/архивации: список идентификаторов уведомлений.

Пометить прочитанным

Атомарно создаёт строки состояния «прочитано»; для одноразовых уведомлений реализует захват по принципу «первый выиграл» и рассылает удаление у остальных. Признак «прочитать все» помечает все уведомления; проигравшие гонку за одноразовое уведомление пропускаются.

Архивировать уведомления

Переводит строки состояния пользователя в архив; при выборе «архивировать все» досоздаёт недостающие состояния и архивирует всё. Признак «архивировать все» архивирует все уведомления пользователя.

Фильтр уведомлений пользователя

Фильтрация списка по состоянию пользователя: прочитано, в архиве, тип объекта. Признаки «в архиве» и «прочитано» вычисляются через наличие строк персонального состояния.

Статусы и справочники

Тип уведомления

Уровень важности уведомления (влияет на визуальное оформление).
  • Информация
  • Предупреждение
  • Тревога