feat: densify sms records and improve uplink matching

This commit is contained in:
hectorzhao
2026-08-27 10:15:08 +08:00
parent 898471423f
commit a280b4bb22
25 changed files with 859 additions and 154 deletions
@@ -4,6 +4,7 @@ import { join } from 'node:path';
const examplesDir = join(process.cwd(), 'docs', 'contracts', 'examples');
const envelopeFields = ['schemaVersion', 'messageType', 'traceId', 'messageId', 'channelId', 'createdAt'];
const uplinkEnvelopeFields = envelopeFields.filter((field) => field !== 'messageId');
const requiredByType = {
SubmitCommand: [
...envelopeFields,
@@ -21,7 +22,7 @@ const requiredByType = {
],
SubmitResult: [...envelopeFields, 'sequenceId', 'gatewayMessageId', 'submitStatus', 'submittedAt'],
ReceiptEvent: [...envelopeFields, 'sequenceId', 'gatewayMessageId', 'receiptStatus', 'rawStatus', 'deliveredAt'],
UplinkEvent: [...envelopeFields, 'sequenceId', 'phoneNumber', 'destId', 'content', 'receivedAt'],
UplinkEvent: [...uplinkEnvelopeFields, 'sequenceId', 'gatewayMessageId', 'phoneNumber', 'destId', 'content', 'receivedAt'],
};
const validTypes = new Set(Object.keys(requiredByType));