Каждый кандидат внешней базы метаданных (TMDB/TVDB/TVMaze) теперь несёт URL на страницу элемента — при ревью можно кликнуть и проверить матч. URL формируется клиентом провайдера при поиске, сохраняется в БД (metadata_candidate.url) и отображается ссылкой в веб-интерфейсе. Co-Authored-By: Claude <noreply@anthropic.com>
2.1 KiB
2.1 KiB
1. Слой метаданных — генерация URL
- 1.1 Добавить поле
URLв структуруmetadata.Candidate(internal/metadata/metadata.go) - 1.2 Заполнять
URLвTMDB.Search:https://www.themoviedb.org/movie/{id}(фильм) илиhttps://www.themoviedb.org/tv/{id}(сериал) - 1.3 Заполнять
URLвTVDB.Search:https://www.thetvdb.com/dereferrer/series/{id} - 1.4 Заполнять
URLвTVMaze.Search:https://www.tvmaze.com/shows/{id}(нативный id, не теговый) - 1.5 Обновить тесты клиентов метаданных (tmdb_test.go, tvdb_test.go, tvmaze_test.go) — проверить наличие URL в результатах Search
2. БД — хранение URL
- 2.1 Создать миграцию
internal/store/migrations/0004_candidate_url.sql— добавить колонкуurl TEXTвmetadata_candidate - 2.2 Добавить поле
URL(sql.NullString) в структуруstore.MetadataCandidate - 2.3 Обновить
CreateCandidates— сохранятьurlв INSERT - 2.4 Обновить
docs/specs/database.md— актуализировать ER-схему (колонкаurl)
3. Конвертация candidate → store
- 3.1 В
worker.toStoreCandidatesпробрасыватьURLизmetadata.Candidateвstore.MetadataCandidate
4. HTTP API и шаблон
- 4.1 Добавить поле
URLвcandidateView(internal/httpapi/review.go) - 4.2 Пробросить
URLизstore.MetadataCandidateвcandidateViewпри сборе данных ревью - 4.3 В шаблоне
web/templates/review.htmlдобавить колонку «ссылка» в таблицу кандидатов с<a target="_blank">
5. Проверка
- 5.1
task test— все тесты проходят - 5.2
task lint— без ошибок - 5.3
openspec validate --strict— валидация спеки