#pragma once

#include <msgpack.hpp>
#include <string>
#include <unordered_map>

// 为了便于序列化，所有成员均定义为 public
struct Message {
    uint32_t cmd;               // 消息协议号
    int code = 0;               // 错误码（例如 200 表示 OK）
    std::string message;        // 消息提示
    std::unordered_map<std::string, msgpack::object> data; // 消息内容

    // 使用 MSGPACK_DEFINE_MAP 宏生成序列化代码
    MSGPACK_DEFINE_MAP(cmd, code, message, data);
};
