# Requerimientos Funcionales - PMC-002 CRM **Módulo:** CRM **Versión:** 1.0.0 **Fecha:** 2025-12-08 --- ## Gestión de Clientes ### RF-PMC-002-001: Crear Cliente | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-001 | | **Nombre** | Crear Cliente | | **Prioridad** | P1 | | **Actor** | Creative, Analyst, Tenant Admin | **Descripción:** El sistema debe permitir registrar un nuevo cliente de la agencia. **Datos de entrada:** - name: string (requerido) - legal_name: string (opcional) - tax_id: string (opcional) - industry: string (opcional) - size: enum (opcional) - website: string (opcional) - notes: text (opcional) **Criterios de aceptación:** - [ ] Cliente se crea con status "prospect" - [ ] tenant_id se asigna automáticamente - [ ] Validación de datos funciona --- ### RF-PMC-002-002: Editar Cliente | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-002 | | **Nombre** | Editar Cliente | | **Prioridad** | P1 | | **Actor** | Creative, Analyst, Tenant Admin | **Descripción:** El sistema debe permitir modificar datos de un cliente existente. **Criterios de aceptación:** - [ ] Todos los campos editables se actualizan - [ ] Cambio de status registra historial - [ ] Audit log registra modificaciones --- ### RF-PMC-002-003: Listar Clientes | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-003 | | **Nombre** | Listar Clientes | | **Prioridad** | P1 | | **Actor** | Todos los roles | **Descripción:** El sistema debe mostrar lista de clientes con filtros y paginación. **Filtros disponibles:** - status: prospect, active, inactive, churned - industry: string - size: enum - search: nombre o legal_name **Criterios de aceptación:** - [ ] Paginación funciona correctamente - [ ] Filtros se combinan con AND - [ ] Ordenamiento por nombre/fecha --- ### RF-PMC-002-004: Ver Ficha de Cliente | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-004 | | **Nombre** | Ver Ficha de Cliente | | **Prioridad** | P1 | | **Actor** | Todos los roles | **Descripción:** El sistema debe mostrar vista detallada del cliente con información relacionada. **Datos mostrados:** - Información básica - Contactos asociados - Marcas del cliente - Proyectos activos - Oportunidades abiertas - Historial de actividad **Criterios de aceptación:** - [ ] Tabs organizan información - [ ] Datos relacionados cargan correctamente - [ ] Acciones rápidas disponibles --- ### RF-PMC-002-005: Eliminar Cliente | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-005 | | **Nombre** | Eliminar Cliente | | **Prioridad** | P3 | | **Actor** | Tenant Admin | **Descripción:** El sistema debe permitir eliminar un cliente (soft delete). **Validaciones:** - No tiene proyectos activos - Confirmación requerida **Criterios de aceptación:** - [ ] Soft delete funciona - [ ] Validaciones impiden eliminación si hay dependencias activas --- ## Gestión de Contactos ### RF-PMC-002-006: Crear Contacto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-006 | | **Nombre** | Crear Contacto | | **Prioridad** | P1 | | **Actor** | Creative, Analyst, Tenant Admin | **Datos de entrada:** - client_id: UUID (requerido) - first_name: string (requerido) - last_name: string (requerido) - email: string (requerido) - phone: string (opcional) - position: string (opcional) - is_primary: boolean (default false) **Criterios de aceptación:** - [ ] Contacto se asocia al cliente - [ ] Email validado (formato) - [ ] Solo un contacto primario por cliente --- ### RF-PMC-002-007: Editar Contacto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-007 | | **Nombre** | Editar Contacto | | **Prioridad** | P2 | | **Actor** | Creative, Analyst, Tenant Admin | **Criterios de aceptación:** - [ ] Campos se actualizan correctamente - [ ] Cambio de is_primary actualiza otros contactos --- ### RF-PMC-002-008: Listar Contactos | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-008 | | **Nombre** | Listar Contactos | | **Prioridad** | P2 | | **Actor** | Todos los roles | **Descripción:** Listar contactos del tenant o de un cliente específico. **Criterios de aceptación:** - [ ] Filtro por cliente funciona - [ ] Búsqueda por nombre/email - [ ] Paginación implementada --- ### RF-PMC-002-009: Marcar Contacto Primario | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-009 | | **Nombre** | Marcar Contacto Primario | | **Prioridad** | P2 | | **Actor** | Creative, Analyst, Tenant Admin | **Descripción:** Designar un contacto como principal del cliente. **Criterios de aceptación:** - [ ] Solo un contacto primario por cliente - [ ] Al marcar uno, otros se desmarcan automáticamente --- ## Gestión de Marcas ### RF-PMC-002-010: Crear Marca | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-010 | | **Nombre** | Crear Marca | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Datos de entrada:** - client_id: UUID (requerido) - name: string (requerido) - description: text (opcional) - identity: object (opcional) - logo_url - primary_color - secondary_colors - typography - tone_of_voice - keywords - forbidden_words - visual_style **Criterios de aceptación:** - [ ] Marca se asocia al cliente - [ ] Identity se almacena como JSONB - [ ] Logo se puede subir o referenciar URL --- ### RF-PMC-002-011: Editar Marca | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-011 | | **Nombre** | Editar Marca | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Criterios de aceptación:** - [ ] Todos los campos de identity editables - [ ] Preview de colores en tiempo real - [ ] Cambios se propagan a nuevas generaciones --- ### RF-PMC-002-012: Definir Identidad Visual | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-012 | | **Nombre** | Definir Identidad Visual | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Descripción:** Configurar todos los elementos de identidad visual de la marca. **Campos de identidad:** - Logo (principal y variaciones) - Paleta de colores - Tipografías - Tono de voz - Keywords positivas - Palabras prohibidas - Estilo visual preferido **Criterios de aceptación:** - [ ] Formulario estructurado para cada sección - [ ] Upload de logos funciona - [ ] Preview visual de paleta de colores --- ### RF-PMC-002-013: Asociar LoRA a Marca | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-013 | | **Nombre** | Asociar LoRA a Marca | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Descripción:** Vincular modelos LoRA entrenados con una marca. **Flujo:** 1. Usuario accede a configuración de marca 2. Selecciona "Modelos IA" 3. Elige LoRA(s) del catálogo del tenant 4. Sistema vincula LoRA con marca 5. LoRA se usa automáticamente en generaciones de la marca **Criterios de aceptación:** - [ ] Múltiples LoRAs pueden asociarse - [ ] LoRA se aplica por defecto en generación - [ ] Desasociación funciona --- ### RF-PMC-002-014: Listar Marcas | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-014 | | **Nombre** | Listar Marcas | | **Prioridad** | P1 | | **Actor** | Todos los roles | **Criterios de aceptación:** - [ ] Filtro por cliente funciona - [ ] Preview de logo/colores en lista - [ ] Búsqueda por nombre --- ## Gestión de Productos ### RF-PMC-002-015: Crear Producto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-015 | | **Nombre** | Crear Producto | | **Prioridad** | P1 | | **Actor** | Creative, Analyst | **Datos de entrada:** - brand_id: UUID (requerido) - name: string (requerido) - sku: string (opcional) - description: text (opcional) - category: string (opcional) - attributes: object (precio, features, etc.) - reference_images: array[file] (opcional) **Criterios de aceptación:** - [ ] Producto se asocia a marca - [ ] Imágenes de referencia se almacenan - [ ] Status inicial "active" --- ### RF-PMC-002-016: Editar Producto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-016 | | **Nombre** | Editar Producto | | **Prioridad** | P2 | | **Actor** | Creative, Analyst | **Criterios de aceptación:** - [ ] Campos se actualizan correctamente - [ ] Imágenes de referencia pueden agregarse/quitarse --- ### RF-PMC-002-017: Subir Imágenes de Referencia | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-017 | | **Nombre** | Subir Imágenes de Referencia | | **Prioridad** | P1 | | **Actor** | Creative, Analyst | **Descripción:** Agregar fotos reales del producto para usar como referencia en generación. **Criterios de aceptación:** - [ ] Upload múltiple funciona - [ ] Formatos: JPG, PNG, WebP - [ ] Tamaño máximo: 10MB por imagen - [ ] Thumbnails generados automáticamente --- ### RF-PMC-002-018: Trigger Generación desde Producto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-018 | | **Nombre** | Trigger Generación desde Producto | | **Prioridad** | P1 | | **Actor** | Creative | **Descripción:** Iniciar generación de contenido directamente desde la ficha de producto. **Flujo:** 1. Usuario ve ficha de producto 2. Selecciona "Generar contenido" 3. Elige workflow template 4. Configura opciones (cantidad, estilo) 5. Sistema crea job de generación 6. Sistema redirige a monitor o muestra progreso **Criterios de aceptación:** - [ ] Datos del producto se cargan al job - [ ] Identidad de marca se incluye - [ ] LoRAs se aplican automáticamente --- ### RF-PMC-002-019: Listar Productos | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-019 | | **Nombre** | Listar Productos | | **Prioridad** | P1 | | **Actor** | Todos los roles | **Criterios de aceptación:** - [ ] Filtro por marca funciona - [ ] Vista de catálogo con imágenes - [ ] Búsqueda por nombre/SKU --- ## Gestión de Oportunidades ### RF-PMC-002-020: Crear Oportunidad | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-020 | | **Nombre** | Crear Oportunidad | | **Prioridad** | P2 | | **Actor** | Analyst, Tenant Admin | **Datos de entrada:** - client_id: UUID (requerido) - name: string (requerido) - description: text (opcional) - value: decimal (opcional) - currency: string (default: USD) - expected_close_date: date (opcional) **Criterios de aceptación:** - [ ] Stage inicial "lead" - [ ] Probability calculada por stage --- ### RF-PMC-002-021: Mover Oportunidad en Pipeline | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-021 | | **Nombre** | Mover Oportunidad en Pipeline | | **Prioridad** | P2 | | **Actor** | Analyst, Tenant Admin | **Descripción:** Cambiar stage de una oportunidad mediante drag & drop o acción directa. **Stages:** - lead → qualified → proposal → negotiation → won/lost **Criterios de aceptación:** - [ ] Drag & drop en vista Kanban - [ ] Probability se actualiza automáticamente - [ ] Registro de historial de cambios --- ### RF-PMC-002-022: Cerrar Oportunidad como Ganada | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-022 | | **Nombre** | Cerrar Oportunidad como Ganada | | **Prioridad** | P2 | | **Actor** | Analyst, Tenant Admin | **Flujo:** 1. Usuario mueve a stage "won" 2. Sistema solicita valor final confirmado 3. Sistema marca como ganada 4. Sistema ofrece crear proyecto **Criterios de aceptación:** - [ ] actual_close_date se registra - [ ] Opción de crear proyecto disponible --- ### RF-PMC-002-023: Cerrar Oportunidad como Perdida | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-023 | | **Nombre** | Cerrar Oportunidad como Perdida | | **Prioridad** | P2 | | **Actor** | Analyst, Tenant Admin | **Flujo:** 1. Usuario mueve a stage "lost" 2. Sistema solicita motivo de pérdida 3. Sistema registra lost_reason 4. Sistema marca como perdida **Criterios de aceptación:** - [ ] lost_reason es requerido - [ ] Oportunidad no editable después de cerrar --- ### RF-PMC-002-024: Convertir Oportunidad en Proyecto | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-024 | | **Nombre** | Convertir Oportunidad en Proyecto | | **Prioridad** | P2 | | **Actor** | Analyst, Tenant Admin | **Descripción:** Crear proyecto automáticamente desde oportunidad ganada. **Flujo:** 1. Usuario selecciona "Convertir a proyecto" 2. Sistema muestra formulario pre-llenado 3. Usuario confirma/modifica datos 4. Sistema crea proyecto vinculado al cliente 5. Sistema vincula oportunidad con proyecto **Criterios de aceptación:** - [ ] Datos del cliente se heredan - [ ] Descripción de oportunidad se copia a proyecto - [ ] Relación bidireccional establecida --- ### RF-PMC-002-025: Vista Kanban de Oportunidades | Campo | Valor | |-------|-------| | **ID** | RF-PMC-002-025 | | **Nombre** | Vista Kanban de Oportunidades | | **Prioridad** | P2 | | **Actor** | Analyst, Tenant Admin | **Descripción:** Mostrar pipeline de oportunidades en formato Kanban. **Características:** - Columnas por stage - Cards con info resumida - Drag & drop entre columnas - Filtros por cliente, fecha, valor - Totales por columna **Criterios de aceptación:** - [ ] Drag & drop funciona - [ ] Totales se calculan correctamente - [ ] Filtros se aplican en tiempo real --- ## Resumen | Prioridad | Cantidad | |-----------|----------| | P1 | 14 | | P2 | 10 | | P3 | 1 | | **Total** | **25** | --- **Documento generado por:** Requirements-Analyst **Fecha:** 2025-12-08