fix: implement channel group routing failover

This commit is contained in:
hectorzhao
2026-07-03 11:07:43 +08:00
parent 131f344ac4
commit a890b03163
16 changed files with 853 additions and 121 deletions
@@ -0,0 +1,20 @@
-- Channel-group routing rules for first-version send-chain failover.
ALTER TABLE "SmsChannel" ADD COLUMN "sendRegion" TEXT NOT NULL DEFAULT '全国';
ALTER TABLE "SmsChannelGroup" ADD COLUMN "retryEnabled" BOOLEAN NOT NULL DEFAULT true;
ALTER TABLE "SmsChannelGroup" ADD COLUMN "retryTimeLimitHours" INTEGER NOT NULL DEFAULT 72;
CREATE TABLE "PhoneCarrierRule" (
"id" TEXT NOT NULL,
"carrier" TEXT NOT NULL,
"pattern" TEXT NOT NULL,
"priority" INTEGER NOT NULL DEFAULT 100,
"status" TEXT NOT NULL DEFAULT 'active',
"remark" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "PhoneCarrierRule_pkey" PRIMARY KEY ("id")
);
CREATE INDEX "PhoneCarrierRule_status_priority_idx" ON "PhoneCarrierRule"("status", "priority");
+16
View File
@@ -173,6 +173,19 @@ model PhoneSegment {
updatedAt DateTime @updatedAt
}
model PhoneCarrierRule {
id String @id @default(cuid())
carrier String
pattern String
priority Int @default(100)
status String @default("active")
remark String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([status, priority])
}
model SensitiveWord {
id String @id @default(cuid())
word String @unique
@@ -453,6 +466,7 @@ model SmsChannel {
code String @unique
name String
carrier String?
sendRegion String @default("全国")
protocol String @default("CMPP")
gatewayHost String
gatewayPort Int
@@ -514,6 +528,8 @@ model SmsChannelGroup {
name String
description String?
status String @default("active")
retryEnabled Boolean @default(true)
retryTimeLimitHours Int @default(72)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt