#pragma once
#include <Arduino.h>
namespace StateData{
    DynamicJsonDocument state(1024);

    void updateState(char* data);
}

void StateData::updateState(char* data) {
    char* strtokIndex;
    char stateValueType[64];
    char stateKey[64];
    char stateValue[64];
    
    // Get state value type
    strtokIndex = strtok(data, ";");
    strcpy(stateValueType, strtokIndex);
    
    // Get state key
    strtokIndex = strtok(NULL, ";");
    strcpy(stateKey, strtokIndex);

    // Get state value type
    strtokIndex = strtok(NULL, ";");
    strcpy(stateValue, strtokIndex);

    if (strcmp(stateValueType, "float") == 0) {
        state[stateKey] = atof(stateValue);
    }

    else if (strcmp(stateValueType, "bool") == 0) {
        if (strcmp(stateValue, "true") == 0) {
            state[stateKey] = true;
        }

        else if (strcmp(stateValue, "false") == 0) {
            state[stateKey] = false;
        }
    }

    else if (strcmp(stateValueType, "string") == 0) {
        state[stateKey] = stateValue;
    }
}