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

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

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

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