diff --git a/docs/backlog.md b/docs/backlog.md index 019e1aa..4f0afea 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -35,27 +35,6 @@ _(идея)_ — их сперва надо проработать. матч в базе), [jellyfin-layout.md](specs/jellyfin-layout.md) (папка сериала с провайдер-id). -### Идентичность загрузки: ULID + множество инфохэшей - -Фундамент для «второго сезона», «докачивания» и истории переходов (шаг 1 в -[drafts/logical-title-model.md](drafts/logical-title-model.md)). Сейчас -загрузка идентифицируется хешем торрента — это хрупко: v1/v2/гибрид дают -разные значения, перезалив/репак/докачка — другой хеш, у одной логической -загрузки хешей несколько. Вводим ULID, генерируемый при приёме, как -первичный ключ домена; инфохэши — таблица `download_infohash` «многие к -одному», на которую переезжают дедуп и поиск. - -- [ ] `download.id` → TEXT ULID (миграция с заполнением существующих строк) -- [ ] таблица `download_infohash` (`download_id`, `infohash`, `kind` v1|v2, `UNIQUE(infohash)`) -- [ ] дедуп/идемпотентность через `download_infohash` (вместо `idempotency_key`) -- [ ] поиск при приёме и в поллинге — по любому из хешей -- [ ] обновить ER-схему [database.md](specs/database.md) - -Связано: [drafts/logical-title-model.md](drafts/logical-title-model.md) §5.1, -[database.md](specs/database.md) (PK `download`, `infohash`), -[architecture.md](specs/architecture.md) → «Идентификация торрента», пакет -`store`. - ### Раздачи с докачиванием (слияние при повторном добавлении) Свежий сериал раздают по мере выхода: торрент содержит 5 эпизодов из 10,