// js/dashboard.js - ПОЛНОЦЕННЫЙ РАБОЧИЙ ВАРИАНТ
document.addEventListener('DOMContentLoaded', function() {
    async function loadData() {
        try {
            const response = await fetch('api/latest.php');
            if (!response.ok) throw new Error('API error');
            return await response.json();
        } catch (error) {
            console.error('Load error:', error);
            return null;
        }
    }

    async function updateDashboard() {
        const data = await loadData();
        if (!data) return;

        // Обновляем все метрики по ID
        document.getElementById('security-index-value').innerHTML = 
            `${data.security_index.toFixed(1)} <span class="metric-max">/ 10</span>`;
        document.getElementById('aal-status').textContent = 
            data.aal_level === 5 ? 'АБ-1 (Норма)' : 
            data.aal_level === 4 ? 'АБ-2 (Повышение нужды)' : 
            data.aal_level === 3 ? 'АБ-3 (Усиление наблюдения)' : 
            data.aal_level === 2 ? 'АБ-4 (Критическая готовность)' : 'АБ-5 (Чрезвычайная угроза)';
        
        document.getElementById('time-to-aa3-value').innerHTML = 
            `${data.time_to_aa3.toFixed(1)} <span class="metric-unit">дня</span>`;
        document.getElementById('signal-detection-value').innerHTML = 
            `${data.signal_detection_time} <span class="metric-unit">часов</span>`;
        document.getElementById('detection-to-action-value').innerHTML = 
            `${data.detection_to_action_time} <span class="metric-unit">часов</span>`;

        // Детальный индекс
        document.getElementById('detailed-index-value').textContent = 
            `${data.security_index.toFixed(1)} / 10`;
        document.getElementById('detailed-index-status').textContent = 
            data.aal_level === 5 ? 'Нормальная ситуация' : 
            data.aal_level === 4 ? 'А. ПОВЫШЕННАЯ УГРОЗА (ААL-4)' : 
            data.aal_level === 3 ? 'КРИТИЧЕСКАЯ УГРОЗА (ААL-3)' : 
            data.aal_level === 2 ? 'ВЫСОКАЯ УГРОЗА (ААL-2)' : 'ЧРЕЗВЫЧАЙНАЯ УГРОЗА (ААL-1)';
        
        const timeStr = new Date(data.timestamp).toLocaleString('ru-RU', {
            year: 'numeric', month: 'long', day: 'numeric',
            hour: '2-digit', minute: '2-digit', second: '2-digit'
        }) + ' (Израиль)';
        document.getElementById('header-time').textContent = timeStr;
        document.getElementById('detailed-index-time').textContent = timeStr;

        // Таблица компонентов
        const tbody = document.getElementById('components-table-body');
        if (tbody) {
            tbody.innerHTML = '';
            const components = data.components || {};
            const rows = [
                ['Индекс пиццы', components.pizza?.raw || 0, components.pizza?.score || 0],
                ['Нефть Brent', components.oil?.raw || 0, components.oil?.score || 0],
                ['Медиа-упоминания', components.media?.raw || 0, components.media?.score || 0],
                ['Группы ВМС США', components.navy?.raw || 0, components.navy?.score || 0],
                ['Дипломатические рейсы', components.vip?.raw || 0, components.vip?.score || 0],
                ['Правительственные события', components.gov?.raw || 0, components.gov?.score || 0],
                ['Золото', components.gold?.raw || 0, components.gold?.score || 0],
                ['Киберугрозы', components.cyber?.raw || 0, components.cyber?.score || 0],
                ['Энергетика', components.energy?.raw || 0, components.energy?.score || 0],
                ['Соцсети', components.social?.raw || 0, components.social?.score || 0]
            ];

            rows.forEach(([name, raw, score]) => {
                const row = document.createElement('tr');
                row.innerHTML = `
                    <td>${name}</td>
                    <td>${parseFloat(raw).toFixed(1)}</td>
                    <td>${parseFloat(score).toFixed(1)}</td>
                `;
                tbody.appendChild(row);
            });
        }
    }

    // Первое обновление
    updateDashboard();
    // Автообновление каждые 30 секунд
    setInterval(updateDashboard, 30000);
});