--- id: RF-MKT-002 title: Senales Premium type: requirement status: Draft priority: High epic: OQI-009 project: trading-platform version: 1.0.0 dates: created: 2026-01-04 updated: 2026-01-04 tags: - marketplace - signals - premium - ml --- # RF-MKT-002: Senales Premium ## Descripcion El modulo de Senales Premium permite a los usuarios adquirir paquetes adicionales de senales ML de alta confianza. Estas senales complementan las senales gratuitas del plan base, ofreciendo mayor precision y frecuencia. ## Objetivo Monetizar el sistema de senales ML ofreciendo paquetes premium con senales de mayor calidad y confianza, con alertas personalizadas y historial completo. ## Tiers de Productos ### Basic Pack | Caracteristica | Valor | |----------------|-------| | Senales incluidas | 50 | | Precio | $9 USD | | Tipo | One-time | | Confidence minimo | 80% | | Validez | 30 dias | ### Pro Pack | Caracteristica | Valor | |----------------|-------| | Senales incluidas | 200 | | Precio | $29 USD | | Tipo | One-time | | Confidence minimo | 80% | | Validez | 60 dias | ### Unlimited | Caracteristica | Valor | |----------------|-------| | Senales incluidas | Ilimitadas | | Precio | $49/mes USD | | Tipo | Subscription | | Confidence minimo | 75% | | Validez | Mientras suscrito | ## Funcionalidades ### Compra de Paquetes ```gherkin Feature: Compra de Senales Premium Scenario: Comprar Basic Pack Given soy usuario con plan Free And tengo metodo de pago configurado When compro el Basic Pack por $9 Then se procesan el pago And recibo 50 creditos de senales And puedo ver mis senales disponibles Scenario: Upgrade a Unlimited Given tengo Pro Pack con 50 senales restantes When me suscribo a Unlimited Then mis senales restantes se mantienen como bonus And tengo acceso ilimitado mientras este suscrito ``` ### Consumo de Senales ```gherkin Feature: Consumo de Senales Premium Scenario: Recibir senal premium Given tengo 30 creditos de senales And existe una senal con confidence 85% When la senal es generada Then recibo notificacion push And recibo email con detalles And se descuenta 1 credito Scenario: Sin creditos disponibles Given tengo 0 creditos de senales When se genera una senal premium Then no recibo la senal And recibo notificacion de creditos agotados And veo opcion de comprar mas ``` ### Alertas Personalizadas ```gherkin Feature: Alertas Personalizadas Scenario: Configurar preferencias de alertas Given tengo paquete de senales activo When configuro mis preferencias: | tipo | valor | | push | habilitado | | email | habilitado | | symbols | BTC, ETH, SOL | | min_conf | 85% | Then solo recibo alertas que cumplan criterios Scenario: Alerta inmediata de senal Given tengo alertas push habilitadas When se genera senal para BTC con 90% confidence Then recibo push notification en < 30 segundos And el mensaje incluye simbolo, accion y precio ``` ## Caracteristicas de Senales Premium ### Atributos de Senal | Campo | Descripcion | |-------|-------------| | symbol | Par de trading (BTC/USDT) | | action | BUY, SELL, HOLD | | confidence | Porcentaje de confianza (75-100%) | | entry_price | Precio de entrada sugerido | | target_price | Precio objetivo | | stop_loss | Stop loss recomendado | | timeframe | Horizonte temporal | | reasoning | Explicacion del modelo ML | ### Ejemplo de Senal ```json { "id": "sig_abc123", "symbol": "BTC/USDT", "action": "BUY", "confidence": 87.5, "entry_price": 42150.00, "target_price": 43500.00, "stop_loss": 41200.00, "timeframe": "4h", "reasoning": "Breakout confirmado sobre resistencia con volumen alto", "generated_at": "2026-01-04T14:30:00Z", "expires_at": "2026-01-04T18:30:00Z" } ``` ## Historial de Senales ### Funcionalidades - Ver todas las senales recibidas - Filtrar por simbolo, fecha, resultado - Estadisticas de performance - Exportar a CSV ### Metricas Disponibles | Metrica | Descripcion | |---------|-------------| | win_rate | % de senales exitosas | | avg_profit | Profit promedio por senal | | total_signals | Total de senales recibidas | | best_signal | Senal mas rentable | ## Integracion con OQI-006-ml-signals ```mermaid sequenceDiagram participant ML as OQI-006-ml-signals participant MKT as OQI-009-marketplace participant User as Usuario ML->>ML: Genera senal (conf > 80%) ML->>MKT: Notifica senal premium MKT->>MKT: Verifica usuarios con creditos MKT->>User: Envia notificacion push MKT->>User: Envia email MKT->>MKT: Descuenta credito ``` ## Modelo de Datos ### Tabla: `signal_credits` | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | user_id | UUID | FK a users | | product_id | UUID | FK a products | | initial_amount | INT | Creditos iniciales | | remaining_amount | INT | Creditos restantes | | expires_at | TIMESTAMP | Fecha expiracion | | created_at | TIMESTAMP | Fecha compra | ### Tabla: `signal_deliveries` | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | user_id | UUID | FK a users | | signal_id | UUID | FK a ml_signals | | credit_id | UUID | FK a signal_credits | | delivered_at | TIMESTAMP | Fecha entrega | | delivery_channel | ENUM | push, email, both | ## Reglas de Negocio 1. **RN-001**: Solo senales con confidence >= 80% son premium (75% para Unlimited) 2. **RN-002**: Creditos expiran segun validez del pack 3. **RN-003**: Suscripcion Unlimited se renueva automaticamente 4. **RN-004**: Al cancelar Unlimited, creditos restantes se mantienen 5. **RN-005**: Maximo 1 suscripcion Unlimited activa por usuario ## Criterios de Aceptacion - [ ] Compra de paquetes Basic, Pro - [ ] Suscripcion Unlimited con renovacion automatica - [ ] Delivery de senales via push y email - [ ] Configuracion de preferencias de alertas - [ ] Historial completo de senales - [ ] Dashboard de creditos disponibles - [ ] Notificacion de creditos por agotarse ## Dependencias - **OQI-006-ml-signals**: Generacion de senales - **OQI-004-payments**: Procesamiento de pagos - **OQI-007-notifications**: Envio de alertas ## Referencias - [US-MKT-002: Comprar Senales](../historias-usuario/US-MKT-002-comprar-senales.md) - [ET-MKT-001: Database](../especificaciones/ET-MKT-001-database.md)