import mysql from 'mysql2/promise';
import dotenv from 'dotenv';

dotenv.config();

const { DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT } = process.env;

async function migrateData() {
  const connection = await mysql.createConnection({
    host: DB_HOST,
    user: DB_USER,
    password: DB_PASS,
    database: DB_NAME,
    port: parseInt(DB_PORT || '3306')
  });

  console.log('🔄 기존 데이터 보정 시작 (상세유형 = 유형)...');

  const tables = ['pc_assets', 'server_assets', 'storage_assets', 'equip_assets', 'mobile_assets'];
  
  for (const table of tables) {
    // 1. 유형(type)이 비어있는 경우 기본값 채우기 (보정 전 단계)
    let defaultType = '기타';
    if (table === 'server_assets') defaultType = '서버';
    else if (table === 'pc_assets') defaultType = '개인PC';
    else if (table === 'storage_assets') defaultType = '스토리지';
    else if (table === 'equip_assets') defaultType = '전산비품';
    else if (table === 'mobile_assets') defaultType = '모바일기기';

    await connection.query(`UPDATE ${table} SET type = ? WHERE type IS NULL OR type = ''`, [defaultType]);

    // 2. 개인PC가 아닌 데이터들에 대해 상세유형 = 유형 업데이트
    const [result] = await connection.query(`
      UPDATE ${table} 
      SET detail_purpose = type 
      WHERE type NOT IN ('개인PC', 'PC')
    `);
    
    console.log(`✅ ${table}: ${result.affectedRows}개 데이터 보정 완료`);
  }

  console.log('✨ 모든 기존 데이터 보정이 완료되었습니다.');
  await connection.end();
}

migrateData().catch(err => {
  console.error('❌ 데이터 보정 실패:', err);
  process.exit(1);
});
