- 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>
126 lines
3.9 KiB
Markdown
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
|