CREATE TABLE "ShoppingGroupPreference" (
    "id" TEXT NOT NULL,
    "userId" TEXT NOT NULL,
    "groupId" TEXT NOT NULL,
    "normalizedName" TEXT NOT NULL,
    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

    CONSTRAINT "ShoppingGroupPreference_pkey" PRIMARY KEY ("id")
);

ALTER TABLE "ShoppingGroupPreference"
ADD CONSTRAINT "ShoppingGroupPreference_userId_fkey"
FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE "ShoppingGroupPreference"
ADD CONSTRAINT "ShoppingGroupPreference_groupId_fkey"
FOREIGN KEY ("groupId") REFERENCES "ShoppingGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;

CREATE INDEX "ShoppingGroupPreference_userId_idx"
ON "ShoppingGroupPreference"("userId");

CREATE INDEX "ShoppingGroupPreference_groupId_idx"
ON "ShoppingGroupPreference"("groupId");

CREATE UNIQUE INDEX "ShoppingGroupPreference_userId_normalizedName_key"
ON "ShoppingGroupPreference"("userId", "normalizedName");
