2026-03-28 16:02:59 -05:00
|
|
|
const BASE = '/api'
|
|
|
|
|
|
|
|
|
|
async function request(path, options = {}) {
|
|
|
|
|
const res = await fetch(`${BASE}${path}`, {
|
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
|
...options,
|
|
|
|
|
})
|
|
|
|
|
const data = await res.json()
|
|
|
|
|
if (!res.ok) throw new Error(data.error || `Error ${res.status}`)
|
|
|
|
|
return data
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const api = {
|
feat: análisis extendido (10 campos nuevos) + generador de guiones con GPT-4o
Análisis extendido:
- Nuevos campos: apertura_exacta, cierre_exacto, tecnica_retencion, momento_pico_seg
- Copywriting: nivel_consciencia (Schwartz), objecion_principal, avatar_descripcion
- Replicabilidad: ingredientes_clave, replicabilidad, ratio_emocion_logica
- analizador.js: prompt extendido con metodología Schwartz + retención
- validador.js: schema Zod actualizado con 6 nuevos enums
- Migración SQL 05: ALTER TABLE + nuevos ENUMs + índices
Generador de guiones:
- generador.js: lib GPT-4o con temperatura 0.7 y contexto de patrones
- server.js: endpoints POST /api/generar, GET /api/generados, GET /api/generados/:id
- backend/api/generar.js + api/generar.js + api/generados.js: Vercel handlers
- Migración SQL 06: tabla guiones_generados con score_estimado, variantes, notas
- GenerateView.vue: formulario completo + preview del guion con copy al portapapeles
- SideNavBar: nueva entrada "Generar" con ícono auto_fix_high
- Router: ruta /generate → GenerateView
- api.js: api.generar() + api.generados.listar/obtener()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 20:52:25 -05:00
|
|
|
guiones: {
|
|
|
|
|
listar: (params = {}) => request('/guiones?' + new URLSearchParams(params)),
|
|
|
|
|
listarTodos: (params = {}) => request('/guiones?' + new URLSearchParams({ ...params, todos: '1' })),
|
|
|
|
|
obtener: (id) => request(`/guiones/${id}`),
|
2026-03-28 16:02:59 -05:00
|
|
|
},
|
feat: análisis extendido (10 campos nuevos) + generador de guiones con GPT-4o
Análisis extendido:
- Nuevos campos: apertura_exacta, cierre_exacto, tecnica_retencion, momento_pico_seg
- Copywriting: nivel_consciencia (Schwartz), objecion_principal, avatar_descripcion
- Replicabilidad: ingredientes_clave, replicabilidad, ratio_emocion_logica
- analizador.js: prompt extendido con metodología Schwartz + retención
- validador.js: schema Zod actualizado con 6 nuevos enums
- Migración SQL 05: ALTER TABLE + nuevos ENUMs + índices
Generador de guiones:
- generador.js: lib GPT-4o con temperatura 0.7 y contexto de patrones
- server.js: endpoints POST /api/generar, GET /api/generados, GET /api/generados/:id
- backend/api/generar.js + api/generar.js + api/generados.js: Vercel handlers
- Migración SQL 06: tabla guiones_generados con score_estimado, variantes, notas
- GenerateView.vue: formulario completo + preview del guion con copy al portapapeles
- SideNavBar: nueva entrada "Generar" con ícono auto_fix_high
- Router: ruta /generate → GenerateView
- api.js: api.generar() + api.generados.listar/obtener()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 20:52:25 -05:00
|
|
|
generados: {
|
|
|
|
|
listar: (params = {}) => request('/generados?' + new URLSearchParams(params)),
|
|
|
|
|
obtener: (id) => request(`/generados/${id}`),
|
|
|
|
|
},
|
|
|
|
|
analizar: (body) => request('/analizar', { method: 'POST', body: JSON.stringify(body) }),
|
|
|
|
|
generar: (body) => request('/generar', { method: 'POST', body: JSON.stringify(body) }),
|
|
|
|
|
nichos: () => request('/nichos'),
|
|
|
|
|
clientes: () => request('/clientes'),
|
|
|
|
|
stats: () => request('/stats'),
|
2026-03-28 16:02:59 -05:00
|
|
|
}
|