feat: filter SMS routes by channel sensitive words
This commit is contained in:
@@ -266,6 +266,32 @@ model PhoneCarrierRule {
|
||||
@@index([status, priority])
|
||||
}
|
||||
|
||||
model ChannelSensitiveWord {
|
||||
id String @id @default(cuid())
|
||||
channelId String
|
||||
channel SmsChannel @relation(fields: [channelId], references: [id])
|
||||
word String
|
||||
status String @default("active")
|
||||
remark String @default("")
|
||||
version Int @default(1)
|
||||
createdBy String
|
||||
updatedBy String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
@@unique([channelId, word])
|
||||
@@index([channelId, status])
|
||||
}
|
||||
|
||||
model SmsChannelSensitiveDecision {
|
||||
id String @id @default(cuid())
|
||||
messageRecordId String
|
||||
messageRecord SmsMessageRecord @relation(fields: [messageRecordId], references: [id])
|
||||
routeAttemptId String @unique
|
||||
decidedAt DateTime @default(now())
|
||||
snapshot Json
|
||||
@@index([messageRecordId, decidedAt])
|
||||
}
|
||||
|
||||
model SensitiveWord {
|
||||
id String @id @default(cuid())
|
||||
word String @unique
|
||||
@@ -881,6 +907,7 @@ model AuditRecord {
|
||||
}
|
||||
|
||||
model SmsChannel {
|
||||
sensitiveWords ChannelSensitiveWord[]
|
||||
id String @id @default(cuid())
|
||||
code String @unique
|
||||
name String
|
||||
@@ -1799,6 +1826,8 @@ model SmsDrainageDecision {
|
||||
}
|
||||
|
||||
model SmsMessageRecord {
|
||||
channelWordDecisions SmsChannelSensitiveDecision[]
|
||||
channelWordFinalizationPending Boolean @default(false)
|
||||
monitorFacts SendingMonitorFact[]
|
||||
id String @id @default(cuid())
|
||||
tenantId String?
|
||||
|
||||
Reference in New Issue
Block a user