# Spec Delta ## MODIFIED Requirements ### Requirement: Загрузка фото Пользователь с правом загрузки SHALL иметь возможность загружать медиа (изображения и видео) по одному и массово; система SHALL принимать ввод `image/*` и `video/*`. #### Scenario: Успешная загрузка - **WHEN** участник с правом загрузки отправляет файл изображения - **THEN** система сохраняет оригинал и создаёт запись фото с метаданными #### Scenario: Успешная загрузка видео - **WHEN** участник с правом загрузки отправляет видеофайл - **THEN** система сохраняет оригинал и создаёт медиа-запись с признаком видео #### Scenario: Загрузка без права - **WHEN** наблюдатель пытается загрузить фото - **THEN** система отклоняет запрос #### Scenario: Неподдерживаемый файл - **WHEN** загружается файл, не являющийся изображением или видео - **THEN** система отклоняет загрузку ### Requirement: Ограничение размера загрузки Система SHALL ограничивать размер загружаемых файлов отдельно для изображений и видео и SHALL отвечать понятной ошибкой при превышении лимита, а не ошибкой разбора формы. #### Scenario: Превышение лимита - **WHEN** загружаемый файл превышает максимальный размер - **THEN** система отклоняет загрузку с явной ошибкой о превышении размера #### Scenario: Превышение лимита видео - **WHEN** загружаемое видео превышает лимит видео - **THEN** система отклоняет загрузку с явной ошибкой о превышении размера #### Scenario: Файл в пределах лимита - **WHEN** файл не превышает лимит - **THEN** система принимает multipart-загрузку и обрабатывает фото ## ADDED Requirements ### Requirement: Медиа-запись фото Данные фото SHALL включать вид медиа (`image` | `video`), длительность для видео и адрес воспроизведения, когда видео-вариант готов; для изображений адрес воспроизведения отсутствует. #### Scenario: Запись изображения - **WHEN** клиент получает данные изображения - **THEN** вид медиа — изображение, длительность и адрес воспроизведения отсутствуют #### Scenario: Запись видео без готового варианта - **WHEN** клиент получает данные видео, а вариант ещё не готов - **THEN** вид медиа — видео, длительность присутствует, адрес воспроизведения отсутствует #### Scenario: Запись видео с готовым вариантом - **WHEN** видео-вариант готов - **THEN** данные медиа содержат адрес воспроизведения