feat: self-hosted postfix
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "email_logs" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"recipient" TEXT NOT NULL,
|
||||
"subject" TEXT,
|
||||
"message_id" TEXT,
|
||||
"status" TEXT NOT NULL,
|
||||
"sent_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"error_message" TEXT,
|
||||
"bounce_type" TEXT,
|
||||
"bounce_details" JSONB,
|
||||
|
||||
CONSTRAINT "email_logs_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "email_logs_recipient_idx" ON "email_logs"("recipient");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "email_logs_status_idx" ON "email_logs"("status");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "email_logs_sent_at_idx" ON "email_logs"("sent_at");
|
||||
@@ -32,3 +32,20 @@ model News {
|
||||
|
||||
@@map(name: "news")
|
||||
}
|
||||
|
||||
model EmailLog {
|
||||
id Int @id @default(autoincrement())
|
||||
recipient String
|
||||
subject String?
|
||||
messageId String? @map("message_id")
|
||||
status String // 'sent', 'failed', 'bounced'
|
||||
sentAt DateTime @default(now()) @map("sent_at")
|
||||
errorMessage String? @map("error_message")
|
||||
bounceType String? @map("bounce_type")
|
||||
bounceDetails Json? @map("bounce_details")
|
||||
|
||||
@@index([recipient])
|
||||
@@index([status])
|
||||
@@index([sentAt])
|
||||
@@map(name: "email_logs")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user