// components/scheduler/include/scheduler_types.h
#pragma once
#include <stdbool.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef enum
    {
        SCHED_MODE_DISABLED = 0,
        SCHED_MODE_DAILY_MULTI = 1,
    } sched_mode_t;

#define SCHED_MAX_WINDOWS 4

    typedef struct
    {
        uint16_t start_min; // 0..1440 (aceita 1440 = 24:00)
        uint16_t end_min;   // 0..1440
        uint16_t current_a; // 6..80
    } sched_window_t;

    typedef struct
    {
        bool enabled;
        sched_mode_t mode;

        uint8_t window_count;
        sched_window_t windows[SCHED_MAX_WINDOWS];
    } sched_config_t;

    const char *sched_mode_to_str(sched_mode_t mode);
    bool sched_mode_from_str(const char *s, sched_mode_t *out);

#ifdef __cplusplus
}
#endif