<?php
/**
 * Fix Missing IoT Tables
 * Creates the missing tables manually
 */

error_reporting(E_ALL);
ini_set('display_errors', 1);

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

try {
    $database = new Database();
    $db = $database->getConnection();
    
    if (!$db) {
        die('Database connection failed');
    }
    
    echo "<!DOCTYPE html>
    <html lang='ar' dir='rtl'>
    <head>
        <meta charset='UTF-8'>
        <title>Fix Missing Tables</title>
        <style>
            body { font-family: Arial; padding: 20px; background: #f3f4f6; }
            .box { background: white; padding: 20px; margin: 10px 0; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
            .success { background: #10b981; color: white; }
            .error { background: #ef4444; color: white; }
            h1 { color: #667eea; }
        </style>
    </head>
    <body>
    <h1>🔧 Fixing Missing IoT Tables</h1>";
    
    // Create iot_logs table
    echo "<div class='box'><h2>Creating iot_logs table...</h2>";
    try {
        $db->exec("
            CREATE TABLE IF NOT EXISTS `iot_logs` (
              `id` INT AUTO_INCREMENT PRIMARY KEY,
              `device_id` VARCHAR(50) NOT NULL,
              `log_type` ENUM('info', 'warning', 'error', 'command', 'status') DEFAULT 'info',
              `message` TEXT NOT NULL,
              `data` JSON,
              `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
              INDEX `idx_device_log` (`device_id`, `log_type`),
              INDEX `idx_created_at` (`created_at`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        ");
        echo "<div class='box success'>✅ iot_logs table created successfully!</div>";
    } catch (Exception $e) {
        echo "<div class='box error'>❌ Error: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
    echo "</div>";
    
    // Create iot_sensors_data table
    echo "<div class='box'><h2>Creating iot_sensors_data table...</h2>";
    try {
        $db->exec("
            CREATE TABLE IF NOT EXISTS `iot_sensors_data` (
              `id` INT AUTO_INCREMENT PRIMARY KEY,
              `device_id` VARCHAR(50) NOT NULL,
              `sensor_type` VARCHAR(50) NOT NULL,
              `value` DECIMAL(10, 2),
              `unit` VARCHAR(20),
              `raw_data` JSON,
              `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
              INDEX `idx_device_sensor` (`device_id`, `sensor_type`),
              INDEX `idx_created_at` (`created_at`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        ");
        echo "<div class='box success'>✅ iot_sensors_data table created successfully!</div>";
    } catch (Exception $e) {
        echo "<div class='box error'>❌ Error: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
    echo "</div>";
    
    // Create iot_schedules table
    echo "<div class='box'><h2>Creating iot_schedules table...</h2>";
    try {
        $db->exec("
            CREATE TABLE IF NOT EXISTS `iot_schedules` (
              `id` INT AUTO_INCREMENT PRIMARY KEY,
              `device_id` VARCHAR(50) NOT NULL,
              `schedule_name` VARCHAR(100) NOT NULL,
              `action` VARCHAR(50) NOT NULL,
              `payload` JSON,
              `cron_expression` VARCHAR(100),
              `is_active` BOOLEAN DEFAULT TRUE,
              `last_run` DATETIME,
              `next_run` DATETIME,
              `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
              `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
              INDEX `idx_device_schedule` (`device_id`, `is_active`),
              INDEX `idx_next_run` (`next_run`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        ");
        echo "<div class='box success'>✅ iot_schedules table created successfully!</div>";
    } catch (Exception $e) {
        echo "<div class='box error'>❌ Error: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
    echo "</div>";
    
    // Verify all tables
    echo "<div class='box'><h2>📋 Final Verification</h2>";
    $tables = ['iot_devices', 'iot_commands', 'iot_logs', 'iot_sensors_data', 'iot_schedules'];
    $all_good = true;
    
    foreach ($tables as $table) {
        $check = $db->query("SHOW TABLES LIKE '{$table}'");
        if ($check->rowCount() > 0) {
            $count = $db->query("SELECT COUNT(*) FROM {$table}")->fetchColumn();
            echo "<div class='box success'>✅ Table '{$table}' exists ({$count} rows)</div>";
        } else {
            echo "<div class='box error'>❌ Table '{$table}' still missing!</div>";
            $all_good = false;
        }
    }
    echo "</div>";
    
    if ($all_good) {
        echo "<div class='box success'>
            <h2>🎉 All Done!</h2>
            <p>All IoT tables are now created successfully.</p>
            <a href='../admin/iot_devices.php' style='display:inline-block;background:#667eea;color:white;padding:15px 30px;border-radius:10px;text-decoration:none;font-weight:bold;margin-top:10px;'>
            🚀 Go to IoT Dashboard
            </a>
        </div>";
    }
    
    echo "</body></html>";
    
} catch (Exception $e) {
    echo "<div class='box error'>❌ Fatal Error: " . htmlspecialchars($e->getMessage()) . "</div>";
}
?>
