#pragma once

#include <cstddef>
#include <cstdint>

#include <QDateTime>
#include <QMetaType>
#include <QString>

#include "message_bus/pipeline/PayloadRef.h"

namespace softbus::message_bus::pipeline
{

struct PipelineContext
{
    int deviceId{-1}; // 设备ID
    QString stableKey;
    QString endpoint; // 端点
    QDateTime timestamp{QDateTime::currentDateTimeUtc()}; // 时间戳
    QString protocolHint; // 协议提示
    QString traceId; // 跟踪ID

    PayloadRef payload; // 有效载荷
    std::size_t payloadSize{0}; // 有效载荷大小
};

} // namespace softbus::message_bus::pipeline

Q_DECLARE_METATYPE(softbus::message_bus::pipeline::PipelineContext)
