feat: contexto de video, análisis extendido y métricas sociales

- Campo "Contexto del Video" en formulario de análisis (Paso 03)
  → se pasa a GPT-4o para enriquecer el análisis
- 4 nuevos campos de diagnóstico: fortalezas, debilidades,
  sugerencias_mejora, hashtags_sugeridos (click para copiar)
- Vista de detalle: card de métricas sociales (vistas/likes/compartidos
  con engagement rate calculado)
- Muestra contexto original ingresado por el usuario
- Migración SQL 07: 5 nuevas columnas en tabla guiones
- validador.js: 4 nuevos campos en schema Zod
- server.js + api/analizar.js: acepta y guarda contexto_video

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-29 21:44:24 -05:00
parent 2fc4168301
commit be69c0aa48
7 changed files with 173 additions and 11 deletions

View File

@ -33,6 +33,7 @@ export default async function handler(req, res) {
likes = null,
compartidos = null,
fecha_publicacion = null,
contexto_video = '',
} = req.body
if (!url) return res.status(400).json({ error: 'El campo "url" es requerido' })
@ -56,7 +57,7 @@ export default async function handler(req, res) {
// ── PASO 3: Analizar con GPT-4o ───────────────────────
paso = 'analisis'
const analisisRaw = await analizarTranscript(transcript, niche, plataforma, duracion)
const analisisRaw = await analizarTranscript(transcript, niche, plataforma, duracion, contexto_video)
// ── PASO 4: Validar con Zod ───────────────────────────
paso = 'validacion'
@ -136,6 +137,13 @@ export default async function handler(req, res) {
persona_narradora: analisis.persona_narradora,
promesa_explicita: analisis.promesa_explicita,
nivel_especificidad: analisis.nivel_especificidad,
contexto_video: contexto_video || null,
// Diagnóstico
fortalezas: analisis.fortalezas,
debilidades: analisis.debilidades,
sugerencias_mejora: analisis.sugerencias_mejora,
hashtags_sugeridos: analisis.hashtags_sugeridos,
// Métricas (score_engagement lo calcula el trigger de Supabase)
score_virabilidad: analisis.score_virabilidad,