-- HIGH-01: Tambah FK constraint antara GudangDokumen dan Klien
--
-- Sebelumnya, GudangDokumen.klienId adalah plain String tanpa @relation di schema,
-- sehingga Prisma tidak generate FK constraint di PostgreSQL. Nilai klienId bisa
-- berisi ID apapun (termasuk ID yang tidak ada di tabel klien) tanpa error.
--
-- Fix ini:
-- 1. Nullify klienId yang orphaned (tidak ada di tabel klien) agar FK bisa ditambah
-- 2. Tambah FK constraint dengan ON DELETE SET NULL (konsisten dengan BTD/BDN)

-- Step 1: Bersihkan referensi orphaned sebelum tambah FK
UPDATE "gudang_dokumen"
SET "klienId" = NULL
WHERE "klienId" IS NOT NULL
  AND "klienId" NOT IN (SELECT "id" FROM "klien");

-- Step 2: Tambah FK constraint
ALTER TABLE "gudang_dokumen"
  ADD CONSTRAINT "gudang_dokumen_klienId_fkey"
  FOREIGN KEY ("klienId")
  REFERENCES "klien"("id")
  ON DELETE SET NULL
  ON UPDATE CASCADE;
