Обновление: Поддержка фото в Direct Messages
Что изменилось
Frontend
- ✅ Добавлена кнопка загрузки изображений (до 3 файлов)
- ✅ Превью выбранных файлов перед отправкой
- ✅ Отображение изображений в сообщениях DM
- ✅ Оптимистичная отправка с поддержкой вложений
- ✅ Возможность удалять файлы до отправки
Backend
- ✅ Обновлена модель
DirectMessage- content теперь nullable - ✅ Обновлена модель
Attachment- добавлено полеdm_message_id - ✅ Обновлен сервис
direct_message_service- поддержка attachments - ✅ Обновлен WebSocket обработчик
handle_dm_message- обработка вложений - ✅ Обновлена схема
DirectMessageSchema- добавлены attachments
Запуск миграции базы данных
ВАЖНО: Перед запуском приложения выполните миграцию!- Добавляет колонку
dm_message_idв таблицуattachments - Делает
message_idnullable в таблицеattachments - Делает
contentnullable в таблицеdirect_messages
Использование
Отправка фото в DM:
- Откройте чат с другом
- Нажмите кнопку ”+” слева от поля ввода
- Выберите до 3 изображений
- Добавьте текст (опционально)
- Нажмите кнопку отправки
Возможности:
- Отправка только фото (без текста)
- Отправка текста с фото
- Удаление выбранных файлов до отправки (кнопка X на превью)
- Просмотр изображений в полном размере (клик по изображению)
Технические детали
Структура сообщения с вложениями:
Ответ от сервера:
Измененные файлы
Frontend:
frontend/src/types/index.ts- обновлен тип DirectMessagefrontend/src/components/DirectMessageArea.tsx- добавлена поддержка загрузки и отображенияfrontend/src/services/uploadService.ts- использован для загрузки файлов
Backend:
backend/app/models/direct_message.py- добавлены attachmentsbackend/app/models/attachment.py- добавлено поле dm_message_idbackend/app/services/direct_message_service.py- поддержка attachmentsbackend/app/websocket/unified.py- обработка attachments в DMbackend/app/schemas/message.py- обновлена DirectMessageSchemabackend/migrate_add_dm_attachments.py- скрипт миграции (НОВЫЙ)