59 lines
2.0 KiB
MySQL
59 lines
2.0 KiB
MySQL
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "InAppNotification" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"userId" TEXT NOT NULL,
|
||
|
|
"type" TEXT NOT NULL,
|
||
|
|
"priority" TEXT NOT NULL DEFAULT 'normal',
|
||
|
|
"icon" TEXT,
|
||
|
|
"title" TEXT NOT NULL,
|
||
|
|
"message" TEXT NOT NULL,
|
||
|
|
"linkUrl" TEXT,
|
||
|
|
"linkLabel" TEXT,
|
||
|
|
"metadata" JSONB,
|
||
|
|
"groupKey" TEXT,
|
||
|
|
"isRead" BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
"readAt" TIMESTAMP(3),
|
||
|
|
"expiresAt" TIMESTAMP(3),
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
|
||
|
|
CONSTRAINT "InAppNotification_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "NotificationEmailSetting" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"notificationType" TEXT NOT NULL,
|
||
|
|
"category" TEXT NOT NULL,
|
||
|
|
"label" TEXT NOT NULL,
|
||
|
|
"description" TEXT,
|
||
|
|
"sendEmail" BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
"emailSubject" TEXT,
|
||
|
|
"emailTemplate" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"updatedById" TEXT,
|
||
|
|
|
||
|
|
CONSTRAINT "NotificationEmailSetting_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "InAppNotification_userId_isRead_idx" ON "InAppNotification"("userId", "isRead");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "InAppNotification_userId_createdAt_idx" ON "InAppNotification"("userId", "createdAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "InAppNotification_groupKey_idx" ON "InAppNotification"("groupKey");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "NotificationEmailSetting_notificationType_key" ON "NotificationEmailSetting"("notificationType");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "NotificationEmailSetting_category_idx" ON "NotificationEmailSetting"("category");
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "InAppNotification" ADD CONSTRAINT "InAppNotification_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "NotificationEmailSetting" ADD CONSTRAINT "NotificationEmailSetting_updatedById_fkey" FOREIGN KEY ("updatedById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|