Диспетчерская CRM для службы откачки септиков (ассенизаторские услуги, СПб и ЛО).
Инфраструктура: один Linux-сервер, PM2 (без Docker в продакшне).
Реалтайм: Postgres LISTEN/NOTIFY → tRPC SSE-подписки → автообновление на клиентах.
Аутентификация: Auth.js v5, credentials (email + пароль), JWT в cookie.
Хранилище файлов: MinIO (S3-совместимый, для фото).
Роли и права
В системе три роли: Администратор, Диспетчер, Водитель.
Администратор
Полный доступ ко всему. Дополнительно видит разделы:
Финансы, Сливы
Администрирование → Сотрудники, Настройки
Может:
Удалять заявки, клиентов, задачи
Редактировать выполненные заявки (status = done)
Менять статус выполненной заявки
Управлять сотрудниками (создание, редактирование, деактивация)
Видеть кнопки удаления везде (безнал, канбан, таблица, карточка)
Диспетчер
Работает с заявками по полному циклу, но не может:
Удалять заявки (только ставить статус «Отказ»)
Удалять клиентов
Редактировать / менять статус выполненной заявки (status = done)
Удалять операции в безнале
Видеть разделы: Финансы, Сливы, Сотрудники, Настройки
Все ограничения принудительны на бэкенде (TRPC FORBIDDEN) — не только скрыты в UI.
Водитель
Доступ только через мобильное приложение. Через веб-панель не работает.
Может:
Видеть свои заявки на сегодня
Менять статус своих заявок (new → work → done/skip)
Видеть историю заявок за 30 дней
Менять слив на своей заявке