From 9d6239b0eb4b94d5f49abf14811b09a5919700d3 Mon Sep 17 00:00:00 2001 From: Scrum4Me Agent <30029041+madhura68@users.noreply.github.com> Date: Wed, 6 May 2026 02:16:26 +0200 Subject: [PATCH] feat(schema): IdeaProduct junction model + relaties op Idea en Product Voegt IdeaProduct model toe met idea_id/product_id/created_at, unique constraint op (idea_id, product_id), cascade-deletes. Breidt Product.idea_products en Idea.secondary_products relaties uit. Migratie 20260506010000_add_idea_product_secondary aangemaakt en toegepast. Co-Authored-By: Claude Sonnet 4.6 --- .../migration.sql | 21 ++++++++++++++++ prisma/schema.prisma | 24 +++++++++++++++---- 2 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 prisma/migrations/20260506010000_add_idea_product_secondary/migration.sql diff --git a/prisma/migrations/20260506010000_add_idea_product_secondary/migration.sql b/prisma/migrations/20260506010000_add_idea_product_secondary/migration.sql new file mode 100644 index 0000000..4650105 --- /dev/null +++ b/prisma/migrations/20260506010000_add_idea_product_secondary/migration.sql @@ -0,0 +1,21 @@ +-- CreateTable +CREATE TABLE "idea_products" ( + "id" TEXT NOT NULL, + "idea_id" TEXT NOT NULL, + "product_id" TEXT NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "idea_products_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "idea_products_product_id_idx" ON "idea_products"("product_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "idea_products_idea_id_product_id_key" ON "idea_products"("idea_id", "product_id"); + +-- AddForeignKey +ALTER TABLE "idea_products" ADD CONSTRAINT "idea_products_idea_id_fkey" FOREIGN KEY ("idea_id") REFERENCES "ideas"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "idea_products" ADD CONSTRAINT "idea_products_product_id_fkey" FOREIGN KEY ("product_id") REFERENCES "products"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 87f12af..352e5c2 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -188,6 +188,7 @@ model Product { claude_questions ClaudeQuestion[] claude_jobs ClaudeJob[] ideas Idea[] + idea_products IdeaProduct[] @@unique([user_id, name]) @@unique([user_id, code]) @@ -416,10 +417,11 @@ model Idea { created_at DateTime @default(now()) updated_at DateTime @updatedAt - questions ClaudeQuestion[] - jobs ClaudeJob[] - logs IdeaLog[] - user_questions UserQuestion[] + questions ClaudeQuestion[] + jobs ClaudeJob[] + logs IdeaLog[] + user_questions UserQuestion[] + secondary_products IdeaProduct[] @@unique([user_id, code]) @@index([user_id, archived, status]) @@ -427,6 +429,20 @@ model Idea { @@map("ideas") } +model IdeaProduct { + id String @id @default(cuid()) + idea_id String + product_id String + created_at DateTime @default(now()) + + idea Idea @relation(fields: [idea_id], references: [id], onDelete: Cascade) + product Product @relation(fields: [product_id], references: [id], onDelete: Cascade) + + @@unique([idea_id, product_id]) + @@index([product_id]) + @@map("idea_products") +} + model IdeaLog { id String @id @default(cuid()) idea Idea @relation(fields: [idea_id], references: [id], onDelete: Cascade)