@ -2,8 +2,8 @@
## Клиника ухо, горло, нос им. проф. Е.Н.Оленевой
**Версия контекста:** 4.3
**Дата обновления:** 2026-03-24
**Версия контекста:** 4.4
**Дата обновления:** 2026-03-25
**Актуальный спринт:** Sprint 5.5
**Сайт клиники:** https://oclinica.ru
**Брендбук (локально):** http://localhost:3001
@ -416,7 +416,47 @@ CSS-классы в `globals.css`. Компонент: `@/components/ui/Button`
---
## 10. Технический стек проекта
## 10. Система версий блоков
Каждый блок поддерживает версионирование с HTML-снимками.
### Модель данных
**Block** — текущее состояние блока:
- `path` (unique), `version` , `isInPreview` , `changelog` (JSON), `name`
**BlockSnapshot** — архивный снимок версии:
- `blockPath` , `version` (unique пара), `html` (Text), `css` (Text), `changelog` (JSON)
### API эндпоинты
| Метод | URL | Назначение |
|-------|-----|------------|
| GET | `/blocks` | Все блоки |
| GET | `/blocks/by-path?path={path}` | Блок по пути (auto-create) |
| PATCH | `/blocks/by-path?path={path}` | Обновить version/isInPreview/changelog |
| POST | `/blocks/snapshots?path={path}` | Создать/обновить HTML-снимок версии |
| GET | `/blocks/snapshots?path={path}` | Список снимков (id, version, createdAt) |
| GET | `/blocks/snapshots/:id` | Полный снимок (html + css) |
### Компоненты
- **BlockMetaBar** (`components/ui/BlockMetaBar.tsx`) — версия dropdown, toggle «В превью», кнопка «Сохранить версию»
- Prop `onSnapshotSelect` — callback при выборе архивной версии
- При сохранении захватывает `innerHTML` из `[data-block-capture="{path}"]` + CSS правила с `bb-` префиксом
- **BlockChangelog** (`components/ui/BlockChangelog.tsx`) — рендер истории версий
### Архитектура страниц блоков
Каждая страница блока разделена на:
- `page.tsx` — Server Component (экспортирует `metadata` )
- `XxxPageClient.tsx` — Client Component (state для snapshot, `data-block-capture` для захвата)
При просмотре архивной версии живой компонент заменяется на `dangerouslySetInnerHTML` со снимком.
---
## 11. Технический стек проекта
| Слой | Технология | Версия |
|------|-----------|--------|
@ -431,7 +471,7 @@ CSS-классы в `globals.css`. Компонент: `@/components/ui/Button`
---
## 11 . История изменений контекста
## 12 . История изменений контекста
| Версия | Дата | Что добавлено |
|--------|------|---------------|
@ -443,10 +483,11 @@ CSS-классы в `globals.css`. Компонент: `@/components/ui/Button`
| 4.1 | 2026-03-22 | Sprint 4 done: карточки (DoctorCard/NewsCard/ReviewCard/PriceCard/ServiceCard), бейджи/теги/алерты |
| 4.2 | 2026-03-23 | Sprint 5: блоки Hero v1.1, Doctors v1.1 |
| 4.3 | 2026-03-24 | Sprint 5.5: исправлены CSS-стили блоков по реальному сайту (H1 #cb9768 36px, H2 #000 36px, фоны форм #d4f6f8 , фон новостей #f2fee6 , CTA-кнопка pill) |
| 4.4 | 2026-03-25 | Sprint 5.5: кнопка «Сохранить версию» (snapshot HTML+CSS в PostgreSQL), dropdown переключения между версиями блоков, навигация v1.3 с подменю, блоки обновлены из предыдущей сессии |
---
## 12 . Что обновлять в этом файле
## 13 . Что обновлять в этом файле
При каждом спринте добавляй:
- Новые компоненты и их спецификации (цвета, размеры, состояния)