#pragma once

#include <util/ffdc_file.hpp>

#include <cstddef> // for size_t
#include <map>
#include <string>
#include <vector>

namespace attn
{
constexpr auto pathLogging   = "/xyz/openbmc_project/logging";
constexpr auto levelPelError = "xyz.openbmc_project.Logging.Entry.Level.Error";
constexpr auto levelPelInfo =
    "xyz.openbmc_project.Logging.Entry.Level.Informational";
constexpr auto eventPelTerminate = "xyz.open_power.Attn.Error.Terminate";

/** @brief Logging event types */
enum class EventType
{
    Checkstop     = 0,
    Terminate     = 1,
    Vital         = 2,
    HwDiagsFail   = 3,
    AttentionFail = 4,
    PhalSbeChipop = 5
};

/** @brief Commit special attention TI event to log */
void eventTerminate(std::map<std::string, std::string> i_additionalData,
                    char* i_tiInfoData);

/** @brief Commit SBE vital event to log
 *
 *  @param[in] severity - the PEL severity level of the event
 *
 *  @return platform event log (PEL) ID
 * */
uint32_t eventVital(std::string severity);

/** @brief Commit attention handler failure event to log */
void eventAttentionFail(int i_error);

} // namespace attn
