chore(openspec): archive lightroom-workspace-ui and sync main specs

- synced delta specs into main specs: albums (+3 reqs, MODIFIED deleting album -> photos to trash), auth (+1), photos (+8), and created new ui-workspace spec (29 reqs)
- moved the change to openspec/changes/archive/2026-10-10-lightroom-workspace-ui/
This commit is contained in:
iu
2026-10-10 22:47:33 +03:00
parent 61b45b2742
commit 384f126d8a
12 changed files with 578 additions and 2 deletions
+41 -2
View File
@@ -35,8 +35,47 @@
- **THEN** система сохраняет изменения
### Requirement: Удаление альбома
Владелец SHALL иметь возможность удалить альбом вместе с содержимым.
Владелец SHALL иметь возможность удалить альбом; фото альбома SHALL помещаться в корзину без
удаления объектов хранилища, а участники и share-ссылки SHALL удаляться вместе с альбомом.
#### Scenario: Удаление альбома
- **WHEN** владелец удаляет альбом
- **THEN** система удаляет альбом, его фото, участников и share-ссылки
- **THEN** фото альбома попадают в корзину без привязки к альбому и файлы сохраняются, участники и share-ссылки удаляются
### Requirement: Отображение обложки альбома
Данные альбома SHALL включать URL миниатюры обложки, когда обложка задана, чтобы клиенты
могли показать её в списке, рейле и карточке.
#### Scenario: Обложка задана
- **WHEN** клиент запрашивает список альбомов или альбом по id, и у альбома есть обложка
- **THEN** ответ содержит URL миниатюры обложки
#### Scenario: Обложка отсутствует
- **WHEN** у альбома нет обложки или фото обложки удалено
- **THEN** ответ не содержит URL обложки, и клиент показывает плейсхолдер
### Requirement: Выбор обложки
Владелец и админ SHALL иметь возможность назначить обложкой любое фото альбома или сбросить
обложку; после сброса обложка определяется заново по умолчанию.
#### Scenario: Назначение обложки
- **WHEN** владелец выбирает фото альбома как обложку
- **THEN** система сохраняет выбор и отражает его в списке и карточках
#### Scenario: Сброс обложки
- **WHEN** админ сбрасывает обложку
- **THEN** система удаляет явный выбор, и обложка возвращается к значению по умолчанию
#### Scenario: Нет прав на смену обложки
- **WHEN** участник без права редактирования пытается сменить обложку
- **THEN** система отклоняет запрос
### Requirement: Счётчики альбома
Данные альбома SHALL включать количество фото и участников, чтобы панель и карточки могли
показать их без отдельных запросов.
#### Scenario: Счётчики в ответе
- **WHEN** клиент запрашивает список альбомов или альбом по id
- **THEN** ответ содержит число фото и число участников альбома