Files
ds-galo/openspec/changes/fix-copy-edit-variant-sharing/tasks.md
T
iu 70ac12db10 chore(openspec): отметить задачи fix-copy-edit-variant-sharing выполненными
Все 9 задач закрыты; в design.md уточнено, что удалённые привязки
не осиротевают объекты: отредактированная версия живёт вместе с фото.
2026-10-21 21:01:33 +03:00

2.5 KiB
Raw Blame History

Tasks

1. Список edit-ролей

  • 1.1 В backend/internal/photos/edit_render.go собрать общий список ролей (RoleEdit, RoleEditThumb, RoleEditMedium, RoleEditPreview) и хелпер проверки роли; проверить, что список используется в обоих хранилищах и не дублируется строковыми литералами

2. Копирование без отредактированной версии

  • 2.1 В Store.Clone (backend/internal/photos/store.go) исключить edit-роли из переносимых привязок photo_objects; проверить тестом copy_test.go: копия получает обычные варианты и не получает edit-объекты
  • 2.2 В SQLiteStore.Clone (backend/internal/photos/sqlite_store.go) сделать то же для SQLite; проверить тем же тестом, прогнанным на SQLite-хранилище

3. Разовая чистка существующих копий

  • 3.1 Добавить миграцию Postgres backend/migrations/000016_*.up.sql и .down.sql, удаляющую edit-привязки у фото с пустыми edit_params; проверить на тестовой базе, что привязки исходных фото с правками остались, а «чужие» удалены
  • 3.2 Добавить миграцию SQLite backend/migrations/sqlite/000008_*.up.sql и .down.sql с тем же действием; проверить тем же сценарием на SQLite
  • 3.3 Убедиться, что удалённые объекты подбираются сборщиком мусора (ClaimGarbage не возвращает объекты с привязками); проверить существующим тестом objects_test.go

4. Интеграционная проверка

  • 4.1 Прогнать cd backend && go test ./internal/photos/ -v; убедиться, что тесты зелёные
  • 4.2 Прогнать make test; убедиться, что весь бэкенд зелёный
  • 4.3 Проверить вручную: отредактировать фото, скопировать его в другой альбом и убедиться, что копия показывает исходник, а панель правок у копии пустая