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

/**
 * 初始化智能项圈表并添加测试数据
 */
async function initSmartCollarTable() {
  try {
    console.log('开始初始化智能项圈表...');
    
    // 同步模型到数据库（创建表）
    await SmartCollar.sync({
      alter: true, // 这会修改已存在的表结构以匹配模型定义
      force: false // 设为 true 会删除现有表并重新创建，但会丢失现有数据
    });
    
    console.log('智能项圈表同步成功');
    
    // 检查是否已有测试数据
    const existingCount = await SmartCollar.count();
    if (existingCount === 0) {
      console.log('开始添加测试数据...');
      
      // 测试数据
      const testData = [
        {
          collar_id: 'CL001',
          name: '智能项圈001',
          status: 'active',
          battery: 85,
          remark: '用于示范的项圈',
          created_at: new Date('2023-09-15 10:00:00'),
          updated_at: new Date('2023-09-20 14:30:00')
        },
        {
          collar_id: 'CL002',
          name: '智能项圈002',
          status: 'inactive',
          battery: 100,
          remark: '',
          created_at: new Date('2023-09-16 11:20:00'),
          updated_at: new Date('2023-09-16 11:20:00')
        },
        {
          collar_id: 'CL003',
          name: '智能项圈003',
          status: 'maintenance',
          battery: 20,
          remark: '电池需要更换',
          created_at: new Date('2023-09-10 09:15:00'),
          updated_at: new Date('2023-09-21 16:45:00')
        },
        {
          collar_id: 'CL004',
          name: '智能项圈004',
          status: 'active',
          battery: 90,
          remark: '养殖场A区',
          created_at: new Date('2023-09-05 14:20:00'),
          updated_at: new Date('2023-09-18 09:30:00')
        },
        {
          collar_id: 'CL005',
          name: '智能项圈005',
          status: 'active',
          battery: 75,
          remark: '养殖场B区',
          created_at: new Date('2023-09-08 16:10:00'),
          updated_at: new Date('2023-09-19 11:45:00')
        }
      ];
      
      // 批量创建测试数据
      await SmartCollar.bulkCreate(testData);
      
      console.log('测试数据添加成功');
    } else {
      console.log(`智能项圈表已有 ${existingCount} 条数据，跳过添加测试数据`);
    }
    
    console.log('智能项圈表初始化完成');
  } catch (error) {
    console.error('智能项圈表初始化失败:', error);
    process.exit(1);
  } finally {
    // 关闭数据库连接
    await sequelize.close();
  }
}

// 执行初始化
initSmartCollarTable();