38 lines
1.5 KiB
SQL
38 lines
1.5 KiB
SQL
CREATE TABLE IF NOT EXISTS library_items (
|
|
id TEXT PRIMARY KEY,
|
|
provider_id TEXT NOT NULL,
|
|
external_id TEXT NOT NULL,
|
|
title TEXT NOT NULL,
|
|
content_type TEXT NOT NULL,
|
|
duration_secs INTEGER NOT NULL DEFAULT 0,
|
|
series_name TEXT,
|
|
season_number INTEGER,
|
|
episode_number INTEGER,
|
|
year INTEGER,
|
|
genres TEXT NOT NULL DEFAULT '[]',
|
|
tags TEXT NOT NULL DEFAULT '[]',
|
|
collection_id TEXT,
|
|
collection_name TEXT,
|
|
collection_type TEXT,
|
|
thumbnail_url TEXT,
|
|
synced_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_library_items_provider ON library_items(provider_id);
|
|
CREATE INDEX IF NOT EXISTS idx_library_items_content_type ON library_items(content_type);
|
|
CREATE INDEX IF NOT EXISTS idx_library_items_series ON library_items(series_name);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_library_items_provider_external ON library_items(provider_id, external_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS library_sync_log (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
provider_id TEXT NOT NULL,
|
|
started_at TEXT NOT NULL,
|
|
finished_at TEXT,
|
|
items_found INTEGER NOT NULL DEFAULT 0,
|
|
status TEXT NOT NULL DEFAULT 'running',
|
|
error_msg TEXT
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_library_sync_log_provider ON library_sync_log(provider_id);
|
|
CREATE INDEX IF NOT EXISTS idx_library_sync_log_provider_started ON library_sync_log(provider_id, started_at DESC);
|