/**
 * Converter for "image" message type.
 */

import type { ConvertedPayload, MessageConvertContext } from './types'
import { safeParse } from './utils'

export async function convertImage(ctx: MessageConvertContext): Promise<ConvertedPayload | null> {
  const parsed = safeParse(ctx.rawContent) as { image_key?: string } | undefined
  const imageKey = parsed?.image_key
  if (!imageKey) return null

  const imageData = await ctx.downloadResource(imageKey, 'image')
  return {
    text: '',
    images: [{ data: imageData.toString('base64'), mimeType: 'image/png', name: 'image.png' }],
  }
}
