/** * 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' } } })