trading-platform/orchestration/tareas/_archive/2026-01/TASK-2026-01-25-OQI-004-ACCOUNT-DETAIL/05-EJECUCION.md
Adrian Flores Cortes df43dd90cb [F0-F2] feat: Coherence analysis baseline + entity types + frontend stores
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>
2026-01-28 22:08:04 -06:00

3.1 KiB

05-EJECUCION - OQI-004 Account Detail

Contexto

El modulo de Investment (OQI-004) tenia paginas Portfolio.tsx y Products.tsx pero faltaba la pagina de detalle de cuenta individual. Portfolio.tsx (linea 115) enlaza a /investment/accounts/${account.id} pero la pagina no existia.

Fase 1: Investment Service

Archivo Creado

apps/frontend/src/services/investment.service.ts

Funciones Implementadas

  • Products: getProducts, getProductById, getProductPerformance
  • Accounts: getUserAccounts, getAccountSummary, getAccountById, createAccount, closeAccount
  • Transactions: getTransactions, createDeposit, createWithdrawal
  • Distributions: getDistributions
  • Withdrawals: getWithdrawals

Tipos Exportados

  • Product, ProductPerformance
  • InvestmentAccount, AccountSummary, AccountDetail
  • Transaction, Distribution, Withdrawal

Fase 2: Account Detail Page

Archivo Creado

apps/frontend/src/modules/investment/pages/AccountDetail.tsx

Estructura de Componentes

AccountDetail
├── StatCard           // Cards de estadisticas
├── TransactionRow     // Fila de transaccion
├── DistributionRow    // Fila de distribucion
├── PerformanceChart   // Canvas chart de rendimiento
└── Tabs
    ├── Overview       // Resumen + chart + info
    ├── Transactions   // Historial completo
    ├── Distributions  // Historial de distribuciones
    ├── Deposit        // DepositForm integrado
    └── Withdraw       // WithdrawForm integrado

Funcionalidades

  1. Stats Grid: Balance actual, Total invertido, Ganancias, Total retirado
  2. Performance Chart: Canvas-based line chart con gradient fill
  3. Recent Transactions: Ultimas 5 transacciones en overview
  4. Load More: Paginacion de transacciones
  5. Deposit/Withdraw: Forms integrados con tabs

Fase 3: Routes y App.tsx

Imports Agregados

const InvestmentPortfolio = lazy(() => import('./modules/investment/pages/Portfolio'));
const InvestmentProducts = lazy(() => import('./modules/investment/pages/Products'));
const AccountDetail = lazy(() => import('./modules/investment/pages/AccountDetail'));

Rutas Agregadas

<Route path="/investment/portfolio" element={<InvestmentPortfolio />} />
<Route path="/investment/products" element={<InvestmentProducts />} />
<Route path="/investment/accounts/:accountId" element={<AccountDetail />} />

Validaciones

  • Estructura de archivos correcta
  • Imports validos (React, react-router-dom, lucide-react)
  • Props de componentes correctas (currentBalance en WithdrawForm)
  • Rutas registradas en App.tsx
  • Inventarios actualizados

Resultado

Progreso OQI-004: 30% → 45%

Funcionalidades completadas:

  • Pagina de detalle de cuenta
  • Service API centralizado
  • Navegacion por tabs
  • Grafico de rendimiento
  • Historial de transacciones
  • Historial de distribuciones
  • Depositos y retiros integrados

Pendiente:

  • Pagina de listado de withdrawals global
  • Pagina de transactions global
  • Pagina de reports
  • ProductDetail page (detalle de producto individual)