- Удалено поле last_read_at из ChatReadState, используется только last_read_message FK - Исправлена логика автоотметки: отмечается последнее ЗАГРУЖЕННОЕ сообщение, а не последнее в чате - Убран вызов chat.mark_read() при WebSocket open_chat (отмечал последнее в чате вместо загруженного) - Добавлен signal для мониторинга изменений ChatReadState - Исправлена логика скролла: убран автоскролл при дозагрузке вниз - Добавлена проверка разрывов при WebSocket сообщениях (предотвращает пропуск сообщений) - Реализована автоотметка WebSocket сообщений (только если пользователь внизу) - Асимметричная загрузка: 24 контекста + 6 новых сообщений - Добавлен ScrollableMessageList компонент для корректной работы скролла - Миграции: 0028 (удаление last_read_at), 0029 (индекс на last_read_message)
Backend Documentation
Техническая документация по backend части проекта EUSRR.
📁 Структура
guides/
Руководства разработчика - инструкции по работе с различными модулями
- CONTEXT_MENU_GUIDE.md - работа с контекстными меню
- REACTIONS_GUIDE.md - система реакций
troubleshooting/
Отладка и исправления - диагностика проблем
- CONTEXT_MENU_DEBUG.md - отладка контекстного меню
- MESSAGE_DELETE_DEBUG.md - отладка удаления сообщений
- MESSAGE_DELETE_FIX.md - исправление проблем удаления
architecture/
Архитектурная документация - устройство систем
- API_ANALYSIS.md - анализ API
- API_REFACTORING_SUMMARY.md - результаты рефакторинга API
- VIEWSET_ANALYSIS.md - анализ ViewSet
testing/
Тестирование - планы и результаты тестирования
- POSITION_PERMISSIONS_TESTING.md - тестирование прав должностей
- REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
- TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений
reports/
Отчеты и аудиты - результаты проверок и реорганизаций
- BACKEND_CLEANUP_AUDIT.md - аудит очистки backend/
- REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
- TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений
🔍 Навигация
По типу задачи:
- Как работает X? → architecture/
- Как настроить Y? → guides/
- Проблема с Z → troubleshooting/
- Как тестировать? → testing/
Связанная документация:
- /docs/ - общая документация проекта
- backend/scripts/ - вспомогательные скрипты
📝 Правила
Добавление новой документации:
- Guides - постоянные инструкции, reference материалы
- Troubleshooting - временные документы, после решения → удалить
- Architecture - долгосрочная документация, обновлять при изменениях
- Testing - планы тестирования, после завершения → архивировать
Формат файлов:
# Заголовок
**Дата:** DD.MM.YYYY
**Автор:** Имя
**Статус:** Актуально / Устарело / В процессе
## Описание
...
## Использование
...
## Примеры
...
🔄 Жизненный цикл
- Создание - документируйте новую фичу/проблему
- Актуализация - обновляйте при изменениях
- Архивация - после завершения/решения
- Удаление - если больше не актуально
Поддерживайте документацию актуальной! 📚