#pragma once #include "esp_event.h" #include "auth_types.h" // só tipos comuns; evita incluir auth.h ESP_EVENT_DECLARE_BASE(AUTH_EVENTS); /* IDs de eventos */ typedef enum { AUTH_EVENT_TAG_PROCESSED = 0, // resultado LOCAL -> auth_tag_event_data_t AUTH_EVENT_TAG_VERIFY, // pedir validação OCPP -> auth_tag_verify_event_t AUTH_EVENT_TAG_SAVED, // registada (modo registo) -> auth_tag_event_data_t AUTH_EVENT_MODE_CHANGED, // modo alterado -> auth_mode_event_data_t AUTH_EVENT_INIT, // estado inicial -> auth_mode_event_data_t } auth_event_id_t; /* Payloads */ typedef struct { char tag[AUTH_TAG_MAX_LEN]; bool authorized; } auth_tag_event_data_t; typedef struct { char tag[AUTH_TAG_MAX_LEN]; uint32_t req_id; // opcional p/ correlacionar } auth_tag_verify_event_t; typedef struct { auth_mode_t mode; } auth_mode_event_data_t;