import type { NextApiRequest, NextApiResponse } from 'next'
import axios from 'axios'

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  const { shortcode } = req.query

  if (!shortcode || Array.isArray(shortcode)) {
    return res.status(400).json({ error: 'Invalid shortcode' })
  }

  try {
    const response = await axios({
      method: 'GET',
      url: `${process.env.NEXT_PUBLIC_SIERO_API_URL}/parties/${shortcode}/preview`,
      responseType: 'arraybuffer',
      headers: {
        Accept: 'image/png',
      },
    })

    // Set correct content type and caching headers
    res.setHeader('Content-Type', 'image/png')
    res.setHeader('Cache-Control', 'public, max-age=31536000, immutable')

    return res.send(response.data)
  } catch (error) {
    console.error('Error fetching preview:', error)
    return res.status(500).json({ error: 'Failed to fetch preview' })
  }
}
