Admin can search DS, confirm TMDB/IMDb, then auto-move finished downloads into a fixed 4K library folder via the media-node. Co-authored-by: Cursor <cursoragent@cursor.com>
61 lines
2.1 KiB
SQL
61 lines
2.1 KiB
SQL
-- CreateEnum
|
|
DO $$ BEGIN
|
|
CREATE TYPE "DownloadJobStatus" AS ENUM ('DOWNLOADING', 'FINISHED', 'IMPORTING', 'IMPORTED', 'FAILED');
|
|
EXCEPTION WHEN duplicate_object THEN null; END $$;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE IF NOT EXISTS "synology_ds_configs" (
|
|
"id" TEXT NOT NULL,
|
|
"node_id" TEXT NOT NULL,
|
|
"base_url" TEXT NOT NULL,
|
|
"username" TEXT NOT NULL,
|
|
"password_enc" TEXT NOT NULL,
|
|
"download_destination" TEXT NOT NULL,
|
|
"download_host_path" TEXT NOT NULL,
|
|
"four_k_host_path" TEXT NOT NULL,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"last_ok_at" TIMESTAMP(3),
|
|
"last_error" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
CONSTRAINT "synology_ds_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS "synology_ds_configs_node_id_key" ON "synology_ds_configs"("node_id");
|
|
|
|
DO $$ BEGIN
|
|
ALTER TABLE "synology_ds_configs"
|
|
ADD CONSTRAINT "synology_ds_configs_node_id_fkey"
|
|
FOREIGN KEY ("node_id") REFERENCES "nodes"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
EXCEPTION WHEN duplicate_object THEN null; END $$;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE IF NOT EXISTS "download_jobs" (
|
|
"id" TEXT NOT NULL,
|
|
"node_id" TEXT NOT NULL,
|
|
"status" "DownloadJobStatus" NOT NULL DEFAULT 'DOWNLOADING',
|
|
"source_uri" TEXT NOT NULL,
|
|
"source_title" TEXT NOT NULL,
|
|
"ds_task_id" TEXT,
|
|
"tmdb_id" INTEGER,
|
|
"imdb_id" TEXT,
|
|
"movie_title" TEXT NOT NULL,
|
|
"movie_year" INTEGER,
|
|
"poster_url" TEXT,
|
|
"dest_folder_name" TEXT,
|
|
"source_path" TEXT,
|
|
"imported_path" TEXT,
|
|
"error" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
CONSTRAINT "download_jobs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS "download_jobs_status_updated_at_idx" ON "download_jobs"("status", "updated_at");
|
|
CREATE INDEX IF NOT EXISTS "download_jobs_node_id_status_idx" ON "download_jobs"("node_id", "status");
|
|
|
|
DO $$ BEGIN
|
|
ALTER TABLE "download_jobs"
|
|
ADD CONSTRAINT "download_jobs_node_id_fkey"
|
|
FOREIGN KEY ("node_id") REFERENCES "nodes"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
EXCEPTION WHEN duplicate_object THEN null; END $$;
|