2.3 KiB
2.3 KiB
TASK-037-historical-server-summary-api
Goal
Exponer una API de resumen histórico por servidor que sirva como base para futuros bloques de overview y comparativas.
Context
Además de rankings y partidas recientes, el proyecto necesitará una capa resumida de datos por servidor para poder mostrar actividad agregada y métricas de alto nivel sin recalcularlas en el frontend.
Steps
- Revisar el histórico persistido y las métricas disponibles de forma fiable.
- Diseñar un endpoint de resumen por servidor con métricas agregadas útiles. Incluir, si es viable:
- número de partidas históricas
- número de jugadores únicos
- kills agregadas
- mapas más jugados o conteo de mapas
- rango temporal cubierto
- Implementar el endpoint de forma clara y reutilizable.
- Documentar el endpoint en backend.
- No crear UI nueva en esta task.
- Al completar la implementación:
- dejar el repositorio consistente
- hacer commit
- hacer push al remoto si el entorno lo permite
Files to Read First
- AGENTS.md
- backend/README.md
- backend/app/routes.py
- backend/app/payloads.py
- backend/app/historical_storage.py
- backend/app/historical_models.py
- docs/historical-domain-model.md
Expected Files to Modify
- backend/app/routes.py
- backend/app/payloads.py
- backend/README.md
- opcionalmente nuevos módulos de query histórica
Constraints
- No usar A2S para resumen histórico.
- No crear UI en esta task.
- No hacer cambios destructivos.
- Mantener el trabajo centrado en una API agregada estable.
Validation
- Existe un endpoint de resumen histórico por servidor.
- El payload es claro y reutilizable.
- El endpoint se basa en el histórico propio persistido.
- Los cambios quedan committeados y se hace push al remoto si el entorno lo permite.
Change Budget
- Preferir menos de 5 archivos modificados o creados.
- Preferir menos de 220 líneas cambiadas.
Outcome
- Se expuso
GET /api/historical/server-summary. - El endpoint agrega partidas históricas, jugadores únicos, kills, conteo de mapas, mapas dominantes y rango temporal cubierto.
- La consulta se resuelve desde la persistencia histórica propia y queda documentada en
backend/README.md.
Validation Notes
python -m compileall app- comprobación local de payload con
build_historical_server_summary_payload(server_slug='comunidad-hispana-01')