stremio/apps/master-api/prisma/migrations/20260830170000_synology_downloads/migration.sql
Jos Vooges | STH 18eb702de2 Add Synology Download Station search and 4K import pipeline.
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>
2026-08-30 17:42:12 +02:00

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 $$;