Aktueller Stand
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "CleanupJobCandidate"
|
||||
ADD COLUMN "listUnsubscribePost" TEXT;
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "CleanupJobCandidate"
|
||||
ADD COLUMN "unsubscribeDetails" JSONB;
|
||||
@@ -0,0 +1,16 @@
|
||||
CREATE TABLE "TenantMetric" (
|
||||
"id" TEXT NOT NULL,
|
||||
"tenantId" TEXT NOT NULL,
|
||||
"avgProcessingRate" DOUBLE PRECISION,
|
||||
"sampleCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "TenantMetric_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX "TenantMetric_tenantId_key" ON "TenantMetric"("tenantId");
|
||||
|
||||
ALTER TABLE "TenantMetric"
|
||||
ADD CONSTRAINT "TenantMetric_tenantId_fkey"
|
||||
FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id")
|
||||
ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TYPE "RuleConditionType" ADD VALUE IF NOT EXISTS 'HEADER_MISSING';
|
||||
@@ -0,0 +1,15 @@
|
||||
ALTER TABLE "Rule" ADD COLUMN "position" INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
WITH ordered AS (
|
||||
SELECT
|
||||
"id",
|
||||
"tenantId",
|
||||
ROW_NUMBER() OVER (PARTITION BY "tenantId" ORDER BY "createdAt" ASC, "id" ASC) - 1 AS pos
|
||||
FROM "Rule"
|
||||
)
|
||||
UPDATE "Rule" r
|
||||
SET "position" = ordered.pos
|
||||
FROM ordered
|
||||
WHERE ordered.id = r.id;
|
||||
|
||||
CREATE INDEX "Rule_tenantId_position_idx" ON "Rule"("tenantId", "position");
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TABLE "Rule" ADD COLUMN "stopOnMatch" BOOLEAN NOT NULL DEFAULT false;
|
||||
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE "CleanupJob" ADD COLUMN "listingSeconds" INTEGER;
|
||||
ALTER TABLE "CleanupJob" ADD COLUMN "processingSeconds" INTEGER;
|
||||
ALTER TABLE "CleanupJob" ADD COLUMN "unsubscribeSeconds" INTEGER;
|
||||
ALTER TABLE "CleanupJob" ADD COLUMN "routingSeconds" INTEGER;
|
||||
ALTER TABLE "CleanupJob" ADD COLUMN "unsubscribeAttempts" INTEGER;
|
||||
ALTER TABLE "CleanupJob" ADD COLUMN "actionAttempts" INTEGER;
|
||||
@@ -0,0 +1,23 @@
|
||||
CREATE TABLE "TenantProviderMetric" (
|
||||
"id" TEXT NOT NULL,
|
||||
"tenantId" TEXT NOT NULL,
|
||||
"provider" "MailProvider" NOT NULL,
|
||||
"avgListingRate" DOUBLE PRECISION,
|
||||
"avgProcessingRate" DOUBLE PRECISION,
|
||||
"avgUnsubscribeRate" DOUBLE PRECISION,
|
||||
"avgRoutingRate" DOUBLE PRECISION,
|
||||
"listingSampleCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"processingSampleCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"unsubscribeSampleCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"routingSampleCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "TenantProviderMetric_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX "TenantProviderMetric_tenantId_provider_key" ON "TenantProviderMetric"("tenantId", "provider");
|
||||
CREATE INDEX "TenantProviderMetric_tenantId_idx" ON "TenantProviderMetric"("tenantId");
|
||||
|
||||
ALTER TABLE "TenantProviderMetric"
|
||||
ADD CONSTRAINT "TenantProviderMetric_tenantId_fkey"
|
||||
FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE "TenantProviderMetric" ADD COLUMN "avgListingSecondsPerMessage" DOUBLE PRECISION;
|
||||
ALTER TABLE "TenantProviderMetric" ADD COLUMN "avgProcessingSecondsPerMessage" DOUBLE PRECISION;
|
||||
ALTER TABLE "TenantProviderMetric" ADD COLUMN "avgUnsubscribeSecondsPerMessage" DOUBLE PRECISION;
|
||||
ALTER TABLE "TenantProviderMetric" ADD COLUMN "avgRoutingSecondsPerMessage" DOUBLE PRECISION;
|
||||
@@ -0,0 +1,33 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "CleanupJobCandidate" (
|
||||
"id" TEXT NOT NULL,
|
||||
"jobId" TEXT NOT NULL,
|
||||
"mailboxAccountId" TEXT NOT NULL,
|
||||
"provider" "MailProvider" NOT NULL,
|
||||
"externalId" TEXT NOT NULL,
|
||||
"subject" TEXT,
|
||||
"from" TEXT,
|
||||
"fromDomain" TEXT,
|
||||
"listId" TEXT,
|
||||
"listUnsubscribe" TEXT,
|
||||
"score" INTEGER NOT NULL,
|
||||
"signals" JSONB NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "CleanupJobCandidate_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "CleanupJobCandidate_jobId_externalId_key" ON "CleanupJobCandidate"("jobId", "externalId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "CleanupJobCandidate_jobId_idx" ON "CleanupJobCandidate"("jobId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "CleanupJobCandidate_jobId_fromDomain_idx" ON "CleanupJobCandidate"("jobId", "fromDomain");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CleanupJobCandidate" ADD CONSTRAINT "CleanupJobCandidate_jobId_fkey" FOREIGN KEY ("jobId") REFERENCES "CleanupJob"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CleanupJobCandidate" ADD CONSTRAINT "CleanupJobCandidate_mailboxAccountId_fkey" FOREIGN KEY ("mailboxAccountId") REFERENCES "MailboxAccount"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@@ -0,0 +1,7 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "CleanupJobCandidate"
|
||||
ADD COLUMN "receivedAt" TIMESTAMP(3),
|
||||
ADD COLUMN "actions" JSONB,
|
||||
ADD COLUMN "unsubscribeStatus" TEXT,
|
||||
ADD COLUMN "unsubscribeMessage" TEXT,
|
||||
ADD COLUMN "unsubscribeTarget" TEXT;
|
||||
@@ -0,0 +1,5 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "UnsubscribeAttempt" ADD COLUMN "dedupeKey" TEXT;
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "UnsubscribeAttempt_jobId_dedupeKey_key" ON "UnsubscribeAttempt"("jobId", "dedupeKey");
|
||||
@@ -0,0 +1,6 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "RuleActionType" ADD VALUE IF NOT EXISTS 'MARK_READ';
|
||||
ALTER TYPE "RuleActionType" ADD VALUE IF NOT EXISTS 'MARK_UNREAD';
|
||||
|
||||
-- AlterEnum
|
||||
ALTER TYPE "RuleConditionType" ADD VALUE IF NOT EXISTS 'UNSUBSCRIBE_STATUS';
|
||||
@@ -0,0 +1,2 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "RuleConditionType" ADD VALUE IF NOT EXISTS 'SCORE';
|
||||
@@ -0,0 +1,17 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "UnsubscribeHistory" (
|
||||
"id" TEXT NOT NULL,
|
||||
"tenantId" TEXT NOT NULL,
|
||||
"dedupeKey" TEXT NOT NULL,
|
||||
"target" TEXT NOT NULL,
|
||||
"status" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "UnsubscribeHistory_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "UnsubscribeHistory_tenantId_dedupeKey_key" ON "UnsubscribeHistory"("tenantId", "dedupeKey");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "UnsubscribeHistory_tenantId_idx" ON "UnsubscribeHistory"("tenantId");
|
||||
@@ -0,0 +1,2 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "CleanupJobCandidate" ADD COLUMN "reviewed" BOOLEAN NOT NULL DEFAULT false;
|
||||
@@ -0,0 +1,5 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "RuleMatchMode" AS ENUM ('ALL', 'ANY');
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Rule" ADD COLUMN "matchMode" "RuleMatchMode" NOT NULL DEFAULT 'ALL';
|
||||
Reference in New Issue
Block a user