Files
ds-galo/openspec/changes/archive/2026-10-12-add-user-avatar/specs/media-objects/spec.md
T

2.5 KiB

Spec Delta

MODIFIED Requirements

Requirement: Сборка мусора по ссылкам

Объект хранилища SHALL удаляться только когда на него не ссылается ни одно фото и ни один аватар пользователя; удаление альбома и попадание фото в корзину SHALL сохранять объекты.

Scenario: Последняя ссылка удалена

  • WHEN фото удаляется навсегда и больше ни одно фото не ссылается на его объекты
  • THEN объекты удаляются из хранилища

Scenario: Остались ссылки

  • WHEN на объект ссылается другое фото
  • THEN объект сохраняется в хранилище

Scenario: Удаление альбома

  • WHEN владелец удаляет альбом
  • THEN объекты хранилища не удаляются

Scenario: Ссылка аватара

  • WHEN на объект ссылается аватар пользователя
  • THEN объект сохраняется в хранилище, пока ссылка существует

ADDED Requirements

Requirement: Аватар пользователя как объект журнала

Аватар пользователя SHALL храниться как объект журнала, привязанный к пользователю по ролям, соответствующим нарезкам аватара. Замена и удаление аватара SHALL менять привязку, а объекты без ссылок SHALL освобождаться сборкой мусора.

Scenario: Привязка аватара

  • WHEN пользователь устанавливает аватар
  • THEN объекты нарезок привязываются к пользователю по своим ролям

Scenario: Замена аватара

  • WHEN пользователь заменяет аватар
  • THEN привязка указывает на новые объекты, а старые освобождаются сборкой мусора

Scenario: Удаление аватара

  • WHEN пользователь удаляет аватар
  • THEN привязка снимается, и объекты аватара освобождаются сборкой мусора