/** * GET /api/externos/rechazos * * Obtiene los rechazos del período de cosecha desde Metabase. * Incluye información de estado de vinculación. */ import { getRechazos } from '../../utils/metabase' import { getRegistrosVinculados } from '../../utils/queries' export default defineEventHandler(async (event) => { try { const query = getQuery(event) const periodo = (query.periodo as string) || '25-26' const soloSinVincular = query.sinVincular === 'true' // Obtener rechazos desde Metabase const rechazos = await getRechazos(periodo) // Obtener IDs ya vinculados desde nuestra BD local const vinculados = await getRegistrosVinculados('rechazo', periodo) const vinculadosSet = new Set(vinculados) // Marcar cada rechazo con su estado de vinculación const rechazosConEstado = rechazos.map((rechazo: any) => ({ ...rechazo, vinculado: vinculadosSet.has(rechazo.id), })) // Filtrar si solo se quieren los no vinculados const resultado = soloSinVincular ? rechazosConEstado.filter((r: any) => !r.vinculado) : rechazosConEstado return { success: true, data: resultado, meta: { total: resultado.length, vinculados: rechazosConEstado.filter((r: any) => r.vinculado).length, sinVincular: rechazosConEstado.filter((r: any) => !r.vinculado).length, periodo, }, } } catch (error: any) { console.error('[API] Error obteniendo rechazos:', error) throw createError({ statusCode: error.statusCode || 500, statusMessage: error.message || 'Error obteniendo rechazos', }) } })