<?php
/**
 * IoT Settings API
 */

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');

require_once '../../config/database.php';

try {
    $database = new Database();
    $db = $database->getConnection();
    
    $method = $_SERVER['REQUEST_METHOD'];
    
    if ($method === 'GET') {
        // Get settings
        $query = "SELECT * FROM iot_settings LIMIT 1";
        $stmt = $db->query($query);
        $settings = $stmt->fetch(PDO::FETCH_ASSOC);
        
        echo json_encode(['success' => true, 'settings' => $settings]);
    }
    elseif ($method === 'POST') {
        // Update settings
        $data = json_decode(file_get_contents('php://input'), true);
        
        $api_key = $data['api_key'] ?? '';
        $auto_discovery = $data['auto_discovery'] ?? 1;
        $log_level = $data['log_level'] ?? 'info';
        $max_devices = $data['max_devices'] ?? 10;
        
        // Check if settings exist
        $check_query = "SELECT id FROM iot_settings LIMIT 1";
        $check_stmt = $db->query($check_query);
        $exists = $check_stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($exists) {
            // Update
            $query = "UPDATE iot_settings 
                     SET api_key = ?, auto_discovery = ?, log_level = ?, max_devices = ?, updated_at = NOW() 
                     WHERE id = ?";
            $stmt = $db->prepare($query);
            $stmt->execute([$api_key, $auto_discovery, $log_level, $max_devices, $exists['id']]);
        } else {
            // Insert
            $query = "INSERT INTO iot_settings (api_key, auto_discovery, log_level, max_devices) 
                     VALUES (?, ?, ?, ?)";
            $stmt = $db->prepare($query);
            $stmt->execute([$api_key, $auto_discovery, $log_level, $max_devices]);
        }
        
        echo json_encode(['success' => true, 'message' => 'Settings updated successfully']);
    }
    else {
        http_response_code(405);
        echo json_encode(['error' => 'Method not allowed']);
    }
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}
?>
