#!/usr/bin/env node

/**
 * Минимальный скрипт для создания таблицы city_objects
 * Запуск: node run-minimal-migration.js
 */

const fs = require('fs');
const path = require('path');
const db = require('./db');

async function runMigration() {
  try {
    console.log('🚀 Запуск минимальной миграции для создания таблицы city_objects...');
    
    // Читаем минимальный SQL файл миграции
    const migrationPath = path.join(__dirname, 'migrations', 'create_city_objects_table_minimal.sql');
    const migrationSQL = fs.readFileSync(migrationPath, 'utf8');
    
    console.log('📄 Загружен файл миграции:', migrationPath);
    
    // Выполняем миграцию
    await db.query(migrationSQL);
    
    console.log('✅ Минимальная миграция успешно выполнена!');
    console.log('📊 Таблица city_objects создана со всеми необходимыми индексами');
    
    // Проверяем, что таблица создалась
    const { rows } = await db.query(`
      SELECT table_name, column_name, data_type, is_nullable, column_default
      FROM information_schema.columns 
      WHERE table_name = 'city_objects' 
      ORDER BY ordinal_position
    `);
    
    console.log('\n📋 Структура созданной таблицы:');
    console.table(rows);
    
    // Проверяем количество записей
    const { rows: countRows } = await db.query('SELECT COUNT(*) as count FROM city_objects');
    console.log(`\n📈 Количество записей в таблице: ${countRows[0].count}`);
    
    console.log('\n✅ Миграция завершена успешно!');
    console.log('🎯 Теперь можно использовать редактор карт');
    
  } catch (error) {
    console.error('❌ Ошибка при выполнении миграции:', error);
    console.error('💡 Попробуйте выполнить SQL вручную в pgAdmin или psql');
    process.exit(1);
  } finally {
    // Закрываем соединение с БД
    await db.end();
    console.log('🔌 Соединение с базой данных закрыто');
  }
}

// Запускаем миграцию
runMigration();
