// 数据刷新间隔（毫秒）
const REFRESH_INTERVAL = 1000;

// 数据类型映射
const DATA_TYPES = {
    'AIRCRAFT': {
        elementId: 'aircraft-data',
        statusId: 'aircraft-status'
    },
    'AIRPORT_VEHICLE': {
        elementId: 'vehicle-data',
        statusId: 'vehicle-status'
    },
    'UNMANNED_VEHICLE': {
        elementId: 'unmanned-data',
        statusId: 'unmanned-status'
    }
};

// 更新状态指示器
function updateStatusIndicator(statusId, hasData) {
    const indicator = document.getElementById(statusId);
    if (hasData) {
        indicator.className = 'status-indicator status-ok';
    } else {
        indicator.className = 'status-indicator status-error';
    }
}

// 更新数据统计
function updateStats(data) {
    const stats = document.getElementById('stats');
    const statsHtml = Object.entries(data).map(([type, list]) => {
        return `<p><strong>${type}:</strong> ${list.length} 条数据</p>`;
    }).join('');
    stats.innerHTML = statsHtml;
}

// 格式化数据显示
function formatData(data) {
    return JSON.stringify(data, null, 2);
}

// 更新显示数据
function updateDisplay(data) {
    // 更新每种类型的数据
    Object.entries(DATA_TYPES).forEach(([type, config]) => {
        const element = document.getElementById(config.elementId);
        const dataList = data[type] || [];
        
        // 更新数据显示
        element.textContent = formatData(dataList);
        
        // 更新状态指示器
        updateStatusIndicator(config.statusId, dataList.length > 0);
    });

    // 更新统计信息
    updateStats(data);
}

// 获取数据
async function fetchData() {
    try {
        const response = await fetch('/api/monitor/data');
        if (!response.ok) {
            throw new Error('网络响应异常');
        }
        const data = await response.json();
        updateDisplay(data);
    } catch (error) {
        console.error('获取数据失败:', error);
        // 更新所有状态指示器为错误状态
        Object.values(DATA_TYPES).forEach(config => {
            updateStatusIndicator(config.statusId, false);
        });
    }
}

// 启动定时刷新
function startMonitoring() {
    // 立即执行一次
    fetchData();
    // 设置定时刷新
    setInterval(fetchData, REFRESH_INTERVAL);
}

// 页面加载完成后启动监控
document.addEventListener('DOMContentLoaded', startMonitoring); 