Add annual ranking snapshot storage
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
---
|
||||
id: TASK-167
|
||||
title: Add annual ranking snapshot storage
|
||||
status: done
|
||||
type: backend
|
||||
team: Arquitecto de Base de Datos
|
||||
supporting_teams:
|
||||
- Arquitecto Python
|
||||
- Backend Senior
|
||||
roadmap_item: foundation
|
||||
---
|
||||
|
||||
# TASK-167 - Add annual ranking snapshot storage
|
||||
|
||||
## Goal
|
||||
|
||||
Implement storage primitives to persist annual top 20 player ranking snapshots, following the schema plan in `docs/annual-ranking-snapshot-schema-plan.md`, without adding generator logic or annual ranking APIs yet.
|
||||
|
||||
## Context
|
||||
|
||||
`TASK-166-design-annual-ranking-snapshot-schema.md` defined the intended schema and constraints for:
|
||||
|
||||
- `rcon_annual_ranking_snapshots`
|
||||
- `rcon_annual_ranking_snapshot_items`
|
||||
|
||||
This task creates the storage layer so future yearly ranking generators can run on top of materialized RCON data in SQLite and PostgreSQL-compatible paths.
|
||||
|
||||
The implementation must stay backend-only and must not touch frontend assets.
|
||||
|
||||
## Validation Scope
|
||||
|
||||
The work intentionally stayed limited to backend storage schema initialization and migration compatibility.
|
||||
|
||||
## Outcome
|
||||
|
||||
### Archivos modificados
|
||||
|
||||
- backend/app/rcon_admin_log_materialization.py
|
||||
- backend/app/postgres_rcon_storage.py
|
||||
- backend/app/sqlite_to_postgres_migration.py
|
||||
- ai/tasks/done/TASK-167-add-annual-ranking-snapshot-storage.md
|
||||
|
||||
### Tablas nuevas añadidas
|
||||
|
||||
- rcon_annual_ranking_snapshots
|
||||
- rcon_annual_ranking_snapshot_items
|
||||
|
||||
### Compatibilidad SQLite/Postgres
|
||||
|
||||
- SQLite: tablas y restricciones añadidas en `initialize_rcon_materialized_storage()` (backend/app/rcon_admin_log_materialization.py).
|
||||
- PostgreSQL: tablas, índices y restricciones añadidas a `RCON_SCHEMA_SQL` (backend/app/postgres_rcon_storage.py).
|
||||
- Migración: tablas añadidas a `RCON_TABLES` y a `_sync_sequences()` en `backend/app/sqlite_to_postgres_migration.py`.
|
||||
|
||||
### Validaciones realizadas
|
||||
|
||||
- `python -m compileall backend/app`
|
||||
- `scripts/run-integration-tests.ps1`
|
||||
- Validación de inicialización de storage SQLite con base temporal y consulta en `sqlite_master` para ambas tablas.
|
||||
|
||||
### Limitaciones conocidas
|
||||
|
||||
- No se implementó generador anual ni endpoint de ranking anual.
|
||||
- No se tocó frontend.
|
||||
- No hay validación de runtime PostgreSQL porque no había entorno Postgres requerido por el alcance de esta task.
|
||||
|
||||
### Próximo task recomendado
|
||||
|
||||
- TASK-168 (Generador de snapshot anual top 20).
|
||||
|
||||
Reference in New Issue
Block a user