fix(stats): keep same-title anime and YouTube records separate

- Scope title identity, aliases, AniList matching, and sync by media kind
- Migrate legacy schemas while preserving IDs, history, and assignments
This commit is contained in:
2026-09-19 00:40:54 -07:00
parent e79db73cd9
commit c961a84dce
10 changed files with 323 additions and 22 deletions
+2 -1
View File
@@ -12,7 +12,7 @@ export const IMMERSION_DB_FIXTURE_DDL = `
);
CREATE TABLE imm_anime(
anime_id INTEGER PRIMARY KEY AUTOINCREMENT,
normalized_title_key TEXT NOT NULL UNIQUE,
normalized_title_key TEXT NOT NULL,
canonical_title TEXT NOT NULL,
anilist_id INTEGER UNIQUE,
title_romaji TEXT,
@@ -25,6 +25,7 @@ export const IMMERSION_DB_FIXTURE_DDL = `
LAST_UPDATE_DATE TEXT,
media_kind TEXT NOT NULL DEFAULT 'anime' CHECK(media_kind IN ('anime', 'youtube'))
);
CREATE UNIQUE INDEX idx_anime_kind_title ON imm_anime(media_kind, normalized_title_key);
CREATE TABLE imm_videos(
video_id INTEGER PRIMARY KEY AUTOINCREMENT,
video_key TEXT NOT NULL UNIQUE,