Communications module
communications — внутреннее Django-приложение EUSRR для чатов, сообщений, вложений, реакций, опросов и object-bound discussions.
Контракты
- HTTP API и authentication:
../../docs/guides/API.md - WebSocket actions/events:
../../docs/guides/WEBSOCKET.md - notifications flow:
../../docs/guides/NOTIFICATIONS.md - точный HTTP contract:
/api/docs/и/api/schema/ - точный realtime contract:
/api/ws/docs/и/api/ws/schema/
Структура
models.py— chats, membership, messages, attachments, reactions, polls и read state;api/— DRF viewsets, serializers и permissions;consumers.py—ChatConsumerMixin, подключённый кrealtime.UserConsumer;notifications/— адаптер chat events к общей системе notifications;services/— операции, которые не должны жить во viewset/consumer;management/commands/— проверка и обслуживание данных чатов.
REST prefix: /api/v1/communications/. WebSocket endpoint общий для проекта: /ws/.
Проверка
cd backend
pytest tests/api/v1/communications tests/realtime -q
Manifest pyproject.toml нужен для проверки границ приложения. Публикация пакета в PyPI не является частью текущего workflow; URL и metadata manifest-а нельзя считать release configuration.