import laravelHelper from "../../../utils/laravelHelper";
import errorHandlingHelper from "../../../utils/errorHandlingHelper";

// POST /api/ffn/authorizations  body: { merchantId, warehouseId, shippingMethodIds: [...] }
// -> Laravel /api/fulfiller/authorizations -> JTL POST /authorizations/{merchantId}/warehouses
// merchantId is the merchant's `userId` from /api/ffn/merchants.
export default defineEventHandler(async (event) => {
  try {
    const body = await readBody(event)
    if (!body?.merchantId) return { status: 400, message: 'merchantId is required' }
    if (!body?.warehouseId) return { status: 400, message: 'warehouseId is required' }
    const res: any = await laravelHelper(event, 'fulfiller/authorizations', 'POST', {
      merchantId: body.merchantId,
      warehouseId: body.warehouseId,
      shippingMethodIds: body.shippingMethodIds ?? []
    })
    return { status: 200, ...(res || {}) }
  } catch (err: any) {
    const data = errorHandlingHelper(err?.data ?? err, err?.data ?? err)
    return { status: Number(data?.status || err?.status || 500), message: data?.message || err?.message || 'Failed to create FFN authorization', error: err?.data ?? null }
  }
})
