CREATE TABLE IF NOT EXISTS "admin_app_permissions" ( "id" UUID NOT NULL DEFAULT gen_random_uuid(), "admin_id" UUID NOT NULL, "app_id" UUID NOT NULL, "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "admin_app_permissions_pkey" PRIMARY KEY ("id") ); CREATE UNIQUE INDEX IF NOT EXISTS "admin_app_permissions_admin_id_app_id_key" ON "admin_app_permissions"("admin_id", "app_id"); CREATE INDEX IF NOT EXISTS "admin_app_permissions_app_id_idx" ON "admin_app_permissions"("app_id"); DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'admin_app_permissions_admin_id_fkey' ) THEN ALTER TABLE "admin_app_permissions" ADD CONSTRAINT "admin_app_permissions_admin_id_fkey" FOREIGN KEY ("admin_id") REFERENCES "admins"("id") ON DELETE CASCADE ON UPDATE CASCADE; END IF; END $$; DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'admin_app_permissions_app_id_fkey' ) THEN ALTER TABLE "admin_app_permissions" ADD CONSTRAINT "admin_app_permissions_app_id_fkey" FOREIGN KEY ("app_id") REFERENCES "apps"("id") ON DELETE CASCADE ON UPDATE CASCADE; END IF; END $$;