#ifndef CORE_MODELS_CONTROLLER_H #define CORE_MODELS_CONTROLLER_H #include #include #include #include #include #include #define IP_LENGTH 16 typedef struct { int id; uuid_t uid; char name[MAX_NAME_LENGTH + 1]; char ip[IP_LENGTH + 1]; int active; int port; int relay_count; relay_t **relays; } controller_t; void controller_free(controller_t* contoller); int controller_save(controller_t* contoller); int controller_remove(controller_t* contoller); cJSON* controller_to_json(controller_t* contoller); controller_t* controller_get_by_id(int id); controller_t* controller_get_by_uid(uuid_t uid); controller_t** controller_get_all(); int controller_command(int command_code, char *payload, uint32_t payload_size); void controller_free_list(controller_t **controllers_list); #endif /* CORE_MODELS_CONTROLLER_H */