/**
 * 数据更新工具 - 用于在浏览器中手动更新数据
 */
import { dataManager } from './dataManager.js'

class DataUpdater {
  constructor() {
    // 将工具挂载到全局对象，方便在控制台使用
    if (typeof window !== 'undefined') {
      window.dataUpdater = this
      window.dataManager = dataManager
    }
  }

  /**
   * 重新加载所有数据
   */
  async reloadAllData() {
    try {
      console.log('正在重新加载数据...')
      await dataManager.reloadData()
      console.log('数据重新加载完成')
      
      // 触发页面刷新事件
      window.dispatchEvent(new CustomEvent('dataReloaded'))
      
      return true
    } catch (error) {
      console.error('重新加载数据失败:', error)
      return false
    }
  }

  /**
   * 获取当前数据
   */
  getCurrentData() {
    return dataManager.getAllData()
  }

  /**
   * 获取指定模块数据
   */
  getModuleData(moduleName) {
    return dataManager.getData(moduleName)
  }

  /**
   * 显示所有可用的数据模块
   */
  showAvailableModules() {
    const data = this.getCurrentData()
    if (data) {
      console.log('可用的数据模块:')
      Object.keys(data).forEach(key => {
        console.log(`- ${key}:`, typeof data[key])
      })
    } else {
      console.log('暂无数据')
    }
  }

  /**
   * 显示使用帮助
   */
  help() {
    console.log(`
数据更新工具使用说明:

1. 重新加载数据:
   dataUpdater.reloadAllData()

2. 查看当前数据:
   dataUpdater.getCurrentData()

3. 查看指定模块数据:
   dataUpdater.getModuleData('realTimeStats')

4. 显示所有模块:
   dataUpdater.showAvailableModules()

5. 显示帮助:
   dataUpdater.help()

注意: 修改 data-config.json 文件后，使用 reloadAllData() 重新加载数据
    `)
  }
}

// 创建实例
export const dataUpdater = new DataUpdater()

export default DataUpdater 