# ТЗ: Evrone Headless Media — издание на Contentful

Демонстрационная версия документа · категория «Контент и видео» · №18

> Это демонстрационное техническое задание: оно показывает структуру и глубину
> документа, который передаётся вместе с прототипом. Боевое ТЗ по этому солюшену
> готовится и заменит этот файл.

## 1. Суть решения

Contentful-ядро, Next.js-фронтенд, превью черновиков, миграция архива.

Медиа на headless CMS: Contentful как контент-ядро, Next.js-фронтенд, модели контента под издание, превью черновиков, вебхуки на пересборку, миграция архива со старой CMS (опыт переноса 130К+ статей VentureBeat). Миграция — отдельная продаваемая услуга-компаньон.

## 2. Технологический стек

| Слой | Решение |
|---|---|
| Backend | Ruby on Rails 8, PostgreSQL |
| Frontend | Hotwire (Turbo + Stimulus), Tailwind CSS |
| Фоновые задачи | Solid Queue |
| Файлы | Active Storage, S3-совместимое хранилище |
| Деплой | Docker, Kamal, production + staging |

## 3. Роли

- Редактор
- Разработчик фронтенда
- Контент-менеджер миграции

## 4. Модель данных

### 4.1. ContentModel

```
name: string
fields: jsonb # описание модели в Contentful
localized: boolean
```

### 4.2. Entry

```
content_type: string
fields: jsonb
state: enum # черновик, опубликовано
revision: integer
```

### 4.3. MigrationBatch

```
source: string
records_total: integer
records_done: integer
errors: jsonb
```

## 5. Ключевые сценарии

1. Редактор работает в Contentful, превью черновика открывается на фронтенде
2. Публикация вызывает вебхук и пересборку затронутых страниц
3. Архив старой CMS переносится пакетами с проверкой целостности
4. Битые ссылки и медиа фиксируются в отчёте миграции

## 6. Интеграции

- Contentful
- Next.js-фронтенд
- Пайплайн миграции
- CDN

## 7. Нефункциональные требования

- Серверный рендеринг, работоспособность ключевых страниц без JavaScript
- Мобильная адаптивность обязательна
- Роли и права проверяются на уровне сервера, а не интерфейса
- Логирование действий пользователей по значимым операциям
- Покрытие тестами моделей и ключевых сценариев
- Развёртывание одной командой, окружения production и staging

## 8. Состав MVP

Модели контента + фронтенд + миграционный пайплайн.

## 9. Критерии приёмки

1. Все сценарии из раздела 5 проходят end-to-end на тестовом стенде
2. Роли из раздела 3 видят только то, что им положено
3. Интеграции из раздела 6 работают через слой адаптеров и переключаются конфигурацией
4. Прототип разворачивается из репозитория одной командой
5. Документация по запуску и переменным окружения лежит в README
