Новое требование в phone-album-sync о потере/возврате серверной копии у разгруженного превью, требование в android-client о метке потерянного элемента и действии удаления с устройства.
4.2 KiB
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 элемент снова проходит обычную разгрузку в превью