fix: enforce carrier-specific channel group routing

This commit is contained in:
hectorzhao
2026-07-03 12:48:16 +08:00
parent a890b03163
commit dd09d91c1e
17 changed files with 630 additions and 78 deletions
@@ -0,0 +1,3 @@
ALTER TABLE "SmsChannelGroup" ADD COLUMN "carrier" TEXT NOT NULL DEFAULT 'mobile';
CREATE UNIQUE INDEX "SmsChannelGroupItem_groupId_province_key" ON "SmsChannelGroupItem"("groupId", "province");
@@ -0,0 +1 @@
ALTER TABLE "SmsApplication" ADD COLUMN "customerUnitPrice" INTEGER NOT NULL DEFAULT 0;
+3
View File
@@ -338,6 +338,7 @@ model SmsApplication {
callbackUrl String?
secretHash String
dailyLimit Int?
customerUnitPrice Int @default(0)
maxPhonesPerTask Int @default(1000000)
templateMismatchMode String @default("reject")
status String @default("active")
@@ -527,6 +528,7 @@ model SmsChannelGroup {
code String @unique
name String
description String?
carrier String @default("mobile")
status String @default("active")
retryEnabled Boolean @default(true)
retryTimeLimitHours Int @default(72)
@@ -553,6 +555,7 @@ model SmsChannelGroupItem {
channel SmsChannel @relation(fields: [channelId], references: [id])
@@unique([groupId, channelId, carrier, province])
@@unique([groupId, province])
@@index([channelId])
}