/**
 * 마이그레이션 검증 스크립트
 */

const { Pool } = require('pg');

const databaseUrl = process.env.DATABASE_URL || 'postgresql://postgres:ph0909!!@39.117.244.52:11132/plm';

const pool = new Pool({
  connectionString: databaseUrl,
});

async function verifyMigration() {
  const client = await pool.connect();
  
  try {
    console.log('🔍 마이그레이션 결과 검증 중...\n');
    
    // 전체 요소 수
    const total = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements
    `);
    
    // 새로운 subtype별 개수
    const mapV2 = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements WHERE element_subtype = 'map-summary-v2'
    `);
    
    const chart = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements WHERE element_subtype = 'chart'
    `);
    
    const listV2 = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements WHERE element_subtype = 'list-v2'
    `);
    
    const metricV2 = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements WHERE element_subtype = 'custom-metric-v2'
    `);
    
    const alertV2 = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements WHERE element_subtype = 'risk-alert-v2'
    `);
    
    // 테스트 subtype 남아있는지 확인
    const remaining = await client.query(`
      SELECT COUNT(*) as count FROM dashboard_elements WHERE element_subtype LIKE '%-test%'
    `);
    
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    console.log('📊 마이그레이션 결과 요약');
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    console.log(`전체 요소 수: ${total.rows[0].count}`);
    console.log(`map-summary-v2: ${mapV2.rows[0].count}`);
    console.log(`chart: ${chart.rows[0].count}`);
    console.log(`list-v2: ${listV2.rows[0].count}`);
    console.log(`custom-metric-v2: ${metricV2.rows[0].count}`);
    console.log(`risk-alert-v2: ${alertV2.rows[0].count}`);
    console.log('');
    
    if (parseInt(remaining.rows[0].count) > 0) {
      console.log(`⚠️  테스트 subtype이 ${remaining.rows[0].count}개 남아있습니다!`);
    } else {
      console.log('✅ 모든 테스트 subtype이 정상적으로 변경되었습니다!');
    }
    
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    console.log('');
    console.log('🎉 마이그레이션이 성공적으로 완료되었습니다!');
    console.log('');
    console.log('다음 단계:');
    console.log('1. 프론트엔드 애플리케이션을 새로고침하세요');
    console.log('2. 대시보드를 열어 위젯이 정상적으로 작동하는지 확인하세요');
    console.log('3. 문제가 발생하면 백업에서 복원하세요');
    console.log('');
    
  } catch (error) {
    console.error('❌ 오류 발생:', error.message);
  } finally {
    client.release();
    await pool.end();
  }
}

verifyMigration();

