Files

3.4 KiB
Raw Permalink Blame History

Tasks

1. Варианты и роли

  • 1.1 backend/internal/photos/pipeline.go: thumb → imaging.Fill(200,200), добавить medium = imaging.Fill(800,800); buildVariants возвращает thumb, medium, preview — проверка: обновлённый тест генерации подтверждает квадратную форму thumb/medium и наличие preview.
  • 1.2 backend/internal/photos/objects.go: RoleMedium = "medium"; backend/internal/models/models.go: MediumKey, MediumURL — проверка: cd backend && go build ./....

2. Миграции и бэкфилл

  • 2.1 Postgres backend/migrations/000011_*: расширить CHECK роли photo_objects значением medium; налить variant_jobs для всех фото — проверка: make migrate применяется без ошибок на dev-БД.
  • 2.2 SQLite backend/migrations/sqlite/000003_*: пересоздать photo_objects с новым CHECK (перенос строк) + бэкфилл variant_jobs — проверка: cd backend && go test ./internal/db/....

3. Метаданные (Postgres и SQLite)

  • 3.1 Postgres photos/store.go + photos/service.go: JOIN/scan роли medium, attachURLs заполняет MediumURL — проверка: make test (с TEST_DATABASE_URL).
  • 3.2 SQLite photos/sqlite_store.go: JOIN/scan роли medium — проверка: make test.
  • 3.3 albums (models, store.go, sqlite_store.go, service.go): URL medium-обложки с откатом на thumb — проверка: make test.
  • 3.4 backend/internal/repo/contract: тесты привязки роли medium и URL обложки для обоих бэкендов — проверка: make test (и с TEST_DATABASE_URL).

4. Генерация вариантов

  • 4.1 backend/internal/photos/worker.go: создавать и привязывать medium (порядок thumb → medium → preview); обновить worker_test.go (4 привязанных объекта, MediumURL) — проверка: make test.

5. Фронтенд

  • 5.1 frontend/src/lib/types.ts: добавить medium_url, cover_medium_url — проверка: cd frontend && npm run check.
  • 5.2 frontend/src/lib/components/PhotoGrid.svelte: srcset/sizes по фактической ширине сетки (bind:clientWidth), откат на доступные варианты — проверка: npm run dev — крупные плитки резкие, мелкие тянут компактный вариант.
  • 5.3 Обзор альбомов frontend/src/routes/(app)/+page.svelte: srcset обложки с откатом на миниатюру — проверка: npm run dev — обложки не мылят при крупном размере.

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

  • 6.1 make test и cd frontend && npm run check && npm run build проходят; вручную: резкость на всех размерах, обложки в обзоре, бэкфилл существующих фото не ломает сетку.

Workflow follow-up

  • Заархивировать change после выполнения требований ревью проекта (/opsx-archive).
  • Проверить результат после архивации.