Adiciona configurações de tamanho e layout em formato de cards para cartazes

This commit is contained in:
2026-06-07 15:26:11 +00:00
parent 00bd9ecace
commit 9bc47ed258
3 changed files with 76 additions and 21 deletions
+12 -10
View File
@@ -1377,7 +1377,7 @@ app.delete('/api/poesias/:id', requireAuth, async (req, res) => {
// ROTAS DO CRIAR CARTAZES
// ============================================================
app.post('/api/cartazes/generate', requireAuth, async (req, res) => {
const { titulo, tema, corFundo, corTexto, layout, promptImagem } = req.body;
const { titulo, tema, corFundo, corTexto, layout, promptImagem, tamanho, orientacao } = req.body;
const usuarioId = req.user?.id || '00000000-0000-0000-0000-000000000000';
if (!titulo || !tema || !layout) {
@@ -1396,17 +1396,19 @@ Detalhes do Cartaz:
- Título: "${titulo}"
- Tema / Foco Pedagógico: "${tema}"
- Layout Selecionado: "${layout}" (Opções: regras, mural, calendario, livre)
- Tamanho: "${tamanho || 'A4'}"
- Orientação: "${orientacao === 'paisagem' ? 'Paisagem/Horizontal' : 'Retrato/Vertical'}"
Por favor, gere o CONTEÚDO textual estruturado do cartaz.
REGRAS:
- Deve ser acolhedor, lúdico e muito bem estruturado.
Por favor, gere o CONTEÚDO textual e estrutural do cartaz em HTML.
REGRAS FUNDAMENTAIS E ESTÉTICAS:
- Distribua a informação em CARDS (pequenos cartões ou blocos curtos) bem espaçados, parecidos com pôsteres infantis modernos, onde o texto NÃO ocupa uma folha corrida.
- Os textos devem ser extremamente curtos, visuais e fáceis de ler.
- Use emojis apropriados para crianças.
- Se for layout "regras", crie uma lista de combinados da sala (max 5) de forma positiva (ex: "Cuidar dos nossos brinquedos" ao invés de "Não quebrar os brinquedos").
- Se for "calendario", estruture áreas para o dia da semana, ajudante do dia e tempo (ensolarado, chuvoso).
- Se for "mural", crie seções de recados e novidades da semana.
- Se for "livre", crie um texto poético ou explicativo baseado no tema.
- Mantenha os textos curtos, visuais e fáceis de ler para crianças ou pais.
- Retorne apenas o conteúdo em formato HTML simples (use tags como <h1>, <p>, <ul>, <li>, <strong>, <span> e estilos inline simples se necessário) para renderizarmos no preview do cartaz. Não adicione tags <html> ou <body>, apenas o bloco de conteúdo interno.`;
- Se for layout "regras", crie os combinados (max 5) de forma positiva, colocando cada regra em um card <div> separado.
- Se for "calendario", estruture áreas para o dia da semana, ajudante e clima.
- Considere a orientação ${orientacao === 'paisagem' ? 'Paisagem (horizontal)' : 'Retrato (vertical)'} ao organizar o fluxo: para paisagem, use \`display: flex; flex-wrap: wrap; gap: 20px;\` para os cards ficarem lado a lado; para retrato, de cima para baixo.
- Não use textos que extrapolem o tamanho de 1 página de ${tamanho || 'A4'}.
- Retorne apenas o formato HTML (use <div>, <p>, <ul>, <li>, <strong>, <span>). Não adicione <html> ou <body>, retorne apenas o conteúdo interno. Não inclua o título <h1> pois ele já é colocado no topo pela interface.`;
let conteudoHtml = '';