trading-platform/docs/02-definicion-modulos/OQI-004-investment-accounts/historias-usuario/US-INV-002-abrir-cuenta.md
rckrdmrd a7cca885f0 feat: Major platform documentation and architecture updates
Changes include:
- Updated architecture documentation
- Enhanced module definitions (OQI-001 to OQI-008)
- ML integration documentation updates
- Trading strategies documentation
- Orchestration and inventory updates
- Docker configuration updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:33:35 -06:00

9.0 KiB

id title type status priority epic project story_points created_date updated_date
US-INV-002 Abrir Cuenta de Inversión User Story Done Media OQI-004 trading-platform 3 2025-12-05 2026-01-04

US-INV-002: Abrir Cuenta de Inversión

Metadata

Campo Valor
ID US-INV-002
Épica OQI-004 - Cuentas de Inversión
Módulo investment
Prioridad P0
Story Points 5
Sprint Sprint 5
Estado Pendiente
Asignado a Por asignar

Historia de Usuario

Como inversor, quiero abrir una cuenta de inversión en un producto específico, para comenzar a invertir y obtener rendimientos gestionados por un agente IA.

Descripción Detallada

El usuario debe poder seleccionar un producto de inversión (Atlas, Orion, Nova) y abrir una cuenta asociada. El proceso incluye aceptar términos y condiciones, y ser redirigido al flujo de depósito inicial.

Mockups/Wireframes

┌─────────────────────────────────────────────────────────────────┐
│                    ABRIR CUENTA - ATLAS                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │  🛡️ ATLAS - El Guardián                                 │   │
│   │                                                          │   │
│   │  Perfil: Conservador                                     │   │
│   │  Target mensual: 3-5%                                    │   │
│   │  Max drawdown: 5%                                        │   │
│   │  Inversión mínima: $100 USD                              │   │
│   │                                                          │   │
│   │  Estrategia: Mean reversion + Grid trading               │   │
│   │  Activos: BTC, ETH (solo majors)                        │   │
│   │  Frecuencia: 2-5 trades/día                             │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │  ⚠️ Disclaimer                                           │   │
│   │                                                          │   │
│   │  Los rendimientos pasados no garantizan resultados      │   │
│   │  futuros. El trading de criptomonedas conlleva riesgos  │   │
│   │  significativos de pérdida.                             │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│   [✓] Acepto los términos y condiciones                        │
│   [✓] Entiendo los riesgos asociados                           │
│   [✓] Confirmo que tengo al menos 18 años                      │
│                                                                  │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │              ABRIR CUENTA Y DEPOSITAR                    │   │
│   └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Criterios de Aceptación

Escenario 1: Abrir cuenta exitosamente

DADO que el usuario está autenticado
Y tiene email verificado
Y no tiene cuenta en el producto Atlas
CUANDO navega a la página de apertura de Atlas
Y acepta todos los checkboxes requeridos
Y hace click en "Abrir Cuenta y Depositar"
ENTONCES se crea una nueva cuenta de inversión
Y el estado de la cuenta es "active"
Y el balance inicial es $0
Y se redirige al flujo de depósito

Escenario 2: Usuario ya tiene cuenta en ese producto

DADO que el usuario ya tiene cuenta en Atlas
CUANDO intenta abrir otra cuenta en Atlas
ENTONCES se muestra mensaje "Ya tienes una cuenta en Atlas"
Y se ofrece link para ir al dashboard de la cuenta existente

Escenario 3: Email no verificado

DADO que el usuario no tiene email verificado
CUANDO intenta abrir cuenta de inversión
ENTONCES se muestra mensaje "Debes verificar tu email primero"
Y se ofrece link para reenviar verificación

Escenario 4: No acepta términos

DADO que el usuario está en la página de apertura
CUANDO no marca todos los checkboxes requeridos
ENTONCES el botón "Abrir Cuenta" está deshabilitado
Y se muestra mensaje indicando los campos faltantes

Escenario 5: Apertura sin depósito inmediato

DADO que el usuario quiere abrir cuenta sin depositar ahora
CUANDO hace click en "Abrir cuenta sin depositar" (link secundario)
ENTONCES se crea la cuenta con balance $0
Y se redirige al dashboard de la cuenta
Y se muestra CTA para depositar

Criterios Adicionales

  • Mostrar rendimiento histórico del agente
  • Mostrar disclaimer legal claramente
  • Guardar aceptación de términos con timestamp
  • Enviar email de confirmación de apertura
  • Tracking de conversión (analytics)

Tareas Técnicas

Database:

  • DB-INV-001: Verificar schema de investment.accounts
  • DB-INV-002: Crear índice en (user_id, product_id)

Backend:

  • BE-INV-001: Crear endpoint POST /investment/accounts
  • BE-INV-002: Implementar AccountService.createAccount()
  • BE-INV-003: Validar email verificado
  • BE-INV-004: Validar cuenta única por producto
  • BE-INV-005: Guardar aceptación de términos

Frontend:

  • FE-INV-001: Crear página OpenAccount.tsx
  • FE-INV-002: Crear componente ProductSummary.tsx
  • FE-INV-003: Crear componente TermsCheckboxes.tsx
  • FE-INV-004: Implementar investmentStore

Tests:

  • TEST-INV-001: Test unitario AccountService
  • TEST-INV-002: Test integración crear cuenta
  • TEST-INV-003: Test E2E flujo completo

Dependencias

Depende de:

  • US-AUTH-001: Autenticación - Estado: Completado
  • US-INV-001: Ver productos - Estado: Pendiente

Bloquea:

  • US-INV-003: Realizar depósito
  • US-INV-004: Ver dashboard portfolio

Notas Técnicas

Endpoints involucrados:

Método Endpoint Descripción
GET /investment/products/:id Detalle del producto
POST /investment/accounts Crear cuenta
GET /investment/accounts Verificar cuentas existentes

Entidades/Tablas:

  • investment.accounts: Cuenta de inversión
  • investment.terms_acceptance: Registro de aceptación

Request Body:

{
  productId: "uuid-atlas",
  acceptedTerms: true,
  acceptedRisks: true,
  confirmedAge: true,
  ipAddress: "192.168.1.1",
  userAgent: "Mozilla/5.0..."
}

Response:

{
  account: {
    id: "uuid",
    userId: "uuid",
    productId: "uuid",
    status: "active",
    balance: 0,
    openedAt: "2025-12-05T..."
  },
  redirectTo: "/investment/deposit?accountId=uuid"
}

Definition of Ready (DoR)

  • Historia claramente escrita
  • Criterios de aceptación definidos
  • Story points estimados
  • Dependencias identificadas
  • Sin bloqueadores
  • Diseño/mockup disponible
  • API spec disponible

Definition of Done (DoD)

  • Código implementado según criterios
  • Tests unitarios escritos y pasando
  • Tests de integración pasando
  • Code review aprobado
  • Documentación actualizada
  • QA aprobado
  • Desplegado en ambiente de pruebas

Historial de Cambios

Fecha Cambio Autor
2025-12-05 Creación Requirements-Analyst

Creada por: Requirements-Analyst Fecha: 2025-12-05 Última actualización: 2025-12-05