# Requerimientos Funcionales - PMC-003 Projects **Módulo:** Projects **Versión:** 1.0.0 **Fecha:** 2025-12-08 --- ## Gestión de Proyectos ### RF-PMC-003-001: Crear Proyecto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-001 | | **Nombre** | Crear Proyecto | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Datos de entrada:** - client_id: UUID (requerido) - name: string (requerido) - description: text (opcional) - start_date: date (opcional) - end_date: date (opcional) - budget: decimal (opcional) **Criterios de aceptación:** - [ ] Proyecto se crea con status "draft" - [ ] Código autogenerado (PRJ-YYYY-XXX) - [ ] Owner asignado al creador --- ### RF-PMC-003-002: Editar Proyecto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-002 | | **Nombre** | Editar Proyecto | | **Prioridad** | P1 | | **Actor** | Project Owner, Tenant Admin | **Criterios de aceptación:** - [ ] Campos básicos editables - [ ] Cambio de cliente requiere confirmación - [ ] Historial de cambios registrado --- ### RF-PMC-003-003: Cambiar Estado de Proyecto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-003 | | **Nombre** | Cambiar Estado de Proyecto | | **Prioridad** | P1 | | **Actor** | Project Owner, Tenant Admin | **Estados válidos:** - draft → active - active → on_hold, completed - on_hold → active - cualquiera → cancelled **Criterios de aceptación:** - [ ] Transiciones válidas se permiten - [ ] Transiciones inválidas se bloquean - [ ] Notificación al equipo en cambio de estado --- ### RF-PMC-003-004: Asignar Equipo a Proyecto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-004 | | **Nombre** | Asignar Equipo a Proyecto | | **Prioridad** | P2 | | **Actor** | Project Owner, Tenant Admin | **Descripción:** Agregar o quitar miembros del equipo de un proyecto. **Criterios de aceptación:** - [ ] Usuarios del tenant pueden asignarse - [ ] Owner siempre está en el equipo - [ ] Notificación al agregar miembro --- ### RF-PMC-003-005: Listar Proyectos | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-005 | | **Nombre** | Listar Proyectos | | **Prioridad** | P1 | | **Actor** | Todos los roles | **Filtros:** - client_id - status - owner_id - date_range **Criterios de aceptación:** - [ ] Paginación funciona - [ ] Filtros combinables - [ ] Vista lista y tarjetas --- ### RF-PMC-003-006: Ver Dashboard de Proyecto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-006 | | **Nombre** | Ver Dashboard de Proyecto | | **Prioridad** | P1 | | **Actor** | Miembros del proyecto | **Información mostrada:** - Resumen del proyecto - Campañas con estado - Assets recientes - Actividad del equipo - Métricas de progreso **Criterios de aceptación:** - [ ] Dashboard carga correctamente - [ ] Métricas calculadas en tiempo real - [ ] Acciones rápidas disponibles --- ## Gestión de Campañas ### RF-PMC-003-007: Crear Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-007 | | **Nombre** | Crear Campaña | | **Prioridad** | P1 | | **Actor** | Creative | **Datos de entrada:** - project_id: UUID (requerido) - brand_id: UUID (requerido) - name: string (requerido) - type: enum (requerido) - channels: array[string] - start_date: date (opcional) - end_date: date (opcional) **Criterios de aceptación:** - [ ] Campaña se crea con status "draft" - [ ] Brand se vincula correctamente - [ ] Brief vacío se inicializa --- ### RF-PMC-003-008: Editar Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-008 | | **Nombre** | Editar Campaña | | **Prioridad** | P1 | | **Actor** | Creative | **Criterios de aceptación:** - [ ] Campos básicos editables en cualquier estado - [ ] Brief editable hasta "in_production" --- ### RF-PMC-003-009: Completar Brief de Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-009 | | **Nombre** | Completar Brief de Campaña | | **Prioridad** | P1 | | **Actor** | Creative | **Secciones del Brief:** - Objetivo: descripción, KPIs - Audiencia: demographics, psychographics, pain_points - Mensajes: main_message, tone, CTA, hashtags - Visual: style, mood, color_palette, references - Restricciones: forbidden_words, disclaimers - Entregables: formatos, cantidades **Criterios de aceptación:** - [ ] Formulario con secciones colapsables - [ ] Validación de campos mínimos - [ ] Guardado automático (draft) - [ ] Al completar: estado → "briefing" --- ### RF-PMC-003-010: Usar Plantilla de Brief | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-010 | | **Nombre** | Usar Plantilla de Brief | | **Prioridad** | P2 | | **Actor** | Creative | **Descripción:** Cargar brief desde una plantilla predefinida. **Criterios de aceptación:** - [ ] Listado de plantillas disponibles - [ ] Preview de plantilla antes de aplicar - [ ] Campos se pre-llenan pero son editables --- ### RF-PMC-003-011: Cambiar Estado de Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-011 | | **Nombre** | Cambiar Estado de Campaña | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Estados y transiciones:** ``` draft → briefing → in_production → review → approved → published ↑_______________| (revision_requested) ``` **Validaciones:** - briefing → in_production: brief mínimo completado - review → approved: al menos 1 asset aprobado - approved → published: confirmación requerida **Criterios de aceptación:** - [ ] Transiciones válidas funcionan - [ ] Validaciones se aplican - [ ] Notificaciones en cada cambio --- ### RF-PMC-003-012: Listar Campañas | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-012 | | **Nombre** | Listar Campañas | | **Prioridad** | P1 | | **Actor** | Todos los roles | **Vistas:** - Lista con filtros - Kanban por estado - Calendario por fechas **Criterios de aceptación:** - [ ] Filtro por proyecto, brand, status, type - [ ] Vista Kanban con drag & drop - [ ] Búsqueda por nombre --- ### RF-PMC-003-013: Ver Detalle de Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-013 | | **Nombre** | Ver Detalle de Campaña | | **Prioridad** | P1 | | **Actor** | Miembros del proyecto | **Información mostrada:** - Datos de campaña - Brief completo - Assets generados con estados - Historial de actividad - Jobs de generación **Criterios de aceptación:** - [ ] Todas las secciones visibles - [ ] Assets organizados por estado - [ ] Acciones contextuales disponibles --- ## Generación de Contenido ### RF-PMC-003-014: Lanzar Generación desde Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-014 | | **Nombre** | Lanzar Generación desde Campaña | | **Prioridad** | P1 | | **Actor** | Creative | **Flujo:** 1. Usuario abre campaña en status "briefing" o superior 2. Selecciona "Generar contenido" 3. Elige workflows según deliverables del brief 4. Configura opciones adicionales 5. Sistema crea jobs de generación 6. Sistema cambia status a "in_production" si no lo está **Criterios de aceptación:** - [ ] Brief se usa para configurar generación - [ ] Múltiples workflows ejecutables - [ ] Progreso visible en tiempo real --- ### RF-PMC-003-015: Seleccionar Workflows de Generación | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-015 | | **Nombre** | Seleccionar Workflows de Generación | | **Prioridad** | P1 | | **Actor** | Creative | **Descripción:** Elegir qué workflows ejecutar basado en deliverables del brief. **Criterios de aceptación:** - [ ] Workflows sugeridos según tipo de campaña - [ ] Preview de cada workflow - [ ] Configuración de cantidad por workflow --- ### RF-PMC-003-016: Monitorear Progreso de Generación | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-016 | | **Nombre** | Monitorear Progreso de Generación | | **Prioridad** | P1 | | **Actor** | Creative | **Información mostrada:** - Jobs en cola - Jobs procesando (con %) - Jobs completados - Jobs fallidos **Criterios de aceptación:** - [ ] Actualización en tiempo real (websocket) - [ ] Posibilidad de cancelar jobs pendientes - [ ] Reintentar jobs fallidos --- ## Flujo de Aprobación ### RF-PMC-003-017: Aprobar Asset de Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-017 | | **Nombre** | Aprobar Asset de Campaña | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Flujo:** 1. Usuario revisa asset en vista de revisión 2. Selecciona "Aprobar" 3. Sistema marca asset como aprobado 4. Sistema registra aprobador y timestamp **Criterios de aceptación:** - [ ] Asset cambia a status "approved" - [ ] Metadata de aprobación registrada - [ ] No editable después de aprobar --- ### RF-PMC-003-018: Rechazar Asset de Campaña | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-018 | | **Nombre** | Rechazar Asset de Campaña | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Flujo:** 1. Usuario revisa asset 2. Selecciona "Rechazar" 3. Sistema solicita feedback obligatorio 4. Sistema marca asset como rechazado **Criterios de aceptación:** - [ ] Feedback es requerido - [ ] Asset puede regenerarse - [ ] Historial de rechazos visible --- ### RF-PMC-003-019: Solicitar Revisión de Asset | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-019 | | **Nombre** | Solicitar Revisión de Asset | | **Prioridad** | P2 | | **Actor** | Creative | **Descripción:** Pedir cambios específicos en un asset antes de decidir. **Criterios de aceptación:** - [ ] Comentario con posición en imagen - [ ] Asset queda en "revision_requested" - [ ] Notificación a equipo --- ### RF-PMC-003-020: Aprobar Todos los Assets | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-020 | | **Nombre** | Aprobar Todos los Assets | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Descripción:** Acción bulk para aprobar todos los assets pendientes. **Criterios de aceptación:** - [ ] Confirmación requerida - [ ] Solo assets en "pending_review" - [ ] Registro individual por asset --- ### RF-PMC-003-021: Regenerar Asset | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-021 | | **Nombre** | Regenerar Asset | | **Prioridad** | P2 | | **Actor** | Creative | **Descripción:** Crear nueva versión de un asset rechazado o en revisión. **Flujo:** 1. Usuario selecciona asset rechazado 2. Selecciona "Regenerar" 3. Opcionalmente ajusta parámetros 4. Sistema crea nuevo job 5. Nuevo asset se vincula como versión **Criterios de aceptación:** - [ ] Parámetros originales pre-cargados - [ ] Historial de versiones mantenido - [ ] Original no se elimina --- ### RF-PMC-003-022: Descargar Assets Aprobados | Campo | Valor | |-------|-------| | **ID** | RF-PMC-003-022 | | **Nombre** | Descargar Assets Aprobados | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Descripción:** Descargar pack de todos los assets aprobados de la campaña. **Criterios de aceptación:** - [ ] ZIP generado con estructura organizada - [ ] Solo assets aprobados incluidos - [ ] Copys incluidos como .txt - [ ] Opción de selección manual --- ## Resumen | Prioridad | Cantidad | |-----------|----------| | P1 | 15 | | P2 | 7 | | **Total** | **22** | --- **Documento generado por:** Requirements-Analyst **Fecha:** 2025-12-08