/**
 * POST /api/offers/questionnaire/pdf — render the initial-call questionnaire
 * as PDF for the modal preview / the "print blank" action (nothing is stored).
 * Body: { language: 'de'|'en', mode: 'blank'|'filled', meta: {...}, answers: {...} }
 * Returns { status, filename, pdfBase64 }.
 */
import { buildQuestionnairePdf } from '../../../utils/offers/questionnairePdf'
import { questionnaireFilename, mergeQuestionnaireAnswers } from '../../../../app/utils/leadQuestionnaire'

export default defineEventHandler(async (event) => {
  const token = await getTokenHelper(event)
  if (!token) return { status: 401, message: 'Not authenticated' }
  const body: any = await readBody(event).catch(() => ({}))
  const language = body?.language === 'en' ? 'en' : 'de'
  const mode = body?.mode === 'filled' ? 'filled' : 'blank'
  try {
    const buffer = await buildQuestionnairePdf({
      language,
      mode,
      meta: body?.meta || {},
      answers: mergeQuestionnaireAnswers(body?.answers)
    })
    return { status: 200, filename: questionnaireFilename(language, body?.meta?.company || '', mode), pdfBase64: buffer.toString('base64') }
  } catch (err: any) {
    console.error('[Questionnaire] pdf render failed:', err)
    return { status: 500, message: err?.message || 'Render failed' }
  }
})
