Бобер Боб
Платформа складского учёта
Платформа складского учёта · Release notes · v1.7.0

История версий — v1.7.0

Система уведомлений переработана с нуля в полноценный механизм платформы (Задание 131): вместо тысяч сырых записей БД Filament — события с четырьмя уровнями критичности: 1 «Информация» (произошло событие), 2 «Внимание» (проактивная защита — что-то не так), 3 «Важное» (привезли товар, новый пользователь), 4 «Критично» (система упала, ошибка — глобальное уведомление всем). Открыл уведомление — автоматически прочитано, как в YouTube: красный счётчик убавляется сам, кнопок «отметить прочитанным» нет. Логируется, кто и когда просмотрел (viewed_at). Пользователь настраивает, какие уровни показывать; критичные скрыть нельзя. Одинаковые события схлопываются в одну запись с счётчиком «×N» (агрегация): импорт 222 движений даёт одно сводное уведомление — не тысячи. Каналы: внутри приложения, письмо администратору, Telegram-бот. Собственный колокольчик Livewire в шапке (вместо вендорного).

minor Выпущена 26.09.2026
v1.7.0 minor от 26.09.2026

Задание 131. Уведомления: 4 уровня критичности, YouTube-чтение, настройки пользователя, почта и Telegram — без тысяч записей

4 уровня критичности

  • 1 Информация — произошло событие: перемещение товара, добавлен товар в каталог
  • 2 Внимание — проактивная защита «что-то не так»: вход пользователя, низкий остаток, лид веб-чата
  • 3 Важное — привезли/увезли товар, создан новый пользователь, итог импорта данных
  • 4 Критично — система упала, ошибка: глобальное уведомление, приходит всем, скрыть нельзя

YouTube-семантика чтения

  • Открыл список в колокольчике — показанные уведомления автоматически помечены прочитанными
  • Кликнул строку — отмечено прочитанным + переход к событию (related_url)
  • Кнопок «прочитано» нет — циферка убавляется при просмотре, как в YouTube
  • Логирование — таблица notification_recipients.viewed_at: кто и когда посмотрел (система и ИИ-агент видят)

Настройки и каналы

  • Per-user — Настройки → Уведомления: пользователь включает/выключает уровни 1–3 (таблица user_notification_settings)
  • Email — важные (3+) и критические уведомления пишутся администратору на почту
  • Telegram — Bot Token и Chat ID администратора: важные события; критичные уходят всегда, если интеграция настроена

Агрегация вместо тысяч записей

  • group_key + окно — одинаковые события внутри окна схлопываются в одну запись с счётчиком «×N»
  • Импорт XLSX (222 движения) — одно сводное уведомление об импорте, наблюдатели на время импорта отключены
  • Не 1525 и не «каждое движение» — за день 1–5…20 событий, как нужно

Реализация

  • Таблицы — platform_notifications (уровни, категории, источники, group_key, occurrences), notification_recipients (viewed_at), user_notification_settings
  • App\Services\NotificationService — единый notify(): уровни, агрегация, маршрутизация по настройкам, каналы, markViewed
  • App\Livewire\NotificationBell — колокольчик в шапке панели (renderHook TOPBAR_END)
  • /admin/notifications — таблица с цветными бейджами уровней, авто-чтение кликом, переход к событию
  • Версия платформы — 1.6.2 → 1.7.0 (config/app.php, config/instances.php, versions.json)
← Ко всем версиям