#ifndef INFOCOMMUNICATE_HPP
#define INFOCOMMUNICATE_HPP

#include <cereal/archives/binary.hpp>
#include <cereal/types/memory.hpp>
#include <cereal/types/vector.hpp>
#include <cstdint>

enum MessageType {
    MSG_TYPE_ASK_CLIENTS = 1,
    MSG_TYPE_FORWORD_FAILED
};

struct InfoCommunicate {
    MessageType type;
    std::string fromID;
    std::string toID;
    std::string UUID;
    std::string data;
    uint8_t mark{};
    template <class Archive> void serialize(Archive& archive)
    {
        archive(CEREAL_NVP(type), CEREAL_NVP(fromID), CEREAL_NVP(toID), CEREAL_NVP(UUID), CEREAL_NVP(data), CEREAL_NVP(mark));
    }
};

#endif   // INFOCOMMUNICATE_HPP