const {
  sequelize
} = require('../models');
// Método para actualizar el índice de la base de datos
// las tablas que se actualizarán son las siguientes:
const tables = [
  //// tablas indenependientes
  'Diagnostico', 'Empresa', 'Especialidad',
  'Antecedenteheredofamiliar', 'Antecedentenopatologico', 'Antecedentepatologico',
  'Admin', 'Doctor', 'Cliente', 'Especialista',
  'Tipo', 'Tipodos', 'Duracion',
  //// tablas masivas
  'Cita', 'Detallecita', 'Dermatomafrontal', 'Dermatomaposterior',
  //// tablas secundarias
  'Laboratorio', 'Laboratoriodos', 'ItemLaboratorio', 
  'Laboratoriodoscita', 'Analisis', 'Resultado', 
  'Examepaciente', 'Duracioncita',
  'Antecedenteheredofamiliarhistoria', 'Antecedentenopatologicohistoria', 
  'Antecedentepatologicohistoria'
];

exports.updateIndex = async (req, res) => {
  try {
    for (const tableName of tables) {
      // Obtener el máximo ID de la tabla
      const [results] = await sequelize.query(
        `SELECT MAX(id) as max_id FROM "${tableName}"`
      );
      const maxId = results[0]?.max_id || 0;
      // Ajustar la secuencia al valor máximo + 1
      await sequelize.query(
        `SELECT setval(pg_get_serial_sequence('"${tableName}"', 'id'), ${maxId + 1}, false)`
      );
      console.log(`✅ Secuencia de la tabla ${tableName} ajustada a ${maxId + 1}`);
    }
    res.json({
      message: 'Indices Actualizados correctamente',
    });
  } catch (error) {
    console.error('❌ Error actualizando indices:', error);
  }
};