diff --git a/prisma/migrations/20261001081812_notification/migration.sql b/prisma/migrations/20261001081812_notification/migration.sql new file mode 100644 index 0000000..9f08ebe --- /dev/null +++ b/prisma/migrations/20261001081812_notification/migration.sql @@ -0,0 +1,64 @@ +-- CreateTable +CREATE TABLE "notification_device_token" ( + "id" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "token" TEXT NOT NULL, + "platform" TEXT NOT NULL, + "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMPTZ(3) NOT NULL, + + CONSTRAINT "notification_device_token_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "notification_preference" ( + "id" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "channel" TEXT NOT NULL, + "enabled" BOOLEAN NOT NULL DEFAULT true, + "updatedAt" TIMESTAMPTZ(3) NOT NULL, + + CONSTRAINT "notification_preference_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "notification_message" ( + "id" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "channel" TEXT NOT NULL, + "status" TEXT NOT NULL DEFAULT 'PENDING', + "subject" TEXT, + "content" TEXT NOT NULL, + "error" TEXT, + "sentAt" TIMESTAMPTZ(3), + "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "notification_message_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "notification_device_token_userId_idx" ON "notification_device_token"("userId"); + +-- CreateIndex +CREATE UNIQUE INDEX "notification_device_token_userId_token_key" ON "notification_device_token"("userId", "token"); + +-- CreateIndex +CREATE UNIQUE INDEX "notification_preference_userId_channel_key" ON "notification_preference"("userId", "channel"); + +-- CreateIndex +CREATE INDEX "notification_message_userId_idx" ON "notification_message"("userId"); + +-- CreateIndex +CREATE INDEX "notification_message_status_idx" ON "notification_message"("status"); + +-- CreateIndex +CREATE INDEX "notification_message_createdAt_idx" ON "notification_message"("createdAt"); + +-- AddForeignKey +ALTER TABLE "notification_device_token" ADD CONSTRAINT "notification_device_token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "notification_preference" ADD CONSTRAINT "notification_preference_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "notification_message" ADD CONSTRAINT "notification_message_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;