--- id: "EPIC-003" title: "Proyectos y Campanas" type: "Epic" status: "Done" priority: "Alta" project: "platform_marketing_content" phase: 1 story_points: 50 user_stories_count: 10 created_date: "2025-12-08" updated_date: "2026-01-04" --- # EPIC-003: Proyectos y Campañas **Versión:** 1.0.0 **Fecha:** 2025-12-08 **Fase:** 1 - MVP Core --- ## Descripción Esta épica cubre la gestión de proyectos, campañas, briefs creativos y flujos de aprobación. --- ## User Stories ### US-003-001: Crear Proyecto **Como** creativo **Quiero** crear un nuevo proyecto para un cliente **Para** organizar las campañas y el trabajo **Criterios de Aceptación:** - [ ] Formulario con: nombre, cliente, descripción, fechas - [ ] Código de proyecto generado automáticamente (PRJ-YYYY-XXX) - [ ] Status inicial "draft" - [ ] Yo quedo como owner del proyecto - [ ] Redirección al dashboard del proyecto **Prioridad:** Must Have --- ### US-003-002: Ver Dashboard de Proyecto **Como** miembro del equipo del proyecto **Quiero** ver el estado general del proyecto **Para** saber en qué punto estamos **Criterios de Aceptación:** - [ ] Resumen: nombre, cliente, fechas, status - [ ] Lista de campañas con sus estados - [ ] Últimos assets generados - [ ] Actividad reciente del equipo - [ ] Acciones rápidas: nueva campaña, ir a assets **Prioridad:** Must Have --- ### US-003-003: Crear Campaña **Como** creativo **Quiero** crear una campaña dentro de un proyecto **Para** organizar el contenido por objetivo **Criterios de Aceptación:** - [ ] Formulario con: nombre, marca, tipo, canales - [ ] Tipos: social_media, performance_ads, catalog, landing, email, other - [ ] Canales seleccionables (checkboxes) - [ ] Status inicial "draft" - [ ] Brief vacío inicializado **Prioridad:** Must Have --- ### US-003-004: Completar Brief de Campaña **Como** creativo **Quiero** completar el brief de una campaña **Para** guiar la generación de contenido **Criterios de Aceptación:** - [ ] Formulario estructurado con secciones colapsables - [ ] Sección Objetivo: descripción, KPIs - [ ] Sección Audiencia: demographics, pain points - [ ] Sección Mensajes: mensaje principal, tono, CTA - [ ] Sección Visual: estilo, mood, referencias - [ ] Sección Restricciones: palabras prohibidas, disclaimers - [ ] Sección Entregables: formatos y cantidades - [ ] Guardado automático (draft) - [ ] Botón "Completar brief" que cambia estado a "briefing" **Prioridad:** Must Have --- ### US-003-005: Usar Plantilla de Brief **Como** creativo **Quiero** cargar un brief desde una plantilla **Para** ahorrar tiempo en briefs similares **Criterios de Aceptación:** - [ ] Botón "Usar plantilla" en editor de brief - [ ] Lista de plantillas disponibles con preview - [ ] Al seleccionar, campos se pre-llenan - [ ] Puedo editar después de cargar - [ ] No sobreescribe datos ya ingresados sin confirmar **Prioridad:** Could Have --- ### US-003-006: Lanzar Generación desde Campaña **Como** creativo **Quiero** iniciar la generación de contenido desde el brief **Para** crear los assets de la campaña **Criterios de Aceptación:** - [ ] Botón "Generar contenido" cuando brief está completo - [ ] Modal para seleccionar workflows según entregables - [ ] Configurar cantidad por workflow - [ ] Ver tiempo estimado - [ ] Al confirmar, jobs se crean y encolan - [ ] Status de campaña cambia a "in_production" - [ ] Ver progreso en tiempo real **Prioridad:** Must Have --- ### US-003-007: Ver Estado de Generación **Como** creativo **Quiero** monitorear el progreso de los jobs de generación **Para** saber cuándo estarán listos los assets **Criterios de Aceptación:** - [ ] Lista de jobs con: tipo, status, progreso % - [ ] Actualización en tiempo real (websocket) - [ ] Al completar un job, preview del resultado - [ ] Posibilidad de cancelar jobs pendientes - [ ] Mensaje claro si hay errores **Prioridad:** Must Have --- ### US-003-008: Revisar y Aprobar Assets **Como** creativo o admin **Quiero** revisar los assets generados y aprobarlos **Para** seleccionar qué se entrega al cliente **Criterios de Aceptación:** - [ ] Galería de assets de la campaña - [ ] Filtro por status: todos, pendientes, aprobados, rechazados - [ ] Lightbox para ver asset en grande - [ ] Botones: Aprobar, Rechazar, Solicitar revisión - [ ] Al rechazar, feedback obligatorio - [ ] Status de campaña cambia a "review" cuando hay assets **Prioridad:** Must Have --- ### US-003-009: Regenerar Asset Rechazado **Como** creativo **Quiero** regenerar un asset rechazado con ajustes **Para** obtener una mejor versión **Criterios de Aceptación:** - [ ] Botón "Regenerar" en assets rechazados - [ ] Modal con parámetros pre-cargados - [ ] Opción de modificar prompt/opciones - [ ] Nuevo asset creado como versión relacionada - [ ] Original se mantiene en historial **Prioridad:** Should Have --- ### US-003-010: Descargar Assets Aprobados **Como** creativo **Quiero** descargar todos los assets aprobados de la campaña **Para** entregar al cliente **Criterios de Aceptación:** - [ ] Botón "Descargar aprobados" en campaña - [ ] ZIP generado con estructura organizada - [ ] Incluir copys como archivos .txt - [ ] Progreso visible mientras se genera el ZIP - [ ] Descarga automática cuando está listo - [ ] Opción de selección manual de qué incluir **Prioridad:** Must Have --- ## Notas Técnicas - Brief almacenado como JSONB - Websocket para actualizaciones de progreso - ZIP generado async, no bloquear UI - Considerar pre-generar ZIP cuando todo está aprobado --- ## Dependencias - EPIC-001: Autenticación - EPIC-002: CRM (clientes, marcas) - EPIC-004: Motor de generación --- **Documento generado por:** Requirements-Analyst **Fecha:** 2025-12-08