stremio/apps/master-api/prisma/migrations/20260908010000_viewer_owned_iptv/migration.sql
Jos Vooges | STH a431bebf3b Unify app users with per-user IPTV and drop shared IPTV fallback.
Gebruikers own their Xtream line and optional Stremio addons; admin Accounts merges into Gebruikers so kids can get filtered lines without leaking the latest addon credentials.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 00:43:55 +02:00

41 lines
1.5 KiB
SQL

-- Unify IPTV ownership under ViewerUser (Option C); keep legacy addon-token lines.
ALTER TABLE "iptv_lines" ADD COLUMN IF NOT EXISTS "viewer_user_id" TEXT;
ALTER TABLE "iptv_lines" ALTER COLUMN "addon_token_id" DROP NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS "iptv_lines_viewer_user_id_key" ON "iptv_lines"("viewer_user_id");
ALTER TABLE "addon_tokens" ADD COLUMN IF NOT EXISTS "viewer_user_id" TEXT;
CREATE INDEX IF NOT EXISTS "addon_tokens_viewer_user_id_idx" ON "addon_tokens"("viewer_user_id");
-- Gebruikers die via legacy iptvAddonTokenId wezen → eigenaar van die lijn
UPDATE "iptv_lines" AS l
SET "viewer_user_id" = v."id"
FROM "viewer_users" AS v
WHERE v."iptv_addon_token_id" IS NOT NULL
AND v."iptv_addon_token_id" = l."addon_token_id"
AND l."viewer_user_id" IS NULL;
-- Stremio-addons die die gebruikers gebruikten → koppel aan gebruiker
UPDATE "addon_tokens" AS t
SET "viewer_user_id" = v."id"
FROM "viewer_users" AS v
WHERE v."iptv_addon_token_id" IS NOT NULL
AND v."iptv_addon_token_id" = t."id"
AND t."viewer_user_id" IS NULL;
DO $$ BEGIN
ALTER TABLE "iptv_lines"
ADD CONSTRAINT "iptv_lines_viewer_user_id_fkey"
FOREIGN KEY ("viewer_user_id") REFERENCES "viewer_users"("id")
ON DELETE CASCADE ON UPDATE CASCADE;
EXCEPTION WHEN duplicate_object THEN NULL;
END $$;
DO $$ BEGIN
ALTER TABLE "addon_tokens"
ADD CONSTRAINT "addon_tokens_viewer_user_id_fkey"
FOREIGN KEY ("viewer_user_id") REFERENCES "viewer_users"("id")
ON DELETE SET NULL ON UPDATE CASCADE;
EXCEPTION WHEN duplicate_object THEN NULL;
END $$;