chore(openspec): archive add-user-avatar and sync main specs
This commit is contained in:
@@ -56,8 +56,8 @@ MIME-типом, размером, габаритами и состоянием;
|
||||
- **THEN** изменяется только привязка к альбому, объекты хранилища не меняются
|
||||
|
||||
### Requirement: Сборка мусора по ссылкам
|
||||
Объект хранилища SHALL удаляться только когда на него не ссылается ни одно фото;
|
||||
удаление альбома и попадание фото в корзину SHALL сохранять объекты.
|
||||
Объект хранилища SHALL удаляться только когда на него не ссылается ни одно фото и ни один
|
||||
аватар пользователя; удаление альбома и попадание фото в корзину SHALL сохранять объекты.
|
||||
|
||||
#### Scenario: Последняя ссылка удалена
|
||||
- **WHEN** фото удаляется навсегда и больше ни одно фото не ссылается на его объекты
|
||||
@@ -71,6 +71,10 @@ MIME-типом, размером, габаритами и состоянием;
|
||||
- **WHEN** владелец удаляет альбом
|
||||
- **THEN** объекты хранилища не удаляются
|
||||
|
||||
#### Scenario: Ссылка аватара
|
||||
- **WHEN** на объект ссылается аватар пользователя
|
||||
- **THEN** объект сохраняется в хранилище, пока ссылка существует
|
||||
|
||||
### Requirement: Устойчивость жизненного цикла объекта
|
||||
Объект SHALL иметь состояние жизненного цикла, и незавершённые операции SHALL
|
||||
самовосстанавливаться: неудачная загрузка не оставляет осиротевших объектов, а
|
||||
@@ -110,3 +114,20 @@ SHALL различать короткие задания изображений
|
||||
#### Scenario: Длительное задание видео
|
||||
- **WHEN** выполняется длительная подготовка видео
|
||||
- **THEN** задание удерживается на весь срок выполнения и не вытесняет генерацию вариантов изображений
|
||||
|
||||
### Requirement: Аватар пользователя как объект журнала
|
||||
Аватар пользователя SHALL храниться как объект журнала, привязанный к пользователю по ролям,
|
||||
соответствующим нарезкам аватара. Замена и удаление аватара SHALL менять привязку, а объекты
|
||||
без ссылок SHALL освобождаться сборкой мусора.
|
||||
|
||||
#### Scenario: Привязка аватара
|
||||
- **WHEN** пользователь устанавливает аватар
|
||||
- **THEN** объекты нарезок привязываются к пользователю по своим ролям
|
||||
|
||||
#### Scenario: Замена аватара
|
||||
- **WHEN** пользователь заменяет аватар
|
||||
- **THEN** привязка указывает на новые объекты, а старые освобождаются сборкой мусора
|
||||
|
||||
#### Scenario: Удаление аватара
|
||||
- **WHEN** пользователь удаляет аватар
|
||||
- **THEN** привязка снимается, и объекты аватара освобождаются сборкой мусора
|
||||
|
||||
Reference in New Issue
Block a user