Архітектура прототипу
ШАБЛОН + СТРУКТУРОВАНА БД + AI + ГЕОГРАФІЯ + БРЕНД + PRODUCT/OFFER = мільйони автоматично сформованих сторінок.
Клікабельні сценарії
A · Потреба → лінійка → товар → продавець
B · Бренд → країни → продавці
D · Оголошення з AI-чернеткою
E · Товар: дубль → Offer
F · Сайт компанії
G · Виставковий стенд
H · Імпорт зі старої БД
Універсальні шаблони (по одному файлу на тип)
- • Лінійка: /$country/$city/$line — будь-яка комбінація країни, міста й лінійки
- • Товар: /product/$slug — Product + список Offer + геозріз
- • Оголошення: /listing/$slug
- • Продавець: /seller/$slug
- • Бренд: /brand/$slug
- • Виставковий стенд: /stand/$slug
- • Мінісайт компанії: /site/$slug
- • Картка результату та TOP-1 банер: спільні компоненти для всіх сторінок
Модель даних (mock = майбутня схема)
Country → Region → City Line → Category Brand → Product → Offer (seller_id, country_id, city_id, price) Seller → Website, ExhibitionStand, Review, Rating Listing (seller_id, line_id, category_id, country_id, city_id) Media, Translation(entity, field, locale), ImportSource(source, source_id, confidence)
Одна пропозиція зберігається один раз і показується на сторінці товару, бренду, міста, країни, лінійки, у профілі продавця та в AI-пошуку через зв'язки, а не копії.
Як підключити стару базу
- 1. Увімкнути backend і створити нову нормалізовану схему за моделлю вище.
- 2. Підключити стару базу тільки для читання як окреме джерело (ImportSource).
- 3. Запустити конвеєр READ → ANALYZE → MAP → VALIDATE → IMPORT зі сторінки «Імпорт БД».
- 4. Замінити селектори у src/data/db.ts на серверні запити — шаблони й компоненти не змінюються.
Готовність до масштабування
Країни й міста додаються рядками в базі, а не кодом. Переклади зберігаються в окремій сутності Translation (uk, en, de, fr, it) — основні сутності не дублюються. SEO-поля (title, description, canonical, H1, breadcrumbs, Open Graph, JSON-LD Product/Offer/LocalBusiness/Review/BreadcrumbList) формуються шаблоном для кожної згенерованої сторінки.