chore(openspec): archive add-video-support and sync main specs

This commit is contained in:
iu
2026-10-11 20:38:22 +03:00
parent d38ede0201
commit b2e0dd6d30
14 changed files with 218 additions and 8 deletions
+19 -1
View File
@@ -29,7 +29,8 @@ SHALL не выводиться в поток вывода.
### Requirement: Создание альбомов и фотографий
Скрипт SHALL создавать заданное параметрами число альбомов и фотографий в каждом от имени
аутентифицированного владельца через `POST /api/albums` и
`POST /api/albums/:id/photos`. Названия альбомов SHALL содержать метку прогона.
`POST /api/albums/:id/photos`. Названия альбомов SHALL содержать метку прогона. При
включённом флаге видео скрипт SHALL дополнительно загружать видео-фикстуры.
#### Scenario: Наполнение альбомами и фото
- **WHEN** скрипт запущен с числом альбомов и фотографий на альбом
@@ -39,6 +40,10 @@ SHALL не выводиться в поток вывода.
- **WHEN** задан числовой seed
- **THEN** структура и параметры генерируемых данных детерминированы для этого seed
#### Scenario: Флаг видео
- **WHEN** скрипт запущен с включённым флагом видео
- **THEN** помимо изображений часть альбомов получает видео-фикстуры
### Requirement: Генерация изображений с EXIF
Скрипт SHALL генерировать загружаемые изображения на лету. При доступной библиотеке Pillow
он SHALL использовать JPEG с EXIF-метаданными (время съёмки, при необходимости GPS); при
@@ -109,3 +114,16 @@ HTTP-клиент; Pillow SHALL быть необязательной завис
#### Scenario: Значения по умолчанию
- **WHEN** цель запущена без параметров
- **THEN** используются документированные значения по умолчанию
### Requirement: Наполнение видео
При включённом флаге видео скрипт SHALL загружать видео-фикстуру через общий эндпоинт
загрузки; если генерация видео недоступна, скрипт SHALL пропускать видео и продолжать без
ошибки.
#### Scenario: Видео включено
- **WHEN** включён флаг видео
- **THEN** в часть альбомов загружаются видео-фикстуры, различимые по метке прогона
#### Scenario: Генерация недоступна
- **WHEN** видео-инструменты недоступны, а флаг видео включён
- **THEN** скрипт пропускает видео и продолжает наполнение