feat: harden CMPP delivery and platform workflows
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "SmsMessageRecord"
|
||||
ADD COLUMN "cmppSubmitGroupMessageId" TEXT;
|
||||
@@ -0,0 +1,26 @@
|
||||
ALTER TABLE "SmsMessageRecord"
|
||||
ADD COLUMN "receiptRawStatus" TEXT;
|
||||
|
||||
ALTER TABLE "SmsReceiptRecord"
|
||||
ADD COLUMN "receiptKey" TEXT,
|
||||
ADD COLUMN "errorMessage" TEXT;
|
||||
|
||||
UPDATE "SmsReceiptRecord"
|
||||
SET "receiptKey" = MD5(
|
||||
COALESCE("channelId", '') || E'\u0001' ||
|
||||
"gatewayMessageId" || E'\u0001' ||
|
||||
"receiptStatus" || E'\u0001' ||
|
||||
"rawStatus"
|
||||
) || MD5("id");
|
||||
|
||||
ALTER TABLE "SmsReceiptRecord"
|
||||
ALTER COLUMN "receiptKey" SET NOT NULL;
|
||||
|
||||
CREATE UNIQUE INDEX "SmsReceiptRecord_receiptKey_key"
|
||||
ON "SmsReceiptRecord"("receiptKey");
|
||||
|
||||
CREATE INDEX "SmsSubmitRecord_channelId_gatewayMessageId_idx"
|
||||
ON "SmsSubmitRecord"("channelId", "gatewayMessageId");
|
||||
|
||||
CREATE INDEX "SmsReceiptRecord_channelId_gatewayMessageId_idx"
|
||||
ON "SmsReceiptRecord"("channelId", "gatewayMessageId");
|
||||
@@ -0,0 +1,9 @@
|
||||
ALTER TABLE "DailyReconciliationReport"
|
||||
ADD COLUMN "failedUnits" INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE "DailyProfitReport"
|
||||
ADD COLUMN "failedUnits" INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN "refundCents" BIGINT NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE "DailyQualityReport"
|
||||
ADD COLUMN "failedUnits" INTEGER NOT NULL DEFAULT 0;
|
||||
@@ -0,0 +1,11 @@
|
||||
ALTER TABLE "SmsReceiptRecord"
|
||||
ADD COLUMN "phoneNumber" TEXT;
|
||||
|
||||
UPDATE "SmsReceiptRecord" receipt
|
||||
SET "phoneNumber" = message."phoneNumber"
|
||||
FROM "SmsMessageRecord" message
|
||||
WHERE receipt."messageRecordId" = message.id
|
||||
AND receipt."phoneNumber" IS NULL;
|
||||
|
||||
CREATE INDEX "SmsReceiptRecord_channelId_gatewayMessageId_phoneNumber_idx"
|
||||
ON "SmsReceiptRecord"("channelId", "gatewayMessageId", "phoneNumber");
|
||||
@@ -1324,11 +1324,13 @@ model SmsMessageRecord {
|
||||
submitId String?
|
||||
gatewayMessageId String?
|
||||
cmppSubmitSequenceId String?
|
||||
cmppSubmitGroupMessageId String?
|
||||
clientSrcId String?
|
||||
applicationExtension String?
|
||||
status String @default("queued")
|
||||
submitStatus String?
|
||||
receiptStatus String?
|
||||
receiptRawStatus String?
|
||||
errorCode String?
|
||||
errorMessage String?
|
||||
queuedAt DateTime @default(now())
|
||||
@@ -1407,6 +1409,7 @@ model SmsSubmitRecord {
|
||||
@@index([tenantId, createdAt])
|
||||
@@index([messageRecordId])
|
||||
@@index([gatewayMessageId])
|
||||
@@index([channelId, gatewayMessageId])
|
||||
}
|
||||
|
||||
model DailyReconciliationReport {
|
||||
@@ -1418,6 +1421,7 @@ model DailyReconciliationReport {
|
||||
applicationName String
|
||||
sentUnits Int @default(0)
|
||||
successUnits Int @default(0)
|
||||
failedUnits Int @default(0)
|
||||
generatedAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@ -1439,7 +1443,9 @@ model DailyProfitReport {
|
||||
channelId String?
|
||||
sentUnits Int @default(0)
|
||||
successUnits Int @default(0)
|
||||
failedUnits Int @default(0)
|
||||
revenueCents BigInt @default(0)
|
||||
refundCents BigInt @default(0)
|
||||
costCents BigInt @default(0)
|
||||
profitCents BigInt @default(0)
|
||||
profitRateBps Int @default(0)
|
||||
@@ -1467,6 +1473,7 @@ model DailyQualityReport {
|
||||
drainageInfoId String?
|
||||
sentUnits Int @default(0)
|
||||
successUnits Int @default(0)
|
||||
failedUnits Int @default(0)
|
||||
successRateBps Int @default(0)
|
||||
avgArrivalMs Int?
|
||||
generatedAt DateTime @default(now())
|
||||
@@ -1524,13 +1531,16 @@ model SmsReceiptRecord {
|
||||
tenantId String?
|
||||
batchTaskId String?
|
||||
messageRecordId String?
|
||||
receiptKey String @unique
|
||||
channelId String?
|
||||
messageId String
|
||||
gatewayMessageId String
|
||||
phoneNumber String?
|
||||
sequenceId Int?
|
||||
receiptStatus String
|
||||
rawStatus String
|
||||
errorCode String?
|
||||
errorMessage String?
|
||||
deliveredAt DateTime
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@ -1542,6 +1552,8 @@ model SmsReceiptRecord {
|
||||
@@index([tenantId, createdAt])
|
||||
@@index([messageId])
|
||||
@@index([gatewayMessageId])
|
||||
@@index([channelId, gatewayMessageId])
|
||||
@@index([channelId, gatewayMessageId, phoneNumber])
|
||||
}
|
||||
|
||||
model SmsUplinkMessage {
|
||||
|
||||
Reference in New Issue
Block a user