const sequelize = require('../config/database.js');
const EpidemicAgency = require('../models/EpidemicAgency');

async function initEpidemicAgencyTable() {
  try {
    console.log('开始初始化防疫机构表...');
    
    // 测试数据库连接
    await sequelize.authenticate();
    console.log('✅ 数据库连接成功');
    
    // 同步模型到数据库（创建表）
    await EpidemicAgency.sync({
      alter: true // 如有必要，修改表结构
    });
    console.log('✅ 防疫机构表创建/更新成功');
    
    // 清除现有数据
    await EpidemicAgency.destroy({
      where: {},
      truncate: true
    });
    console.log('✅ 现有数据已清空');
    
    // 插入测试数据
    const testData = [
      {
        name: '中心动物防疫站',
        director: '张三',
        phone: '13800138001',
        address: '市南区健康路100号',
        email: 'center@animalhealth.gov.cn',
        type: 'center',
        status: 'active',
        establishmentDate: '2010-01-15',
        epidemicScope: '负责全市所有区域的动物防疫工作统筹管理和技术指导',
        description: '负责全市动物防疫工作的统筹管理和技术指导'
      },
      {
        name: '东区动物防疫分站',
        director: '李四',
        phone: '13800138002',
        address: '市东区防疫路50号',
        email: 'east@animalhealth.gov.cn',
        type: 'branch',
        status: 'active',
        establishmentDate: '2012-05-20',
        epidemicScope: '负责东区所有街道、乡镇的动物防疫工作',
        description: '负责东区范围内的动物防疫工作'
      },
      {
        name: '西区动物防疫分站',
        director: '王五',
        phone: '13800138003',
        address: '市西区健康大道200号',
        email: 'west@animalhealth.gov.cn',
        type: 'branch',
        status: 'active',
        establishmentDate: '2013-03-10',
        epidemicScope: '负责西区所有街道、乡镇的动物防疫工作',
        description: '负责西区范围内的动物防疫工作'
      },
      {
        name: '北区动物防疫分站',
        director: '赵六',
        phone: '13800138004',
        address: '市北区安全路88号',
        email: 'north@animalhealth.gov.cn',
        type: 'branch',
        status: 'active',
        establishmentDate: '2014-07-05',
        epidemicScope: '负责北区所有街道、乡镇的动物防疫工作',
        description: '负责北区范围内的动物防疫工作'
      },
      {
        name: '南区动物防疫分站',
        director: '钱七',
        phone: '13800138005',
        address: '市南区健康路66号',
        email: 'south@animalhealth.gov.cn',
        type: 'branch',
        status: 'active',
        establishmentDate: '2015-02-28',
        epidemicScope: '负责南区所有街道、乡镇的动物防疫工作',
        description: '负责南区范围内的动物防疫工作'
      },
      {
        name: '流动防疫队',
        director: '孙八',
        phone: '13800138006',
        address: '市中区应急中心',
        email: 'mobile@animalhealth.gov.cn',
        type: 'mobile',
        status: 'active',
        establishmentDate: '2016-09-15',
        epidemicScope: '负责全市偏远地区、山区及突发事件的动物防疫工作',
        description: '负责偏远地区和突发事件的动物防疫工作'
      }
    ];
    
    await EpidemicAgency.bulkCreate(testData);
    console.log('✅ 测试数据插入成功');
    
    // 验证数据是否插入成功
    const agencies = await EpidemicAgency.findAll();
    console.log(`✅ 共插入 ${agencies.length} 条数据`);
    
    console.log('🎉 防疫机构表初始化完成');
    
  } catch (error) {
    console.error('❌ 初始化防疫机构表失败:', error);
  } finally {
    // 关闭数据库连接
    await sequelize.close();
    console.log('🔌 数据库连接已关闭');
  }
}

// 执行初始化函数
initEpidemicAgencyTable();