# Spec Delta ## MODIFIED Requirements ### Requirement: Журнал объектов Каждый физический объект SHALL иметь ровно одну запись в слое метаданных с ключом, MIME-типом, размером, габаритами и состоянием; фото SHALL ссылаться на объекты по ролям original, thumb, medium, preview и playback. #### Scenario: Привязка ролей - **WHEN** фото загружено и обработано - **THEN** фото ссылается на объект-оригинал и, когда они готовы, на объекты thumb, medium и preview #### Scenario: Оригинал без вариантов - **WHEN** варианты ещё не сгенерированы - **THEN** фото доступно с оригиналом, а thumb, medium и preview отсутствуют #### Scenario: Привязка роли воспроизведения - **WHEN** видео обработано - **THEN** медиа ссылается на объект playback наряду с оригиналом и постером ### Requirement: Генерация вариантов Генерация вариантов SHALL выполняться через надёжную очередь заданий с однократным выполнением и повтором при сбое; готовый результат SHALL транслироваться подписчикам альбома. Очередь SHALL поддерживать настраиваемую пропускную способность, SHALL обрабатывать более свежие фото раньше остальных и SHALL различать короткие задания изображений и длительные задания видео. #### Scenario: Повтор после рестарта - **WHEN** процесс перезапускается с незавершёнными заданиями - **THEN** генерация вариантов продолжается #### Scenario: Событие после генерации - **WHEN** варианты фото готовы - **THEN** подписчикам альбома публикуется событие обновления этого фото #### Scenario: Приоритет свежих фото - **WHEN** в очереди есть готовые к обработке задания разного возраста - **THEN** система обрабатывает более свежие фото раньше #### Scenario: Настраиваемая пропускная способность - **WHEN** задан уровень параллелизма генерации - **THEN** система обрабатывает варианты с этим уровнем параллелизма #### Scenario: Длительное задание видео - **WHEN** выполняется длительная подготовка видео - **THEN** задание удерживается на весь срок выполнения и не вытесняет генерацию вариантов изображений