// 添加四等奖等级
module.exports = {
  async up(manager) {
    console.log('  - 添加四等奖等级...');
    
    // SQLite不支持直接修改CHECK约束，需要重建表
    // 1. 创建新表结构（包含四等奖）
    await manager.executeSql(`
      CREATE TABLE Prizes_new (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        activityId INTEGER NOT NULL,
        name TEXT NOT NULL,
        level TEXT NOT NULL CHECK(level IN ('特等奖', '一等奖', '二等奖', '三等奖', '四等奖', '参与奖', '伴手礼')),
        description TEXT,
        image TEXT,
        quantity INTEGER DEFAULT 1,
        sortOrder INTEGER DEFAULT 0,
        source TEXT DEFAULT 'purchase',
        sponsor TEXT,
        createdAt DATETIME NOT NULL,
        updatedAt DATETIME NOT NULL
      );
    `);
    
    // 2. 复制数据
    await manager.executeSql(`
      INSERT INTO Prizes_new 
      SELECT * FROM Prizes;
    `);
    
    // 3. 删除旧表
    await manager.executeSql(`DROP TABLE Prizes;`);
    
    // 4. 重命名新表
    await manager.executeSql(`ALTER TABLE Prizes_new RENAME TO Prizes;`);
    
    console.log('  - 四等奖等级添加完成');
  },
  
  async down(manager) {
    console.log('  - 移除四等奖等级...');
    
    // 1. 创建旧表结构（不包含四等奖）
    await manager.executeSql(`
      CREATE TABLE Prizes_old (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        activityId INTEGER NOT NULL,
        name TEXT NOT NULL,
        level TEXT NOT NULL CHECK(level IN ('特等奖', '一等奖', '二等奖', '三等奖', '参与奖', '伴手礼')),
        description TEXT,
        image TEXT,
        quantity INTEGER DEFAULT 1,
        sortOrder INTEGER DEFAULT 0,
        source TEXT DEFAULT 'purchase',
        sponsor TEXT,
        createdAt DATETIME NOT NULL,
        updatedAt DATETIME NOT NULL
      );
    `);
    
    // 2. 复制数据（排除四等奖）
    await manager.executeSql(`
      INSERT INTO Prizes_old 
      SELECT * FROM Prizes WHERE level != '四等奖';
    `);
    
    // 3. 删除新表
    await manager.executeSql(`DROP TABLE Prizes;`);
    
    // 4. 重命名旧表
    await manager.executeSql(`ALTER TABLE Prizes_old RENAME TO Prizes;`);
    
    console.log('  - 四等奖等级移除完成');
  }
};
