- fix-large-album-load -> photos, realtime, media-objects - fix-album-cover -> photos, albums
5.1 KiB
albums Specification
Purpose
Управление фотоальбомами: создание, просмотр, редактирование, удаление и владение.
Requirements
Requirement: Создание альбома
Зарегистрированный пользователь SHALL иметь возможность создать альбом и стать его владельцем.
Scenario: Создание альбома
- WHEN пользователь создаёт альбом с названием
- THEN система создаёт альбом и назначает пользователя владельцем
Requirement: Список альбомов пользователя
Пользователь SHALL иметь возможность получить список альбомов, к которым у него есть доступ.
Scenario: Список альбомов
- WHEN пользователь запрашивает список альбомов
- THEN система возвращает альбомы, где он владелец или участник
Requirement: Получение альбома
Участник SHALL иметь возможность получить данные альбома по id.
Scenario: Просмотр альбома
- WHEN участник запрашивает альбом по id
- THEN система возвращает данные альбома
Requirement: Редактирование альбома
Владелец и админ SHALL иметь возможность редактировать название, описание и обложку альбома.
Scenario: Редактирование альбома
- WHEN админ изменяет описание альбома
- THEN система сохраняет изменения
Requirement: Удаление альбома
Владелец SHALL иметь возможность удалить альбом; фото альбома SHALL помещаться в корзину без удаления объектов хранилища, а участники и share-ссылки SHALL удаляться вместе с альбомом.
Scenario: Удаление альбома
- WHEN владелец удаляет альбом
- THEN фото альбома попадают в корзину без привязки к альбому и файлы сохраняются, участники и share-ссылки удаляются
Requirement: Отображение обложки альбома
Данные альбома SHALL включать URL миниатюры обложки, когда обложка задана, чтобы клиенты могли показать её в списке, рейле и карточке.
Scenario: Обложка задана
- WHEN клиент запрашивает список альбомов или альбом по id, и у альбома есть обложка
- THEN ответ содержит URL миниатюры обложки
Scenario: Обложка отсутствует
- WHEN у альбома нет обложки или фото обложки удалено
- THEN ответ не содержит URL обложки, и клиент показывает плейсхолдер
Requirement: Выбор обложки
Владелец и админ SHALL иметь возможность назначить обложкой любое фото альбома или сбросить обложку; после сброса обложка SHALL становиться не заданной (без возврата к значению по умолчанию).
Scenario: Назначение обложки
- WHEN владелец выбирает фото альбома как обложку
- THEN система сохраняет выбор и отражает его в списке и карточках
Scenario: Сброс обложки
- WHEN админ сбрасывает обложку
- THEN система снимает обложку, и альбом отображается без обложки, пока обложку не назначат снова
Scenario: Нет прав на смену обложки
- WHEN участник без права редактирования пытается сменить обложку
- THEN система отклоняет запрос
Requirement: Счётчики альбома
Данные альбома SHALL включать количество фото и участников, чтобы панель и карточки могли показать их без отдельных запросов.
Scenario: Счётчики в ответе
- WHEN клиент запрашивает список альбомов или альбом по id
- THEN ответ содержит число фото и число участников альбома