import { serve } from 'https://deno.land/std@0.168.0/http/server.ts' import { createClient } from 'https://esm.sh/@supabase/supabase-js@2' import { Configuration, OpenAIApi } from 'https://esm.sh/openai@3.1.0' const openaiConfig = new Configuration({ apiKey: Deno.env.get('OPENAI_API_KEY') }) const openai = new OpenAIApi(openaiConfig) serve(async (req) => { const { record } = await req.json() const prompt = record.content.prompt try { const completion = await openai.createChatCompletion({ model: "gpt-4", messages: [ { role: "system", content: `Você é um contador de histórias infantis especializado em criar histórias educativas e envolventes para crianças. Crie uma história com 3-5 páginas, cada uma com 2-3 parágrafos curtos. A história deve ser apropriada para a idade e incluir elementos dos interesses da criança. Use linguagem simples e clara, mas inclua algumas das palavras para prática quando apropriado.` }, { role: "user", content: `Crie uma história com os seguintes elementos: Interesses: ${prompt.studentInterests.join(', ')} Personagem Principal: ${prompt.characters.main} Cenário: ${prompt.setting.place} Palavras para prática: ${prompt.practiceWords?.join(', ') || 'N/A'} Características da criança: ${JSON.stringify(prompt.studentCharacteristics)} Nível de dificuldade: ${prompt.difficulty}` } ] }) const story = completion.data.choices[0].message?.content if (!story) throw new Error('Falha ao gerar história') // Processar a história em páginas const pages = story.split('\n\n').map(text => ({ text })) // Atualizar o registro no banco const supabase = createClient( Deno.env.get('SUPABASE_URL') ?? '', Deno.env.get('SUPABASE_SERVICE_ROLE_KEY') ?? '' ) await supabase .from('stories') .update({ content: { pages }, status: 'published' }) .eq('id', record.id) return new Response(JSON.stringify({ success: true }), { headers: { 'Content-Type': 'application/json' } }) } catch (error) { return new Response(JSON.stringify({ error: error.message }), { headers: { 'Content-Type': 'application/json' }, status: 500 }) } })