Files
ds-galo/openspec/changes/add-user-avatar/specs/media-objects/spec.md
T
iu 04617d1cdb feat(profile): add round avatar with upload and cropping
- backend: user_avatar_objects binding (PG+SQLite), GC preserves avatar blobs,
  avatar service (EXIF-stripping WebP 128/512), public avatar read route
- web: avatar upload/crop on profile, round avatar in header/members/comments/author
- android: avatar upload/crop, round avatar on profile and albums header
- openspec: add-user-avatar proposal/design/specs/tasks
2026-10-12 16:16:47 +03:00

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 привязка снимается, и объекты аватара освобождаются сборкой мусора