/** 
  * @file    uuid.h
  * @brief   UUID definitions
  * @author  Kenny Tran
  * @date    Jul 10 2023
  * @version 0.0.1
  *
  * @section LICENSES
  * Copyright (C) Morgan Advanced Programmable Systems, Inc.
  */


#ifndef UUID_H_
#define UUID_H_


/*--------------------------------------------------------------------------------------------------
 * INCLUDE FILES
 *------------------------------------------------------------------------------------------------*/
#include <zephyr/types.h>


/*--------------------------------------------------------------------------------------------------
 * MACROS & CONSTANTS
 *------------------------------------------------------------------------------------------------*/
/* BLE */
#define UUID_BLE_ADV_NAME_VAL           BT_UUID_128_ENCODE(0x00001FFF, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BLE_ADV_NAME               BT_UUID_DECLARE_128(UUID_BLE_ADV_NAME_VAL)

/* BOND CLEAR */
#define UUID_BLE_BOND_CLEAR_VAL         BT_UUID_128_ENCODE(0x00001550, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BLE_BOND_CLEAR             BT_UUID_DECLARE_128(UUID_BLE_BOND_CLEAR_VAL)

/* BASE SERVICE */
#define UUID_BASE_SERVICE_VAL           BT_UUID_128_ENCODE(0xBA5E0000, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BASE_SERVICE               BT_UUID_DECLARE_128(UUID_BASE_SERVICE_VAL)

#define UUID_BASE_EPOCH_VAL             BT_UUID_128_ENCODE(0xBA5E0001, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BASE_EPOCH                 BT_UUID_DECLARE_128(UUID_BASE_EPOCH_VAL)

#define UUID_BASE_RTC_TICK_VAL          BT_UUID_128_ENCODE(0xBA5E0002, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BASE_RTC_TICK              BT_UUID_DECLARE_128(UUID_BASE_RTC_TICK_VAL)

/* CONTROLS SERVICE */
#define UUID_CONTROLS_SERVICE_VAL       BT_UUID_128_ENCODE(0x00001523, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_CONTROLS_SERVICE           BT_UUID_DECLARE_128(UUID_CONTROLS_SERVICE_VAL)

/* APP */
#define UUID_APP_MPCB_VERSION_VAL       BT_UUID_128_ENCODE(0x00001500, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_MPCB_VERSION           BT_UUID_DECLARE_128(UUID_APP_MPCB_VERSION_VAL)

#define UUID_APP_RPCB_VERSION_VAL       BT_UUID_128_ENCODE(0x00001501, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_RPCB_VERSION           BT_UUID_DECLARE_128(UUID_APP_RPCB_VERSION_VAL)

#define UUID_APP_VERSION_VAL            BT_UUID_128_ENCODE(0x00001502, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_VERSION                BT_UUID_DECLARE_128(UUID_APP_VERSION_VAL)

#define UUID_APP_MFG_ID_VAL             BT_UUID_128_ENCODE(0x00001503, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_MFG_ID                 BT_UUID_DECLARE_128(UUID_APP_MFG_ID_VAL)

#define UUID_APP_MFG_DATE_VAL           BT_UUID_128_ENCODE(0x00001504, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_MFG_DATE               BT_UUID_DECLARE_128(UUID_APP_MFG_DATE_VAL)

#define UUID_APP_PN_VAL                 BT_UUID_128_ENCODE(0x00001505, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_PN                     BT_UUID_DECLARE_128(UUID_APP_PN_VAL)

#define UUID_APP_SN_VAL                 BT_UUID_128_ENCODE(0x00001506, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_SN                     BT_UUID_DECLARE_128(UUID_APP_SN_VAL)

#define UUID_APP_POWER_COUNT_VAL        BT_UUID_128_ENCODE(0x00001507, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_POWER_COUNT            BT_UUID_DECLARE_128(UUID_APP_POWER_COUNT_VAL)

