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

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

export async function convertLocation(ctx: MessageConvertContext): Promise<ConvertedPayload | null> {
  const parsed = safeParse(ctx.rawContent) as { name?: string; longitude?: string; latitude?: string } | undefined

  const parts: string[] = ['[Location]']
  if (parsed?.name) parts.push(`Name: ${parsed.name}`)
  if (parsed?.latitude && parsed?.longitude) {
    parts.push(`Coords: ${parsed.latitude}, ${parsed.longitude}`)
    parts.push(`Map: https://maps.google.com/?q=${parsed.latitude},${parsed.longitude}`)
  }

  return { text: parts.join('\n') }
}
