import { protectRoute } from '~~/server/utils/auth'; import { createPendingGeneration } from '~~/server/utils/generation'; import type { GenerateRequestBody } from '~~/server/types/chat'; export default defineEventHandler(async (event) => { await protectRoute(event); const body = await readBody(event) as GenerateRequestBody; const { topicId, messages, regeneratesFrom } = body; if (!topicId || !messages) { throw createError({ statusCode: 400, statusMessage: 'Missing required fields: topicId and messages' }); } if (messages.length === 0) { throw createError({ statusCode: 400, statusMessage: 'Messages array cannot be empty' }); } try { const generationId = await createPendingGeneration(event.context.user.id, topicId, messages, regeneratesFrom); return { generationId, status: 'pending', regeneratesFrom }; } catch (error) { console.error('Failed to create generation:', error); throw createError({ statusCode: 500, statusMessage: 'Failed to create generation' }); } });