# US-MGN-009-003-002: Drag & Drop de Oportunidades en Pipeline

**RF Asociado:** [RF-MGN-009-002](../../02-modelado/requerimientos-funcionales/mgn-009/RF-MGN-009-002-pipeline-de-ventas-kanban.md)
**Módulo:** MGN-009 - CRM Básico
**Epic:** Pipeline de Ventas
**Prioridad:** P1
**Story Points:** 3
**Sprint:** Sprint 21
**Estado:** Ready for Development
**Fecha:** 2025-11-24

---

## User Story
**Como** vendedor, **Quiero** mover oportunidades entre etapas con drag & drop, **Para** actualizar el pipeline rápidamente.

## Descripción Detallada
Drag & drop permite:
- Arrastrar tarjeta entre columnas
- Actualización automática de stage y probability
- Registro de cambio en histórico
- Confirmación si monto > $10K

## Criterios de Aceptación

### Escenario 1: Drag & drop simple
**Dado que** oportunidad está en Qualification,
**Cuando** arrastro a Proposal,
**Entonces** stage=proposal, probability=50%, registra cambio.

### Escenario 2: Confirmación para montos grandes
**Dado que** oportunidad tiene amount=$50K,
**Cuando** arrastro a Won,
**Entonces** modal de confirmación "¿Marcar como ganada oportunidad de $50K?".

### Escenario 3: Requiere motivo al marcar Lost
**Dado que** arrastro a Lost,
**Cuando** suelto tarjeta,
**Entonces** modal solicita lost_reason obligatorio.

## Reglas de Negocio
- **RN-1:** Drag & drop actualiza stage inmediatamente.
- **RN-2:** Probability se actualiza según etapa.
- **RN-3:** Confirmación si amount > $10K al marcar Won.
- **RN-4:** lost_reason obligatorio al marcar Lost.

## Tareas Técnicas

### Backend
- [ ] Endpoint: `PATCH /api/v1/crm/opportunities/:id/move`
- [ ] Validaciones según etapa destino
- [ ] Registro en audit_log

### Frontend
- [ ] Implementar drag & drop (react-beautiful-dnd)
- [ ] Modal de confirmación para Won
- [ ] Modal lost_reason para Lost
- [ ] Animaciones suaves

---

## Estimación Detallada
| Tarea | Horas |
|-------|-------|
| Backend | 0.5 |
| Frontend | 1.5 |
| Testing | 1 |
| **TOTAL** | **3 horas = 3 SP** |

---

## Definition of Done
- [ ] Drag & drop funcional
- [ ] Validaciones aplicadas
- [ ] Confirmaciones muestran correctamente
- [ ] Histórico registrado
- [ ] QA/PO aprobado

---

## Referencias
- [RF-MGN-009-002](../../02-modelado/requerimientos-funcionales/mgn-009/RF-MGN-009-002-pipeline-de-ventas-kanban.md)
