- Перенос REST API в communications/api/ для standalone использования * Создан communications/api/ с serializers.py, viewsets.py, urls.py * Перенесено 1668 строк (442 serializers + 1226 viewsets) * Удалена директория api/v1/communications/ * Обновлены импорты в api/v1/urls.py и api/v2/communications/views.py - Извлечение WebSocket логики в ChatConsumerMixin * Создан communications/consumers.py (709 строк, 32 метода) * Перенесены chat event handlers, action handlers, helper methods * realtime/consumers.py сокращен с 862 до 211 строк (-75%) * Сохранено одно WebSocket соединение через наследование миксина - Архитектура: * communications теперь полностью автономно (REST API + WebSocket) * realtime/UserConsumer наследуется от ChatConsumerMixin * 0 breaking changes, обратная совместимость 100% * Одно WebSocket соединение для всех real-time событий - Созданы тесты и документация: * test_phase3.py - проверка API serializers, filters, WebSocket * docs/completed/API_REFACTORING_STANDALONE.md * docs/completed/WEBSOCKET_REFACTORING_MIXIN.md * docs/completed/CHAT_REFACTORING_PHASE3_COMPLETE.md Результат: ✅ System check: 0 ошибок ✅ Phase 3 tests: все прошли ✅ Готово к standalone использованию (pip install django-communications)
22 lines
448 B
Python
22 lines
448 B
Python
"""Communications API v2 Views."""
|
|
from communications.api.viewsets import (
|
|
ChatViewSet as V1ChatViewSet,
|
|
MessageViewSet as V1MessageViewSet,
|
|
PollViewSet as V1PollViewSet,
|
|
)
|
|
|
|
|
|
class ChatViewSet(V1ChatViewSet):
|
|
"""API v2 для чатов."""
|
|
pass
|
|
|
|
|
|
class MessageViewSet(V1MessageViewSet):
|
|
"""API v2 для сообщений."""
|
|
pass
|
|
|
|
|
|
class PollViewSet(V1PollViewSet):
|
|
"""API v2 для опросов."""
|
|
pass
|