Módulo analytics_service.py
listo:
- Estadísticas por usuario (retorno, riesgo promedio).
- KPIs globales de la plataforma.
# analytics_service.py
from fastapi import APIRouter
from typing import List, Dict
router = APIRouter()
# Simulación de registros de inversión por cartera
investment_data = {
«cliente1»: [
{«nombre»: «Tech Growth», «retorno»: 12.5, «riesgo»: 7.2},
{«nombre»: «Stable Bonds», «retorno»: 4.3, «riesgo»: 1.1}
],
«cliente2»: [
{«nombre»: «Crypto Mix», «retorno»: 21.7, «riesgo»: 15.6}
]
}
@router.get(«/{user_id}/estadisticas»)
def estadisticas_por_usuario(user_id: str):
carteras = investment_data.get(user_id, [])
total_retorno = sum(c[«retorno»] for c in carteras)
riesgo_promedio = round(sum(c[«riesgo»] for c in carteras) / len(carteras), 2) if carteras else 0
return {
«carteras»: carteras,
«total_retorno_estimado»: total_retorno,
«riesgo_promedio»: riesgo_promedio
}
@router.get(«/global/kpi»)
def kpi_global():
total_users = len(investment_data)
total_portfolios = sum(len(c) for c in investment_data.values())
retorno_medio = round(sum(p[«retorno»] for u in investment_data.values() for p in u) / total_portfolios, 2)
return {
«usuarios_analizados»: total_users,
«carteras_totales»: total_portfolios,
«retorno_medio»: retorno_medio
}