From c78552ce60f83968b5987b2f612bc691e91f341c Mon Sep 17 00:00:00 2001 From: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com> Date: Mon, 8 Dec 2025 10:52:01 +0530 Subject: [PATCH] fix: OnDelete SetNull for watchlist delete on watchlistAudit (#25690) * OnDelete SetNull for watchlist delete on watchlistAudit * make watchlistId nullable * type fix --- packages/features/watchlist/lib/types.ts | 2 +- packages/lib/server/repository/watchlist.interface.ts | 2 +- .../migration.sql | 8 ++++++++ packages/prisma/schema.prisma | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 packages/prisma/migrations/20251208035931_watchlist_audit_on_delete_set_null/migration.sql diff --git a/packages/features/watchlist/lib/types.ts b/packages/features/watchlist/lib/types.ts index a230299c0c..8508162c49 100644 --- a/packages/features/watchlist/lib/types.ts +++ b/packages/features/watchlist/lib/types.ts @@ -22,7 +22,7 @@ export interface WatchlistAudit { action: WatchlistAction; changedAt: Date; changedByUserId?: number | null; - watchlistId: string; + watchlistId: string | null; } export interface WatchlistEventAudit { diff --git a/packages/lib/server/repository/watchlist.interface.ts b/packages/lib/server/repository/watchlist.interface.ts index 377e17f59c..1dc79dc196 100644 --- a/packages/lib/server/repository/watchlist.interface.ts +++ b/packages/lib/server/repository/watchlist.interface.ts @@ -15,7 +15,7 @@ export interface WatchlistEntry { export interface WatchlistAuditEntry { id: string; - watchlistId: string; + watchlistId: string | null; type: WatchlistType; value: string; description: string | null; diff --git a/packages/prisma/migrations/20251208035931_watchlist_audit_on_delete_set_null/migration.sql b/packages/prisma/migrations/20251208035931_watchlist_audit_on_delete_set_null/migration.sql new file mode 100644 index 0000000000..b034213318 --- /dev/null +++ b/packages/prisma/migrations/20251208035931_watchlist_audit_on_delete_set_null/migration.sql @@ -0,0 +1,8 @@ +-- DropForeignKey +ALTER TABLE "public"."WatchlistAudit" DROP CONSTRAINT "WatchlistAudit_watchlistId_fkey"; + +-- AlterTable +ALTER TABLE "public"."WatchlistAudit" ALTER COLUMN "watchlistId" DROP NOT NULL; + +-- AddForeignKey +ALTER TABLE "public"."WatchlistAudit" ADD CONSTRAINT "WatchlistAudit_watchlistId_fkey" FOREIGN KEY ("watchlistId") REFERENCES "public"."Watchlist"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index e92fde3d2f..12aa23f021 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -2382,8 +2382,8 @@ model WatchlistAudit { changedAt DateTime @default(now()) changedByUserId Int? - watchlistId String @db.Uuid - watchlist Watchlist? @relation(fields: [watchlistId], references: [id], onDelete: Cascade) + watchlistId String? @db.Uuid + watchlist Watchlist? @relation(fields: [watchlistId], references: [id], onDelete: SetNull) @@index([watchlistId, changedAt]) }