-- CreateEnum CREATE TYPE "Currency" AS ENUM ('EUR', 'DKK', 'SGD', 'USD'); -- CreateTable CREATE TABLE "User" ( "id" TEXT NOT NULL, "email" TEXT NOT NULL, "name" TEXT, "password" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "User_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Profile" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "description" TEXT, "userId" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Profile_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Item" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "description" TEXT, "price" DOUBLE PRECISION NOT NULL, "currency" "Currency" NOT NULL, "deleted" BOOLEAN NOT NULL DEFAULT false, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "profileId" TEXT NOT NULL, "tagId" TEXT, CONSTRAINT "Item_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "ItemComment" ( "id" TEXT NOT NULL, "body" TEXT NOT NULL, "score" INTEGER NOT NULL, "regret" BOOLEAN NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "itemId" TEXT NOT NULL, CONSTRAINT "ItemComment_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Tag" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Tag_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "User_id_key" ON "User"("id"); -- CreateIndex CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); -- CreateIndex CREATE UNIQUE INDEX "Profile_id_key" ON "Profile"("id"); -- CreateIndex CREATE UNIQUE INDEX "Profile_userId_key" ON "Profile"("userId"); -- CreateIndex CREATE UNIQUE INDEX "Item_id_key" ON "Item"("id"); -- CreateIndex CREATE UNIQUE INDEX "ItemComment_id_key" ON "ItemComment"("id"); -- CreateIndex CREATE UNIQUE INDEX "Tag_id_key" ON "Tag"("id"); -- CreateIndex CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name"); -- AddForeignKey ALTER TABLE "Profile" ADD CONSTRAINT "Profile_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Item" ADD CONSTRAINT "Item_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "Profile"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Item" ADD CONSTRAINT "Item_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES "Tag"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "ItemComment" ADD CONSTRAINT "ItemComment_itemId_fkey" FOREIGN KEY ("itemId") REFERENCES "Item"("id") ON DELETE RESTRICT ON UPDATE CASCADE;