FASE 0 - Preparación y Purga: - Archived 21 completed tasks to _archive/2026-01/ - Marked 4 docs as DEPRECATED - Created 3 baseline coherence reports FASE 1 - DDL-Backend Coherence: - audit.types.ts: +4 types (SystemEvent, TradingAudit, ApiRequestLog, DataAccessLog) - investment.types.ts: +4 types (RiskQuestionnaire, WithdrawalRequest, DailyPerformance, DistributionHistory) - entity.types.ts: +5 types (Symbol, TradingBot, TradingSignal, TradingMetrics, PaperBalance) FASE 2 - Backend-Frontend Coherence: - investmentStore.ts: New Zustand store with 20+ actions - mlStore.ts: New Zustand store with signal caching - alerts.service.ts: New service with 15 functions FASE 3 - Documentation: - OQI-009: Updated to 100% coverage, added ET-MKT-004-productos.md - OQI-010: Created full structure (STATUS.md, ROADMAP-MT4.md, ET-MT4-001-gateway.md) Coherence Baseline Established: - DDL-Backend: 31% (target 95%) - Backend-Frontend: 72% (target 85%) - Global: 39.6% (target 90%) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
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