feat: panel de creatividades (pipeline editorial) en /dashboard/panel-cliente

Nueva tabla creative_pipeline (separada de creatives, que es solo para
anuncios aprobados Meta/Google): Propuesta -> En diseño -> Revisión
interna -> Aprobado/Rechazado -> Publicado, con RLS por tenant.

- sql/creative_pipeline.sql: esquema + políticas RLS
- /api/creative-pipeline: CRUD con transiciones restringidas (el cliente
  solo puede aprobar/rechazar una pieza en revisión interna; el resto de
  movimientos y la creación son solo agencia)
- /api/creative-pipeline/upload + /media: portada y slides de carrusel
  sobre el bucket privado tenant-assets ya existente
- CreativePipelineBoard: tablero agrupado por mes, con subida de imagen
  inline y acciones según rol
- Alta del módulo "Panel de Creatividades" en tenant-modules y sidebar

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WqGTGPznxTp8mwMg6Yv4Ew
This commit is contained in:
Claude
2026-10-04 00:22:03 +02:00
parent e3180ceb51
commit ed18c9d318
8 changed files with 1060 additions and 0 deletions

View File

@@ -100,6 +100,13 @@ const NAV_ITEMS: NavItem[] = [
iconClass: 'text-orange-500',
moduleId: 'creatives',
},
{
href: '/dashboard/panel-cliente',
label: 'Panel de Creatividades',
icon: Megaphone,
iconClass: 'text-pink-500',
moduleId: 'panel_cliente',
},
{
href: '/dashboard/asistente',
label: 'Asistente IA Financiero',