/**
 * Synchronisation response
 */

#pragma once

#include <stddef.h>
#include <stdbool.h>
#include <cJSON.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct sync_response
    {
        size_t len;
        char *available_update;
        bool relays[];
    } sync_response;

    /**
     * Decode synchronize response from server
     */
    sync_response *sync_response_parse(cJSON *res);

    /**
     * Print synchronize reponse content
     */
    void sync_response_print(sync_response *res);

    /**
     * Free memory allocated for synchronize response
     */
    void sync_response_free(sync_response *res);

    /**
     * Check the desired status of a relay
     */
    bool sync_response_is_relay_on(sync_response *res, int relay_number);

#ifdef __cplusplus
}
#endif