chore(openspec): archive add-video-support and sync main specs
This commit is contained in:
@@ -7,16 +7,25 @@
|
||||
## Requirements
|
||||
|
||||
### Requirement: Загрузка фото
|
||||
Пользователь с правом загрузки SHALL иметь возможность загружать фото по одному и массово.
|
||||
Пользователь с правом загрузки SHALL иметь возможность загружать медиа (изображения и
|
||||
видео) по одному и массово; система SHALL принимать ввод `image/*` и `video/*`.
|
||||
|
||||
#### Scenario: Успешная загрузка
|
||||
- **WHEN** участник с правом загрузки отправляет файл изображения
|
||||
- **THEN** система сохраняет оригинал и создаёт запись фото с метаданными
|
||||
|
||||
#### Scenario: Успешная загрузка видео
|
||||
- **WHEN** участник с правом загрузки отправляет видеофайл
|
||||
- **THEN** система сохраняет оригинал и создаёт медиа-запись с признаком видео
|
||||
|
||||
#### Scenario: Загрузка без права
|
||||
- **WHEN** наблюдатель пытается загрузить фото
|
||||
- **THEN** система отклоняет запрос
|
||||
|
||||
#### Scenario: Неподдерживаемый файл
|
||||
- **WHEN** загружается файл, не являющийся изображением или видео
|
||||
- **THEN** система отклоняет загрузку
|
||||
|
||||
### Requirement: Варианты изображений
|
||||
|
||||
Система SHALL генерировать четыре варианта: thumb (200×200, квадратный кроп), medium
|
||||
@@ -110,13 +119,17 @@ EXIF (дата, координаты, размеры).
|
||||
- **THEN** система отклоняет запрос
|
||||
|
||||
### Requirement: Ограничение размера загрузки
|
||||
Система SHALL ограничивать размер загружаемых файлов и SHALL отвечать понятной ошибкой при
|
||||
превышении лимита, а не ошибкой разбора формы.
|
||||
Система SHALL ограничивать размер загружаемых файлов отдельно для изображений и видео и
|
||||
SHALL отвечать понятной ошибкой при превышении лимита, а не ошибкой разбора формы.
|
||||
|
||||
#### Scenario: Превышение лимита
|
||||
- **WHEN** загружаемый файл превышает максимальный размер
|
||||
- **THEN** система отклоняет загрузку с явной ошибкой о превышении размера
|
||||
|
||||
#### Scenario: Превышение лимита видео
|
||||
- **WHEN** загружаемое видео превышает лимит видео
|
||||
- **THEN** система отклоняет загрузку с явной ошибкой о превышении размера
|
||||
|
||||
#### Scenario: Файл в пределах лимита
|
||||
- **WHEN** файл не превышает лимит
|
||||
- **THEN** система принимает multipart-загрузку и обрабатывает фото
|
||||
@@ -208,3 +221,20 @@ EXIF (дата, координаты, размеры).
|
||||
#### Scenario: Повторный показ без перезагрузки
|
||||
- **WHEN** сетка превью перерисовывается, а URL объектов не изменились
|
||||
- **THEN** браузер отдаёт объекты из кэша без повторного запроса к бэкенду
|
||||
|
||||
### Requirement: Медиа-запись фото
|
||||
Данные фото SHALL включать вид медиа (`image` | `video`), длительность для видео и адрес
|
||||
воспроизведения, когда видео-вариант готов; для изображений адрес воспроизведения
|
||||
отсутствует.
|
||||
|
||||
#### Scenario: Запись изображения
|
||||
- **WHEN** клиент получает данные изображения
|
||||
- **THEN** вид медиа — изображение, длительность и адрес воспроизведения отсутствуют
|
||||
|
||||
#### Scenario: Запись видео без готового варианта
|
||||
- **WHEN** клиент получает данные видео, а вариант ещё не готов
|
||||
- **THEN** вид медиа — видео, длительность присутствует, адрес воспроизведения отсутствует
|
||||
|
||||
#### Scenario: Запись видео с готовым вариантом
|
||||
- **WHEN** видео-вариант готов
|
||||
- **THEN** данные медиа содержат адрес воспроизведения
|
||||
|
||||
Reference in New Issue
Block a user