#define UUID_APP_CLI_ENABLED_VAL        BT_UUID_128_ENCODE(0x00001508, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_CLI_ENABLED            BT_UUID_DECLARE_128(UUID_APP_CLI_ENABLED_VAL)

#define UUID_APP_RESET_VAL              BT_UUID_128_ENCODE(0x00001509, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_APP_RESET                  BT_UUID_DECLARE_128(UUID_APP_RESET_VAL)

/* SCOPE RING */
#define UUID_RING_COLOR_VAL             BT_UUID_128_ENCODE(0x00001524, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_RING_COLOR                 BT_UUID_DECLARE_128(UUID_RING_COLOR_VAL)

#define UUID_RING_BRIGHTNESS_VAL        BT_UUID_128_ENCODE(0x00001525, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_RING_BRIGHTNESS            BT_UUID_DECLARE_128(UUID_RING_BRIGHTNESS_VAL)

#define UUID_INDICATOR_COLOR_VAL        BT_UUID_128_ENCODE(0x00001526, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_INDICATOR_COLOR            BT_UUID_DECLARE_128(UUID_INDICATOR_COLOR_VAL)

#define UUID_INDICATOR_BRIGHTNESS_VAL   BT_UUID_128_ENCODE(0x00001527, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_INDICATOR_BRIGHTNESS       BT_UUID_DECLARE_128(UUID_INDICATOR_BRIGHTNESS_VAL)

#define UUID_LEVEL_COLOR_VAL            BT_UUID_128_ENCODE(0x00001528, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_COLOR                BT_UUID_DECLARE_128(UUID_LEVEL_COLOR_VAL)

#define UUID_LEVEL_BRIGHTNESS_VAL       BT_UUID_128_ENCODE(0x00001529, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_BRIGHTNESS           BT_UUID_DECLARE_128(UUID_LEVEL_BRIGHTNESS_VAL)

#define UUID_LEVEL_SENSITIVITY_VAL      BT_UUID_128_ENCODE(0x0000152E, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_SENSITIVITY          BT_UUID_DECLARE_128(UUID_LEVEL_SENSITIVITY_VAL)

#define UUID_LEVEL_VISCOSITY_VAL        BT_UUID_128_ENCODE(0x00001532, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_VISCOSITY            BT_UUID_DECLARE_128(UUID_LEVEL_VISCOSITY_VAL)

#define UUID_LEVEL_OPTION_VAL           BT_UUID_128_ENCODE(0x00001533, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_OPTION               BT_UUID_DECLARE_128(UUID_LEVEL_OPTION_VAL)

/* BUBBLE */
#define UUID_BUBBLE_BRIGHTNESS_VAL      BT_UUID_128_ENCODE(0x0000152A, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BUBBLE_BRIGHTNESS          BT_UUID_DECLARE_128(UUID_BUBBLE_BRIGHTNESS_VAL)

/* FIBER */
#define UUID_FIBER_BRIGHTNESS_VAL       BT_UUID_128_ENCODE(0x0000152B, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_FIBER_BRIGHTNESS           BT_UUID_DECLARE_128(UUID_FIBER_BRIGHTNESS_VAL)

/* PIN */
#define UUID_PIN_BRIGHTNESS_VAL         BT_UUID_128_ENCODE(0x0000152C, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_PIN_BRIGHTNESS             BT_UUID_DECLARE_128(UUID_PIN_BRIGHTNESS_VAL)

/* MOTION */
#define UUID_LEVEL_CALIBRATE_VAL        BT_UUID_128_ENCODE(0x0000152D, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_CALIBRATE            BT_UUID_DECLARE_128(UUID_LEVEL_CALIBRATE_VAL)

#define UUID_LEVEL_ANGLE_VAL            BT_UUID_128_ENCODE(0x0000152F, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_LEVEL_ANGLE                BT_UUID_DECLARE_128(UUID_LEVEL_ANGLE_VAL)

/* ALS */
#define UUID_AMBIENT_LIGHT_VAL          BT_UUID_128_ENCODE(0x00001530, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_AMBIENT_LIGHT              BT_UUID_DECLARE_128(UUID_AMBIENT_LIGHT_VAL)

