#ifndef SCENE_SWITCH_4_MC_H__
#define SCENE_SWITCH_4_MC_H__

#include <stdint.h>
#include <stdbool.h>

#include "mesh_config.h"
#include "mesh_opt.h"
#include "nrf_mesh_assert.h"
#include "model_config_file.h"
#include "custom_model_config_file.h"



/** Start of Scene Switch 4 application record entry IDs */
#define MESH_APP_SCENE_SWITCH_4_STATE_ID_START  (0x1000)
/** End of cene Switch 4 application record entry IDs */
#define MESH_APP_SCENE_SWITCH_4_STATE_ID_END    (0x10FF)

#define SCENE_SWITCH_4_INSTANCES_MAX            CLIENT_MODEL_INSTANCE_COUNT

#define SCENE_SWITCH_4_EID_START                (MESH_APP_SCENE_SWITCH_4_STATE_ID_START)
#define SCENE_SWITCH_4_EID_END                  (MESH_APP_SCENE_SWITCH_4_STATE_ID_START + SCENE_SWITCH_4_INSTANCES_MAX - 1)

NRF_MESH_STATIC_ASSERT(SCENE_SWITCH_4_EID_END <= MESH_APP_SCENE_SWITCH_4_STATE_ID_END);

/* Thermostat BRT100 state entry ID */
#define SCENE_SWITCH_4_STATE_EID                MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, SCENE_SWITCH_4_EID_START)

#define SCENE_SWITCH_4_SCENES_MAX               (3)
#define SCENE_SWITCH_4_DEFAULT_SCENE_NUMBER     { { 0x1001, 0x1002, 0x1003}, { 0x1004, 0x1005, 0x1006 }, { 0x1007, 0x1008, 0x1009 }, { 0x100a, 0x100b, 0x100c } }
#define SCENE_SWITCH_4_TRANSITION_TIME_MS       0
#define SCENE_SWITCH_4_DELAY_MS                 0




typedef struct
{
    uint16_t scene_number[SCENE_SWITCH_4_SCENES_MAX];
    uint32_t transition_time_ms;
    uint32_t delay_ms;
} scene_switch_4_cfg_t;



uint32_t scene_switch_4_mc_state_set(uint8_t index, const scene_switch_4_cfg_t *p_value);
uint32_t scene_switch_4_mc_state_get(uint8_t index, scene_switch_4_cfg_t *p_value);
void scene_switch_4_mc_clear(void);
uint32_t scene_switch_4_mc_open(uint8_t *p_handle);
void scene_switch_4_mc_init(void);



#endif /* SCENE_SWITCH_4_MC_H__ */
