fix: persist sms carrier and province

This commit is contained in:
hectorzhao
2026-07-11 21:55:25 +08:00
parent 37048a4c9a
commit 7b8424d9bc
8 changed files with 76 additions and 12 deletions
@@ -0,0 +1,21 @@
ALTER TABLE "SmsMessageRecord"
ADD COLUMN "carrier" TEXT,
ADD COLUMN "province" TEXT;
UPDATE "SmsMessageRecord" AS message
SET "province" = segment."province"
FROM "PhoneSegment" AS segment
WHERE segment."prefix" = left(message."phoneNumber", 7);
UPDATE "SmsMessageRecord" AS message
SET "carrier" = COALESCE((
SELECT rule."carrier"
FROM "PhoneCarrierRule" AS rule
WHERE rule."status" = 'active'
AND message."phoneNumber" ~ rule."pattern"
ORDER BY rule."priority" ASC, rule."createdAt" ASC
LIMIT 1
), 'mobile');
CREATE INDEX "SmsMessageRecord_carrier_province_idx"
ON "SmsMessageRecord"("carrier", "province");