/**
 * ⚠️ ⚠️ ⚠️ ENDPOINT DE DEBUG - TEMPORAL ⚠️ ⚠️ ⚠️
 *
 * POST /api/debug/seed-database
 *
 * CARGA LOS DATOS DE EJEMPLO EN LA BASE DE DATOS
 *
 * ⚠️ NO ELIMINAR SIN CONSULTAR A DARIO/DRAGANEL/NUCLEO000 ⚠️
 *
 * Este endpoint fue creado para desarrollo y debugging.
 * Antes de eliminarlo, preguntar si todavía es necesario.
 */

import { getClient } from '../../utils/db'
import { readFile } from 'fs/promises'
import { join } from 'path'

export default defineEventHandler(async (event) => {
  try {
    console.log('🌱 SEED DATABASE - Cargando datos de ejemplo...')

    const client = await getClient()

    try {
      // Leer los archivos SQL
      const schemaPath = join(process.cwd(), 'server', 'database', '01_schema.sql')
      const seedPath = join(process.cwd(), 'server', 'database', '02_seed.sql')

      const schemaSQL = await readFile(schemaPath, 'utf-8')
      const seedSQL = await readFile(seedPath, 'utf-8')

      await client.query('BEGIN')

      // Primero ejecutar schema (crea tablas si no existen)
      console.log('📋 Ejecutando schema...')
      await client.query(schemaSQL)

      // Luego ejecutar seed (inserta datos de ejemplo)
      console.log('📋 Ejecutando seed...')
      await client.query(seedSQL)

      await client.query('COMMIT')

      console.log('✅ Datos de ejemplo cargados exitosamente')

      return {
        success: true,
        message: 'Schema recreado y datos de ejemplo cargados: 10 lotes, 7 operaciones, 16 relaciones',
      }
    } catch (error) {
      await client.query('ROLLBACK')
      throw error
    } finally {
      client.release()
    }
  } catch (error: any) {
    console.error('❌ Error cargando datos de ejemplo:', error)
    throw createError({
      statusCode: 500,
      statusMessage: 'Error cargando datos de ejemplo',
      data: { message: error.message },
    })
  }
})
