trading-platform/orchestration/tareas/TASK-2026-01-25-OQI-005-PAYMENTS-ADVANCED/03-PLANEACION.md
Adrian Flores Cortes 930c3bec75 [OQI-005] docs: Complete CAPVED documentation and module updates
- Add 01-CONTEXTO.md, 02-ANALISIS.md, 03-PLANEACION.md, 04-VALIDACION.md
- Update _INDEX.yml with complete CAPVED file list
- Update ET-PAY-005-frontend.md with new components section
- Update TRACEABILITY.yml with frontend implementation status

Full SIMCO compliance achieved for TASK-2026-01-25-OQI-005-PAYMENTS-ADVANCED

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:02:20 -06:00

126 lines
3.9 KiB
Markdown

# 03-PLANEACION.md - OQI-005 Payments Advanced Components
## Descomposicion de Subtareas
### Fase 1: Análisis y Preparación
| # | Subtarea | Estimación | Asignado |
|---|----------|------------|----------|
| 1.1 | Explorar módulo payments existente | 5 min | Claude Code |
| 1.2 | Identificar gaps y componentes faltantes | 5 min | Claude Code |
| 1.3 | Analizar patrones de código existentes | 5 min | Claude Code |
### Fase 2: Implementación
| # | Subtarea | Estimación | Asignado |
|---|----------|------------|----------|
| 2.1 | Crear StripeElementsWrapper.tsx | 10 min | Claude Code |
| 2.2 | Crear InvoicePreview.tsx | 10 min | Claude Code |
| 2.3 | Crear RefundRequestModal.tsx | 15 min | Claude Code |
| 2.4 | Crear RefundList.tsx | 15 min | Claude Code |
| 2.5 | Actualizar index.ts con exports | 5 min | Claude Code |
### Fase 3: Documentación
| # | Subtarea | Estimación | Asignado |
|---|----------|------------|----------|
| 3.1 | Actualizar FRONTEND_INVENTORY.yml | 5 min | Claude Code |
| 3.2 | Actualizar MASTER_INVENTORY.yml | 5 min | Claude Code |
| 3.3 | Crear METADATA.yml | 5 min | Claude Code |
| 3.4 | Crear 05-EJECUCION.md | 5 min | Claude Code |
| 3.5 | Crear 06-DOCUMENTACION.md | 10 min | Claude Code |
### Fase 4: Commit y Push
| # | Subtarea | Estimación | Asignado |
|---|----------|------------|----------|
| 4.1 | Commit frontend submodule | 2 min | Claude Code |
| 4.2 | Commit trading-platform | 2 min | Claude Code |
| 4.3 | Commit workspace-v2 | 2 min | Claude Code |
---
## Orden de Ejecucion
```
[1.1] ──> [1.2] ──> [1.3]
v
[2.1] ──> [2.2] ──> [2.3] ──> [2.4] ──> [2.5]
v
[3.1] ──> [3.2] ──> [3.3] ──> [3.4] ──> [3.5]
v
[4.1] ──> [4.2] ──> [4.3]
```
**Dependencias Críticas:**
- 2.x requiere completar 1.x (análisis antes de implementar)
- 2.5 requiere 2.1-2.4 (exports después de componentes)
- 3.x requiere 2.x (documentar después de implementar)
- 4.x requiere 3.x (commit después de documentar)
---
## Criterios de Aceptacion
### Componentes
- [ ] StripeElementsWrapper carga SDK correctamente
- [ ] InvoicePreview renderiza items, descuentos, impuestos
- [ ] RefundRequestModal valida elegibilidad y montos
- [ ] RefundList pagina y filtra correctamente
### Código
- [ ] TypeScript sin errores
- [ ] Tipos exportados correctamente
- [ ] Patrones consistentes con codebase
- [ ] Sin placeholders ni código incompleto
### Documentación
- [ ] Inventarios actualizados
- [ ] Task folder completo
- [ ] _INDEX.yml actualizado
### Git
- [ ] Commits en frontend, trading-platform, workspace-v2
- [ ] Push exitoso a origin
---
## Estimacion Total
| Fase | Tiempo |
|------|--------|
| Análisis | 15 min |
| Implementación | 55 min |
| Documentación | 30 min |
| Git | 6 min |
| **Total** | **~2 horas** |
---
## Riesgos y Mitigaciones
| Riesgo | Mitigación |
|--------|------------|
| SDK Stripe no instalado | Documentar como dependencia, no bloquea componente |
| Conflictos de merge | Fetch antes de operar |
| Tipos incorrectos | Verificar exports en index.ts |
---
## Decisiones de Diseño
### DD-001: Ubicación de Componentes
**Decisión:** Crear en `components/payments/` (no en `modules/payments/`)
**Razón:** Consistencia con componentes existentes (WalletCard, etc.)
### DD-002: Iconos
**Decisión:** Usar lucide-react
**Razón:** Consistencia con otros componentes de payments
### DD-003: Exportación de StripeElementsWrapper
**Decisión:** Exportar como default + HOC + hook
**Razón:** Flexibilidad de uso (wrapper, HOC, o verificación)
### DD-004: Formato de Moneda
**Decisión:** Usar Intl.NumberFormat con currency prop
**Razón:** Soporte internacional sin dependencias adicionales