#pragma once
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Tamanho máx. da tag (inclui NUL) */
#define AUTH_TAG_MAX_LEN 30

/* Modos de autorização */
typedef enum {
    AUTH_MODE_OPEN = 0,       // Sem autenticação
    AUTH_MODE_LOCAL_RFID,     // Lista local (NVS)
    AUTH_MODE_OCPP_RFID       // Validação via OCPP/CSMS
} auth_mode_t;

/* Converte enum -> "open"|"local"|"ocpp" (nunca NULL) */
const char *auth_mode_to_str(auth_mode_t mode);

/* Converte "open"|"local"|"ocpp" (case-insensitive) -> enum */
bool auth_mode_from_str(const char *s, auth_mode_t *out);

#ifdef __cplusplus
}
#endif
