#ifndef EVSE_EVENTS_H
#define EVSE_EVENTS_H

#include "evse_api.h"
#include "esp_event_base.h"

// Certifique-se de que ESP_EVENT_DECLARE_BASE seja corretamente reconhecido
#ifdef __cplusplus
extern "C" {
#endif

// Declaração da base de eventos EVSE (será definida em evse_events.c)
ESP_EVENT_DECLARE_BASE(EVSE_EVENT);

typedef enum {
    EVSE_EVENT_STATE_CHANGED,
    EVSE_EVENT_ERROR,
    EVSE_EVENT_ERROR_CLEARED,
    EVSE_EVENT_LIMIT_REACHED,
    EVSE_EVENT_AUTH_GRANTED
} evse_event_id_t;

// Estrutura do evento de mudança de estado
typedef struct {
    evse_state_t previous;
    evse_state_t current;
} evse_event_state_changed_t;

#ifdef __cplusplus
}
#endif

#endif // EVSE_EVENTS_H
