# 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
