-- M001 SourceMessage Inbox：重复投递 payload 差异明细表，只在幂等命中且 payload 内容变化时追加保存。
CREATE TABLE platform_source_message_payload_duplicate (
    id BIGINT NOT NULL COMMENT '重复投递 payload 明细 ID',
    inbox_id BIGINT NOT NULL COMMENT '所属 SourceMessage Inbox 记录 ID，关联首次保存的来源消息',
    original_payload_sha256 CHAR(64) NOT NULL COMMENT '首次保存 payload 的 SHA-256 哈希，用于和重复投递 payload 对比',
    duplicate_payload_sha256 CHAR(64) NOT NULL COMMENT '本次重复投递 payload 的 SHA-256 哈希',
    payload_json LONGTEXT NOT NULL COMMENT '本次重复投递的 AgentBus 规范 JSON 原始载荷，普通查询接口不得返回',
    provider_frame_id VARCHAR(128) NULL COMMENT '本次重复投递的 AgentBus frame ID，仅用于排查推送帧',
    provider_session_id VARCHAR(128) NULL COMMENT '本次重复投递的 AgentBus session ID，仅用于排查连接会话',
    schema_version VARCHAR(64) NULL COMMENT '本次重复投递 payload 结构版本，AgentBus 有提供则保存',
    received_at DATETIME(6) NOT NULL COMMENT '本项目收到本次重复投递的 UTC 时间',
    created_at DATETIME(6) NOT NULL COMMENT '记录创建 UTC 时间',
    PRIMARY KEY (id),
    KEY idx_source_message_payload_duplicate_inbox_time (inbox_id, received_at),
    KEY idx_source_message_payload_duplicate_hash (duplicate_payload_sha256),
    KEY idx_source_message_payload_duplicate_frame (provider_frame_id)
) COMMENT='SourceMessage 重复投递 payload 差异明细表，用于排查同一外部邮件 ID 的重复投递内容变化';
