# Spec Delta ## ADDED Requirements ### Requirement: Обнаружение потери серверной копии превью При проверке синхронизации приложение SHALL сопоставлять серверное фото каждого разгруженного превью с фото целевого альбома и при его отсутствии SHALL помечать элемент как потерявший серверную копию, сохраняя превью и провенанс. #### Scenario: Копии больше нет - **WHEN** серверное фото разгруженного превью отсутствует в целевом альбоме - **THEN** приложение помечает элемент как потерявший серверную копию #### Scenario: Превью не трогается - **WHEN** элемент помечен как потерявший серверную копию - **THEN** превью-файл на устройстве сохраняется и не загружается повторно как оригинал ### Requirement: Восстановление связи при возврате серверного фото При проверке синхронизации приложение SHALL снимать пометку с элемента, если его серверное фото снова присутствует в целевом альбоме. #### Scenario: Фото вернулось на сервер - **WHEN** серверное фото помеченного элемента снова присутствует в целевом альбоме - **THEN** элемент возвращается к обычному разгруженному состоянию с серверной копией ### Requirement: Удаление потерянного превью с устройства Приложение SHALL позволять удалить потерявшее серверную копию превью с устройства; удаление SHALL удалять превью-файл и запись локального индекса и SHALL NOT обращаться к серверу, поскольку копии там уже нет. #### Scenario: Удаление с устройства - **WHEN** пользователь удаляет потерявшее серверную копию превью с устройства - **THEN** превью-файл и запись локального индекса удаляются, а сервер не затрагивается #### Scenario: Согласие системы - **WHEN** превью-файл не принадлежит приложению - **THEN** удаление выполняется после системного согласия на удаление ### Requirement: Повторная заливка вернувшегося оригинала Если содержимое с исходной контрольной суммой потерявшего копию элемента снова присутствует на устройстве, приложение SHALL загрузить его на сервер как новую загрузку этого элемента. #### Scenario: Вернулся в тот же альбом - **WHEN** оригинал с исходной контрольной суммой снова появился в альбоме устройства - **THEN** приложение загружает его в целевой серверный альбом #### Scenario: Вернулся в другой альбом - **WHEN** содержимое с исходной контрольной суммой присутствует в другом альбоме устройства - **THEN** приложение загружает его в целевой серверный альбом #### Scenario: Режим переноса - **WHEN** загрузка вернувшегося оригинала завершена в режиме переноса - **THEN** элемент снова проходит обычную разгрузку в превью