#ifndef CONFIG_H
#define CONFIG_H

// Hardware Pin Definitions for ESP32-S3
#define RESET_PIN 16
#define IO_RXD2 18
#define IO_TXD2 17
#define I2C_SDA 39
#define I2C_SCL 38
#define BAT_PIN 4

// UWB Configuration
#ifndef UWB_INDEX
#define UWB_INDEX 0
#endif

#ifndef NETWORK_ID
#define NETWORK_ID 1234
#endif

// System Configuration
#define MAX_DEVICES 10
#define MAX_ANCHORS 8
#define UWB_TAG_COUNT 64

// Timing Configuration
#define DISPLAY_UPDATE_INTERVAL 500
#define DEVICE_TIMEOUT 5000
#define SLEEP_DURATION 5000
#define BATTERY_UPDATE_INTERVAL 30000

// Display Configuration
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C

// Serial Configuration
#define SERIAL_BAUD 115200

// Debug Configuration
#ifdef DEBUG_ENABLED
#define DEBUG_PRINT(x) Serial.print(x)
#define DEBUG_PRINTLN(x) Serial.println(x)
#define DEBUG_PRINTF(x, ...) Serial.printf(x, __VA_ARGS__)
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#define DEBUG_PRINTF(x, ...)
#endif

// WiFi Configuration (optional)
#ifdef OTA_ENABLED
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
#endif

#endif // CONFIG_H