- backend: switch EXIF parser to dsoprea/go-exif/v3 (all recognised tags, numeric normalization); store in photos.exif jsonb (migration 000003); add storage.Get and cmd/backfill-exif to backfill existing photos from S3 originals - frontend: info panel renders all EXIF attributes with RU labels, enum translation and units (1/N, f/N, mm, EV); service tags hidden - viewer: remove make-cover action (cover managed from panel only), icon-only download - openspec: sync lightroom-workspace-ui artifacts (EXIF, cover-from-panel) and add plan for configurable info attributes/labels stored in user profile
1.7 KiB
1.7 KiB
Spec Delta
ADDED Requirements
Requirement: Хранение пользовательских настроек интерфейса
Система SHALL хранить настройки отображения в профиле пользователя и SHALL возвращать их при получении текущего пользователя. Настройки SHALL быть приватными для пользователя. Отсутствие настроек SHALL трактоваться как значения по умолчанию.
Scenario: Получение настроек
- WHEN аутентифицированный пользователь запрашивает свой профиль
- THEN ответ содержит его настройки отображения (или пустой объект по умолчанию)
Scenario: Сохранение настроек
- WHEN пользователь сохраняет настройки отображения
- THEN система сохраняет их в профиле и возвращает сохранённое состояние
Scenario: Изоляция настроек
- WHEN другой пользователь запрашивает свой профиль
- THEN он не получает настройки первого пользователя
Scenario: Некорректные настройки
- WHEN пользователь присылает настройки недопустимой структуры или размера
- THEN система отклоняет запрос с ошибкой и не меняет сохранённые настройки