erp-core/docs/05-user-stories/mgn-009/US-MGN-009-005-001-convertir-lead-oportunidad.md

2.9 KiB

US-MGN-009-005-001: Convertir Lead en Oportunidad

RF Asociado: RF-MGN-009-005 Módulo: MGN-009 - CRM Básico Epic: Conversión Prioridad: P0 Story Points: 4 Sprint: Sprint 21 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como vendedor, Quiero convertir leads calificados en oportunidades, Para avanzar en el pipeline de ventas.

Descripción Detallada

Conversión Lead → Oportunidad:

  1. Valida lead está qualified
  2. Crea partner si no existe (desde lead.company_name y lead.email)
  3. Crea oportunidad vinculada al partner
  4. Marca lead como converted
  5. Copia actividades del lead a la oportunidad

Criterios de Aceptación

Escenario 1: Convertir lead sin partner existente

Dado que lead qualified con company="ABC Corp", email="contact@abc.com", Cuando convierto a oportunidad con amount=50000, Entonces sistema crea partner "ABC Corp", crea oportunidad vinculada, marca lead.state=converted.

Escenario 2: Convertir lead con partner existente

Dado que lead tiene email="juan@abc.com", ya existe partner con email similar, Cuando convierto, Entonces sistema sugiere partner existente, permite seleccionar o crear nuevo.

Escenario 3: Copiar actividades

Dado que lead tiene 5 actividades registradas, Cuando convierto a oportunidad, Entonces sistema copia las 5 actividades a la oportunidad.

Escenario 4: No convertir lead no calificado

Dado que lead está en state=new, Cuando intento convertir, Entonces error 400 "Solo leads calificados pueden convertirse".

Reglas de Negocio

  • RN-1: Solo leads en state=qualified pueden convertirse.
  • RN-2: Conversión crea partner si no existe.
  • RN-3: Lead marca como converted (no se elimina).
  • RN-4: Actividades se copian a oportunidad.
  • RN-5: lead.converted_to_opportunity_id vincula a oportunidad.

Tareas Técnicas

Backend

  • Endpoint: POST /api/v1/crm/leads/:id/convert
  • Service: LeadService.convertToOpportunity(leadId, conversionDto)
  • Crear/buscar partner
  • Crear oportunidad
  • Copiar actividades
  • Actualizar lead state=converted
  • Unit tests

Frontend

  • Modal: ConvertLeadModal.tsx
  • Formulario: Monto estimado, fecha cierre
  • Selector: Partner existente o crear nuevo
  • Confirmación conversión
  • Navegación a oportunidad creada

Estimación Detallada

Tarea Horas
Backend 2.5
Frontend 1.5
Testing 2
TOTAL 6 horas = 4 SP

Definition of Done

  • Conversión funcional
  • Partner se crea/vincula correctamente
  • Actividades copiadas
  • Lead marcado como converted
  • Tests >80%
  • QA/PO aprobado

Referencias