package cn.nianxx.thhotel.platform.message.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * 来源消息重复投递 payload 差异实体。该表用于排查重复投递内容变化，不通过普通查询接口返回。
 */
@TableName("platform_source_message_payload_duplicate")
public class SourceMessagePayloadDuplicateEntity {

    /** 重复投递 payload 明细内部主键。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 所属 SourceMessage Inbox ID，关联首次保存的来源消息。 */
    private Long inboxId;
    /** 首次保存 payload 的 SHA-256 哈希。 */
    private String originalPayloadSha256;
    /** 本次重复投递 payload 的 SHA-256 哈希。 */
    private String duplicatePayloadSha256;
    /** 本次重复投递的 AgentBus 规范 JSON 原始载荷，普通查询接口不得返回。 */
    private String payloadJson;
    /** 本次重复投递的 AgentBus frame ID，仅用于排查推送帧。 */
    private String providerFrameId;
    /** 本次重复投递的 AgentBus session ID，仅用于排查连接会话。 */
    private String providerSessionId;
    /** 本次重复投递 payload 结构版本。 */
    private String schemaVersion;
    /** 本项目收到本次重复投递的 UTC 时间。 */
    private LocalDateTime receivedAt;
    /** 记录创建 UTC 时间。 */
    private LocalDateTime createdAt;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getInboxId() {
        return inboxId;
    }

    public void setInboxId(Long inboxId) {
        this.inboxId = inboxId;
    }

    public String getOriginalPayloadSha256() {
        return originalPayloadSha256;
    }

    public void setOriginalPayloadSha256(String originalPayloadSha256) {
        this.originalPayloadSha256 = originalPayloadSha256;
    }

    public String getDuplicatePayloadSha256() {
        return duplicatePayloadSha256;
    }

    public void setDuplicatePayloadSha256(String duplicatePayloadSha256) {
        this.duplicatePayloadSha256 = duplicatePayloadSha256;
    }

    public String getPayloadJson() {
        return payloadJson;
    }

    public void setPayloadJson(String payloadJson) {
        this.payloadJson = payloadJson;
    }

    public String getProviderFrameId() {
        return providerFrameId;
    }

    public void setProviderFrameId(String providerFrameId) {
        this.providerFrameId = providerFrameId;
    }

    public String getProviderSessionId() {
        return providerSessionId;
    }

    public void setProviderSessionId(String providerSessionId) {
        this.providerSessionId = providerSessionId;
    }

    public String getSchemaVersion() {
        return schemaVersion;
    }

    public void setSchemaVersion(String schemaVersion) {
        this.schemaVersion = schemaVersion;
    }

    public LocalDateTime getReceivedAt() {
        return receivedAt;
    }

    public void setReceivedAt(LocalDateTime receivedAt) {
        this.receivedAt = receivedAt;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
}
