feat: aggregate cmpp template mismatch reviews

This commit is contained in:
hectorzhao
2026-07-12 13:25:19 +08:00
parent c8b6d0aa7c
commit 8b6ec92f4f
17 changed files with 523 additions and 38 deletions
@@ -0,0 +1,21 @@
ALTER TABLE "SmsSendTask"
ADD COLUMN "sourceType" TEXT NOT NULL DEFAULT 'risk',
ADD COLUMN "aggregationKey" TEXT,
ADD COLUMN "contentHash" TEXT,
ADD COLUMN "windowStartedAt" TIMESTAMP(3),
ADD COLUMN "windowEndsAt" TIMESTAMP(3);
ALTER TABLE "SmsMessageRecord"
ADD COLUMN "signatureId" TEXT,
ADD COLUMN "reviewTaskId" TEXT;
CREATE UNIQUE INDEX "SmsSendTask_aggregationKey_key" ON "SmsSendTask"("aggregationKey");
CREATE INDEX "SmsMessageRecord_reviewTaskId_status_idx" ON "SmsMessageRecord"("reviewTaskId", "status");
ALTER TABLE "SmsMessageRecord"
ADD CONSTRAINT "SmsMessageRecord_signatureId_fkey"
FOREIGN KEY ("signatureId") REFERENCES "SmsSignature"("id") ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE "SmsMessageRecord"
ADD CONSTRAINT "SmsMessageRecord_reviewTaskId_fkey"
FOREIGN KEY ("reviewTaskId") REFERENCES "SmsSendTask"("id") ON DELETE SET NULL ON UPDATE CASCADE;
+12
View File
@@ -411,6 +411,7 @@ model SmsSignature {
templates SmsTemplate[]
reportMaterials SignatureReportMaterial[]
reportTasks ChannelSignatureReportTask[]
messageRecords SmsMessageRecord[]
@@index([tenantId, auditStatus])
@@index([tenantId, reportStatus])
@@ -782,6 +783,11 @@ model SmsSendTask {
applicationId String?
templateId String?
taskNo String @unique
sourceType String @default("risk")
aggregationKey String? @unique
contentHash String?
windowStartedAt DateTime?
windowEndsAt DateTime?
content String
category String?
phoneTotal Int
@@ -806,6 +812,7 @@ model SmsSendTask {
createdBy User? @relation("SmsSendTaskCreator", fields: [createdById], references: [id])
reviewedBy User? @relation("SmsSendTaskReviewer", fields: [reviewedById], references: [id])
riskHits RiskHitRecord[]
messageRecords SmsMessageRecord[]
@@index([tenantId, status, createdAt])
@@index([applicationId, createdAt])
@@ -899,6 +906,8 @@ model SmsMessageRecord {
batchTaskId String?
applicationId String?
templateId String?
signatureId String?
reviewTaskId String?
messageId String @unique
phoneNumber String
carrier String?
@@ -926,6 +935,8 @@ model SmsMessageRecord {
batchTask SmsBatchTask? @relation(fields: [batchTaskId], references: [id], onDelete: Cascade)
application SmsApplication? @relation(fields: [applicationId], references: [id])
template SmsTemplate? @relation(fields: [templateId], references: [id])
signature SmsSignature? @relation(fields: [signatureId], references: [id])
reviewTask SmsSendTask? @relation(fields: [reviewTaskId], references: [id])
channel SmsChannel? @relation(fields: [channelId], references: [id])
submitRecords SmsSubmitRecord[]
receiptRecords SmsReceiptRecord[]
@@ -936,6 +947,7 @@ model SmsMessageRecord {
@@index([tenantId, status, queuedAt])
@@index([batchTaskId, status])
@@index([reviewTaskId, status])
@@index([phoneNumber])
@@index([gatewayMessageId])
}