import { deleteLote } from '../../utils/queries'

/**
 * DELETE /api/lotes/:id
 * Elimina un lote
 *
 * CUIDADO: Esta operación es irreversible y eliminará también
 * todas las relaciones en operacion_lotes (CASCADE).
 * Usar solo en casos excepcionales.
 */
export default defineEventHandler(async (event) => {
  try {
    const id = getRouterParam(event, 'id')

    if (!id) {
      throw createError({
        statusCode: 400,
        statusMessage: 'ID de lote requerido',
      })
    }

    const deleted = await deleteLote(id)

    if (!deleted) {
      throw createError({
        statusCode: 404,
        statusMessage: 'Lote no encontrado',
      })
    }

    return {
      success: true,
      message: 'Lote eliminado correctamente',
    }
  } catch (error: any) {
    console.error('Error eliminando lote:', error)

    if (error.statusCode) {
      throw error
    }

    throw createError({
      statusCode: 500,
      statusMessage: 'Error eliminando lote',
      data: { message: error.message },
    })
  }
})
