Appearance
Каналы коммуникации
Структурированные каналы для общения в стиле Slack: публичные обсуждения, приватные группы, личные сообщения и каналы проектов.
Как открыть
Боковое меню → Коммуникации → Каналы
Зачем нужны каналы
На производстве критична скорость коммуникации. Каналы заменяют хаотичные звонки и записки:
- Публичный канал
#производство-цех1— все видят обсуждение смены. - Канал проекта
#заказ-145— автоматически создаётся при крупном заказе, все участники видят прогресс. - Личные сообщения — мастер пишет диспетчеру о проблеме.
- Приватный канал
#планёрка-мастеров— только для мастеров участков.
Вся переписка сохраняется и привязана к производственным сущностям — можно быстро найти, что обсуждалось по конкретному заказу.
Четыре типа каналов
| Тип | Код | Описание | Создание |
|---|---|---|---|
| Публичный | public | Виден всем, любой может присоединиться | Вручную |
| Приватный | private | Только по приглашению | Вручную |
| Личные сообщения | direct | Переписка двух пользователей | Автоматически при первом сообщении |
| Канал проекта | project | Привязан к заказу/проекту | Автоматически при создании заказа |
Автоматическое создание
Каналы типа direct создаются автоматически при первом сообщении между двумя пользователями (slug: dm-{uuid1}-{uuid2}). Каналы типа project создаются при запуске крупного заказа (slug: project-{orderId}).
Что на экране
Список каналов
| Столбец | Описание | Пример |
|---|---|---|
| Имя | slug канала | #производство-цех1 |
| Название | Человекочитаемое имя | Производство - Цех 1 |
| Тип | Публичный / Приватный / ЛС / Проект | Публичный |
| Сообщений | Счётчик сообщений | 342 |
| Последняя активность | Когда было последнее сообщение | 5 мин назад |
| Участников | Количество подписчиков | 12 |
| Архив | Да / Нет | Нет |
Фильтры
| Фильтр | Варианты |
|---|---|
| Тип | Все / Публичный / Приватный / ЛС / Проект |
| Статус | Активные / Архивные |
Создание канала
Обязательные поля
| Поле | Описание |
|---|---|
| Slug * | Уникальное имя (lowercase, дефисы): производство-цех1 |
| Название * | Человекочитаемое: «Производство - Цех 1» |
| Тип * | public / private / direct / project |
Дополнительные поля
| Поле | Описание |
|---|---|
| Описание | Цель канала, правила |
| Связанная сущность | Для project каналов: тип (production_order) и UUID заказа |
| Участники DM | Для direct каналов: массив из 2 UUID пользователей |
| Модераторы | Массив UUID модераторов |
Участие в канале (ChannelMembership)
Каждый участник канала имеет:
| Поле | Описание |
|---|---|
| Канал | FK на Channel |
| Пользователь | FK на User |
| Роль | owner / moderator / member |
| Уведомления | all / mentions / muted |
| Непрочитанных | Счётчик непрочитанных сообщений |
| Последнее чтение | Когда пользователь последний раз открывал канал |
Роли в канале
| Роль | Код | Права |
|---|---|---|
| Владелец | owner | Все: настройки, удаление канала, управление участниками |
| Модератор | moderator | Удалять сообщения, добавлять/удалять участников |
| Участник | member | Читать и отправлять сообщения |
Уровни уведомлений
| Уровень | Код | Когда уведомляет |
|---|---|---|
| Все | all | Каждое новое сообщение |
| Упоминания | mentions | Только при @упоминании или @channel |
| Отключено | muted | Никогда (счётчик непрочитанных обновляется) |
Сообщения (ChannelMessage)
Каждое сообщение поддерживает:
| Возможность | Описание |
|---|---|
| Markdown | Форматирование текста (до 5000 символов) |
| Вложения | Файлы: [{name, url, type, size}], максимум 10 |
| Треды | Ответы в thread (как в Slack) — parent_message_id |
| Упоминания | @пользователь → уведомление. @channel → уведомить всех |
| Закрепление | is_pinned — важное сообщение закрепляется вверху |
| Редактирование | Пометка (edited) и edited_at |
| Мягкое удаление | Текст скрывается, запись остаётся |
Поля сообщения
| Поле | Описание |
|---|---|
| Канал | FK на Channel |
| Автор | FK на User (NULL для системных) |
| Текст | Markdown, до 5000 символов |
| Вложения | JSON: [{name, url, type, size}] |
| Родительское | UUID для ответа в thread |
| Ответов | Счётчик ответов в thread |
| Упоминания | Массив UUID упомянутых пользователей |
| @everyone | Флаг уведомления всех |
| Закреплено | Да / Нет |
Архивация
Архивированный канал (is_archived = true) становится read-only:
- нельзя отправлять новые сообщения;
- нельзя добавлять участников;
- историю можно читать.
Архивация используется для завершённых проектов: заказ выполнен — канал проекта архивируется.
Правила валидации
| Правило | Описание |
|---|---|
| BR-840 | channel_type определяет видимость и доступ |
| BR-841 | slug уникален (lowercase, alphanumeric, дефисы) |
| BR-842 | Архивированный канал — read-only |
| BR-845 | Project канал обязан иметь related_entity_type и related_entity_id |
| BR-850 | Один пользователь = одно участие в канале |
| BR-862 | Максимум 10 вложений в сообщении |
Для кого
| Роль | Что делает |
|---|---|
| Мастер | Обсуждает задачи в канале участка, пишет диспетчеру |
| Диспетчер | Координирует через каналы проектов, объявления |
| Оператор | Читает канал своего участка, сообщает о проблемах |
| Технолог | Обсуждает технические вопросы в приватных каналах |
| Руководитель | Делает объявления, контролирует активность каналов |