# Черновик будущих вложений в DM ## Важно Этот документ описывает только ранний черновик идеи. Сейчас в проекте **нет** поддержки вложений в личных сообщениях: - в реализованном формате `SHiNE_DM` поле `attachmentsCount` пока всегда должно быть `0`; - UI не показывает кнопку прикрепления файлов; - сервер не принимает upload файлов для DM; - сервер не раздаёт специальные DM-файлы по отдельным endpoints; - сервер не хранит отдельные файловые связи для личных сообщений. Этот документ нужен только для того, чтобы рядом с актуальной документацией было явно видно: - какие идеи обсуждались; - что это **не реализовано**; - что формат, хранение и способ загрузки потом могут сильно измениться. ## Что обсуждалось Рассматривался такой общий подход: - у контентного DM есть внешний список вложений; - во внешнем формате лежат только технические данные; - человекочитаемые данные о файле живут внутри зашифрованного тела сообщения; - один и тот же blob-файл теоретически мог бы переиспользоваться в нескольких сообщениях. Черновой вариант внешнего списка: - `attachmentsCount` - далее для каждого вложения: - `encFileHashSHA256` (`32 bytes`) - `encFileSize` (`u64`) Черновой вариант внутреннего маркера в тексте: ```text <> ``` Где обсуждались поля: - `type` - `fileName` - `origSize` - `origHashB64u` - `encHashB64u` - `encSize` - `keyB64u` - `nonceB64u` ## Что может измениться В будущем могут измениться любые части идеи: - сам бинарный формат; - способ привязки файлов к сообщению; - момент загрузки файла относительно отправки сообщения; - серверное хранение blob-файлов; - права доступа к скачиванию; - способ рендера вложения в UI. Именно поэтому этот файл не надо воспринимать как актуальную спецификацию. ## Источник истины на сейчас Актуальное состояние личных сообщений описано только в: - `Dev_Docs/Personal_Messages/README.md` Если между этим черновиком и основным README есть расхождение, верным считается `README.md`.