33 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Communications module
`communications` — внутреннее Django-приложение EUSRR для чатов, сообщений, вложений, реакций, опросов и object-bound discussions.
## Контракты
- HTTP API и authentication: [`../../docs/guides/API.md`](../../docs/guides/API.md)
- WebSocket actions/events: [`../../docs/guides/WEBSOCKET.md`](../../docs/guides/WEBSOCKET.md)
- notifications flow: [`../../docs/guides/NOTIFICATIONS.md`](../../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/`.
## Проверка
```bash
cd backend
pytest tests/api/v1/communications tests/realtime -q
```
Manifest `pyproject.toml` нужен для проверки границ приложения. Публикация пакета в PyPI не является частью текущего workflow; URL и metadata manifest-а нельзя считать release configuration.