Что такое demoVisualKey
В demo-версии TexCloud медиа не содержит реальный файл или внешний URL. Вместо этого карточки используют demoVisualKey: короткий ключ, который выбирает безопасную CSS/SVG-заглушку для ткани, спецодежды, производства, логистики, города, тендера или вакансии.
Файлы не загружаются и не отправляются на сервер.
Внешние изображения и CDN не подключены.
Одна модель media используется для компаний, marketplace, заявок, тендеров, вакансий, регионов, городов и новостей.
Почему файлы пока не загружаются
Текущий интерфейс является frontend/demo-слоем без backend, хранилища файлов, модерации, прав доступа и audit log. Поэтому любые формы добавления медиа честно показывают, что файл не загружается, а карточка создаётся только как локальный demo-пример.
Какие изображения будут нужны
Будущий asset pass должен подготовить hero-изображения, OG-шаблоны, обложки городов, визуалы категорий, product media для marketplace, фото производства компаний, изображения рабочих мест для вакансий, tender/document previews и системные empty states.
Для товаров и компаний важны реальные или реалистичные производственные изображения.
Для admin, legal, support, карт и empty states лучше оставить CSS/SVG/TSX.
OG-картинки должны появляться в metadata только после фактического создания файлов.
Требования к будущим изображениям
Изображения должны соответствовать B2B SaaS-стилю TexCloud: серьёзная промышленная эстетика, светлая палитра, аккуратные textile/production/logistics мотивы и отсутствие случайных логотипов, нечитаемого текста, искажённой техники или персональных данных.
Visual asset registry
Asset Pass №1 добавляет visual asset registry: связующий слой между asset-map, demoVisualKey и будущими файлами в /public/assets. Если файл ещё не создан, registry не отдаёт src, а интерфейс продолжает показывать CSS/SVG demo fallback без broken image icon.
demoVisualKey остаётся безопасным fallback для текущих карточек.
Статус available можно ставить только для реально существующего локального файла.
OG и hero assets подключаются постепенно, после генерации и QA.
Что уже подключено локально
Production Visual Asset Pass №1 добавил первую партию локальных SVG-файлов в /public/assets и подключил их через VisualAsset. Теперь ключевые hero-блоки, категории тканей/спецодежды/пошива, город Иваново, fabric-rolls и tender-documents могут показывать реальные локальные SVG вместо CSS-заглушки.
SVG-файлы хранятся локально и не загружаются из внешних источников.
Если для demoVisualKey ещё нет файла, интерфейс продолжает показывать безопасный fallback.
Это не означает реальную загрузку пользовательских фото: upload, storage, moderation и backend всё ещё не подключены.
Как используются PNG-ассеты
Следующий asset pass добавил локальный SVG→PNG pipeline. Одобренные SVG-шаблоны экспортируются в PNG через скрипт /scripts/export-svg-assets-to-png.mjs, а registry подключает PNG как основной production-визуал только после фактического создания файла.
PNG-файлы создаются локально, без скачивания изображений из интернета.
SVG остаётся исходником и fallback-ассетом для будущих правок.
Если PNG для demoVisualKey отсутствует, интерфейс продолжит показывать безопасную CSS/SVG-заглушку.
Пользовательские фото, реальные документы и storage появятся только после backend/media-модуля.
Что появится после backend
После backend можно будет добавить загрузку файлов, хранение, модерацию, статусы, права владельца, безопасное удаление, оптимизацию форматов, alt-тексты, связь с карточками и журнал действий. До этого момента media остаётся demo-интерфейсом.
Demo-media не является реальной загрузкой изображения и не подтверждает наличие фото, документа или сертификата у компании.
