Files
ds-galo/openspec/changes/archive/2026-10-11-add-video-support/specs/photos/spec.md
T

3.7 KiB

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 данные медиа содержат адрес воспроизведения