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

/**
 * POST /api/lotes
 * Crea un nuevo lote
 *
 * Body:
 * {
 *   codigo?: string,
 *   tipo: string,
 *   cantidad_kg?: number,
 *   lugar_id?: number,
 *   meta?: object
 * }
 */
export default defineEventHandler(async (event) => {
  try {
    const body = await readBody(event)

    // Validaciones básicas
    if (!body.tipo) {
      throw createError({
        statusCode: 400,
        statusMessage: 'El campo "tipo" es requerido',
      })
    }

    const lote = await createLote({
      codigo: body.codigo,
      tipo: body.tipo,
      cantidad_kg: body.cantidad_kg,
      lugar_id: body.lugar_id,
      meta: body.meta,
    })

    return {
      success: true,
      data: lote,
    }
  } catch (error: any) {
    console.error('Error creando lote:', error)

    if (error.statusCode) {
      throw error
    }

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