🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
325 lines
6.8 KiB
Markdown
325 lines
6.8 KiB
Markdown
---
|
|
id: "BA-009-PORTALS"
|
|
title: "BA-009: Modulo de Portales"
|
|
type: "Module Definition"
|
|
epic: "BA-009"
|
|
status: "Draft"
|
|
project: "betting-analytics"
|
|
version: "1.0.0"
|
|
created_date: "2026-01-04"
|
|
updated_date: "2026-01-04"
|
|
---
|
|
|
|
# BA-009: Modulo de Portales
|
|
|
|
**Version:** 1.0.0
|
|
**Fecha:** 2026-01-04
|
|
**Estado:** Definicion
|
|
**Prioridad:** Alta
|
|
|
|
---
|
|
|
|
## Descripcion General
|
|
|
|
El modulo de Portales define la arquitectura de 3 interfaces diferenciadas segun el tipo de usuario: Usuario General (analista), Admin Cliente (tenant admin) y Admin SaaS (super admin).
|
|
|
|
---
|
|
|
|
## Objetivos
|
|
|
|
1. Proporcionar experiencia de usuario diferenciada por rol
|
|
2. Separar funcionalidades administrativas de uso general
|
|
3. Permitir gestion centralizada del SaaS
|
|
4. Facilitar escalabilidad del sistema
|
|
|
|
---
|
|
|
|
## Estructura de Portales
|
|
|
|
### Portal 1: Usuario General (Analyst)
|
|
|
|
```yaml
|
|
Portal: Usuario General
|
|
URL: app.{tenant}.betting-analytics.com
|
|
Roles: analyst, viewer
|
|
|
|
Dashboard:
|
|
- Resumen de predicciones recientes
|
|
- Creditos restantes
|
|
- Modelos disponibles
|
|
- Estadisticas personales
|
|
|
|
Modulos:
|
|
predicciones:
|
|
- Crear nueva prediccion
|
|
- Ver historial de predicciones
|
|
- Detalles de prediccion
|
|
- Exportar resultados
|
|
|
|
modelos:
|
|
- Explorar modelos disponibles
|
|
- Ver estadisticas de precision
|
|
- Favoritos
|
|
|
|
perfil:
|
|
- Datos personales
|
|
- Preferencias
|
|
- Notificaciones
|
|
- API keys (si plan lo permite)
|
|
|
|
Restricciones:
|
|
- Solo ve datos propios
|
|
- Limitado por creditos del plan
|
|
- Sin acceso a configuracion del tenant
|
|
```
|
|
|
|
### Portal 2: Admin Cliente (Tenant Admin)
|
|
|
|
```yaml
|
|
Portal: Admin Cliente
|
|
URL: admin.{tenant}.betting-analytics.com
|
|
Roles: tenant_admin
|
|
|
|
Dashboard:
|
|
- Metricas de uso del tenant
|
|
- Usuarios activos
|
|
- Creditos consumidos/restantes
|
|
- Alertas de limites
|
|
|
|
Modulos:
|
|
usuarios:
|
|
- Listar usuarios del tenant
|
|
- Invitar nuevos usuarios
|
|
- Editar roles
|
|
- Desactivar usuarios
|
|
|
|
organizacion:
|
|
- Datos del tenant
|
|
- Configuracion general
|
|
- Integraciones
|
|
- Webhooks
|
|
|
|
facturacion:
|
|
- Plan actual
|
|
- Cambiar plan
|
|
- Historial de facturas
|
|
- Metodos de pago
|
|
- Portal de Stripe
|
|
|
|
reportes:
|
|
- Uso por usuario
|
|
- Predicciones por periodo
|
|
- Consumo de creditos
|
|
- Exportar reportes
|
|
|
|
Restricciones:
|
|
- Solo ve datos de su tenant
|
|
- No puede modificar planes globales
|
|
- No ve otros tenants
|
|
```
|
|
|
|
### Portal 3: Admin SaaS (Super Admin)
|
|
|
|
```yaml
|
|
Portal: Admin SaaS
|
|
URL: admin.betting-analytics.com
|
|
Roles: super_admin
|
|
|
|
Dashboard:
|
|
- Tenants totales/activos
|
|
- MRR (Monthly Recurring Revenue)
|
|
- Usuarios totales
|
|
- Predicciones globales
|
|
- Health del sistema
|
|
|
|
Modulos:
|
|
tenants:
|
|
- Listar todos los tenants
|
|
- Crear tenant
|
|
- Editar tenant
|
|
- Suspender/reactivar
|
|
- Ver metricas por tenant
|
|
|
|
planes:
|
|
- Configurar planes
|
|
- Editar precios
|
|
- Activar/desactivar planes
|
|
- Configurar limites
|
|
|
|
usuarios_globales:
|
|
- Buscar usuarios globalmente
|
|
- Impersonar usuario
|
|
- Reset de password
|
|
- Ver actividad
|
|
|
|
sistema:
|
|
- Configuracion global
|
|
- Feature flags
|
|
- Mantenimiento
|
|
- Logs del sistema
|
|
|
|
soporte:
|
|
- Tickets abiertos
|
|
- Responder tickets
|
|
- Metricas de soporte
|
|
|
|
analytics:
|
|
- Metricas de negocio
|
|
- Conversion por plan
|
|
- Churn rate
|
|
- LTV por segmento
|
|
|
|
Restricciones:
|
|
- Acceso total al sistema
|
|
- Requiere 2FA obligatorio
|
|
- Auditoria de acciones
|
|
```
|
|
|
|
---
|
|
|
|
## Componentes Compartidos
|
|
|
|
```yaml
|
|
Componentes:
|
|
header:
|
|
- Logo
|
|
- Navegacion principal
|
|
- Notificaciones
|
|
- Menu usuario
|
|
|
|
sidebar:
|
|
- Navegacion contextual
|
|
- Estado del plan (si aplica)
|
|
- Accesos rapidos
|
|
|
|
footer:
|
|
- Links legales
|
|
- Version
|
|
- Soporte
|
|
|
|
auth:
|
|
- Login
|
|
- Registro (solo tenant nuevo)
|
|
- Forgot password
|
|
- 2FA setup
|
|
```
|
|
|
|
---
|
|
|
|
## Routing
|
|
|
|
```yaml
|
|
Rutas por Portal:
|
|
|
|
Usuario General:
|
|
/dashboard # Dashboard principal
|
|
/predictions # Listado de predicciones
|
|
/predictions/new # Nueva prediccion
|
|
/predictions/:id # Detalle
|
|
/models # Modelos disponibles
|
|
/models/:id # Detalle modelo
|
|
/profile # Perfil
|
|
/settings # Configuracion
|
|
|
|
Admin Cliente:
|
|
/dashboard # Dashboard tenant
|
|
/users # Gestion usuarios
|
|
/users/invite # Invitar usuario
|
|
/organization # Configuracion
|
|
/billing # Facturacion
|
|
/billing/plans # Cambiar plan
|
|
/billing/invoices # Facturas
|
|
/reports # Reportes
|
|
|
|
Admin SaaS:
|
|
/dashboard # Dashboard global
|
|
/tenants # Gestion tenants
|
|
/tenants/:id # Detalle tenant
|
|
/plans # Gestion planes
|
|
/users # Usuarios globales
|
|
/system # Configuracion
|
|
/support # Soporte
|
|
/analytics # Metricas
|
|
```
|
|
|
|
---
|
|
|
|
## Permisos por Portal
|
|
|
|
```yaml
|
|
Matriz de Permisos:
|
|
|
|
| Permiso | Usuario | Admin Cliente | Admin SaaS |
|
|
|---------|---------|---------------|------------|
|
|
| Ver predicciones propias | SI | SI | SI |
|
|
| Ver predicciones del tenant | NO | SI | SI |
|
|
| Crear predicciones | SI | SI | SI |
|
|
| Gestionar usuarios | NO | SI | SI |
|
|
| Ver facturacion | NO | SI | SI |
|
|
| Cambiar plan | NO | SI | SI |
|
|
| Ver todos los tenants | NO | NO | SI |
|
|
| Configurar planes | NO | NO | SI |
|
|
| Configurar sistema | NO | NO | SI |
|
|
```
|
|
|
|
---
|
|
|
|
## Funcionalidades
|
|
|
|
### F-009.1: Portal Usuario
|
|
|
|
| ID | Funcionalidad | Descripcion | Prioridad |
|
|
|----|---------------|-------------|-----------|
|
|
| F-009.1.1 | Dashboard | Panel principal | Alta |
|
|
| F-009.1.2 | Predicciones | CRUD predicciones | Alta |
|
|
| F-009.1.3 | Modelos | Explorar modelos | Alta |
|
|
| F-009.1.4 | Perfil | Gestion personal | Media |
|
|
|
|
### F-009.2: Portal Admin Cliente
|
|
|
|
| ID | Funcionalidad | Descripcion | Prioridad |
|
|
|----|---------------|-------------|-----------|
|
|
| F-009.2.1 | Dashboard | Metricas tenant | Alta |
|
|
| F-009.2.2 | Usuarios | Gestion usuarios | Alta |
|
|
| F-009.2.3 | Facturacion | Planes y pagos | Alta |
|
|
| F-009.2.4 | Reportes | Uso y consumo | Media |
|
|
|
|
### F-009.3: Portal Admin SaaS
|
|
|
|
| ID | Funcionalidad | Descripcion | Prioridad |
|
|
|----|---------------|-------------|-----------|
|
|
| F-009.3.1 | Dashboard | Metricas globales | Alta |
|
|
| F-009.3.2 | Tenants | Gestion tenants | Alta |
|
|
| F-009.3.3 | Planes | Config planes | Alta |
|
|
| F-009.3.4 | Sistema | Config global | Media |
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
```yaml
|
|
Dependencias:
|
|
- BA-007 (tenants): Multi-tenancy
|
|
- BA-008 (payments): Facturacion
|
|
- BA-001 (auth): Autenticacion y roles
|
|
|
|
Catalogos:
|
|
- shared/catalog/portales/
|
|
```
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
- [ ] Usuario ve solo su portal correspondiente
|
|
- [ ] Navegacion es clara y contextual
|
|
- [ ] Permisos se aplican correctamente
|
|
- [ ] Dashboard muestra metricas relevantes
|
|
- [ ] Responsive en todos los dispositivos
|
|
|
|
---
|
|
|
|
**Documento generado por:** NEXUS Orchestration
|
|
**Fecha:** 2026-01-04
|
|
|