/* FSM */
#define UUID_FSM_TIMEOUT_VAL            BT_UUID_128_ENCODE(0x00001531, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_FSM_TIMEOUT                BT_UUID_DECLARE_128(UUID_FSM_TIMEOUT_VAL)

#define UUID_FSM_AUTO_BRIGHTNESS_VAL    BT_UUID_128_ENCODE(0x00001534, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_FSM_AUTO_BRIGHTNESS        BT_UUID_DECLARE_128(UUID_FSM_AUTO_BRIGHTNESS_VAL)

#define UUID_FSM_MODE_VAL               BT_UUID_128_ENCODE(0x00001541, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_FSM_MODE                   BT_UUID_DECLARE_128(UUID_FSM_MODE_VAL)

#define UUID_FSM_APP_CONFIG_VAL         BT_UUID_128_ENCODE(0x00001535, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_FSM_APP_CONFIG             BT_UUID_DECLARE_128(UUID_FSM_APP_CONFIG_VAL)

/* BATTERY */
#define UUID_BATTERY_STATUS_VAL         BT_UUID_128_ENCODE(0x00001540, 0x1212, 0xEFDE, 0x1523, 0x785FEABCD123)
#define UUID_BATTERY_STATUS             BT_UUID_DECLARE_128(UUID_BATTERY_STATUS_VAL)

/* SHOT_CAPTURE */
#define UUID_SHOT_CAPTURE_SERVICE_VAL       \
    BT_UUID_128_ENCODE(0xdc1753a0, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_TAP_THS_VAL       \
    BT_UUID_128_ENCODE(0xdc1753a1, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_QUIET_TIME_VAL    \
    BT_UUID_128_ENCODE(0xdc1753a2, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_SHOCK_TIME_VAL    \
    BT_UUID_128_ENCODE(0xdc1753a3, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_USER_SHOT_CNT_VAL      \
    BT_UUID_128_ENCODE(0xdc1753a4, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_SHOT_CNT_VAL      \
    BT_UUID_128_ENCODE(0xdc1753a5, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_CAPTURE_EN_VAL      \
    BT_UUID_128_ENCODE(0xdc1753a6, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_DUR_LOC_VAL      \
    BT_UUID_128_ENCODE(0xdc1753a7, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_SHOT_DATA_REQUEST_VAL      \
    BT_UUID_128_ENCODE(0xdc1753a8, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)
#define UUID_SHOT_CAPTURE_SHOT_DATA_VAL      \
    BT_UUID_128_ENCODE(0xdc1753a9, 0x3838, 0x4d8f, 0xb74a, 0x340723444895)

#define UUID_SHOT_CAPTURE_SERVICE           BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_SERVICE_VAL)
#define UUID_SHOT_CAPTURE_TAP_THS           BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_TAP_THS_VAL)
#define UUID_SHOT_CAPTURE_QUIET_TIME        BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_QUIET_TIME_VAL)
#define UUID_SHOT_CAPTURE_SHOCK_TIME        BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_SHOCK_TIME_VAL)
#define UUID_SHOT_CAPTURE_USER_SHOT_CNT     BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_USER_SHOT_CNT_VAL)
#define UUID_SHOT_CAPTURE_SHOT_CNT          BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_SHOT_CNT_VAL)
#define UUID_SHOT_CAPTURE_CAPTURE_EN        BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_CAPTURE_EN_VAL) 
#define UUID_SHOT_CAPTURE_DUR_LOC           BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_DUR_LOC_VAL)
#define UUID_SHOT_CAPTURE_SHOT_DATA_REQUEST BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_SHOT_DATA_REQUEST_VAL)
#define UUID_SHOT_CAPTURE_SHOT_DATA         BT_UUID_DECLARE_128(UUID_SHOT_CAPTURE_SHOT_DATA_VAL)


#endif /* UUID_H_ */
