Este documento te guía paso a paso para configurar y usar el sistema de predicciones para La Velada del Año VI.
Asegúrate de tener configuradas las variables de entorno para Turso:
TURSO_DATABASE_URL=libsql://your-database-url
TURSO_AUTH_TOKEN=your-auth-token
Ejecuta el comando para crear las tablas e inicializar los datos:
pnpm db:init
Este comando:
predictions para almacenar el conteo de votosuser_votes para tracking de usuariosComprueba que todo esté funcionando correctamente:
pnpm db:check
Este comando muestra:
Para probar la funcionalidad completa:
pnpm db:test
Este script simula:
| ID | Combate | Luchadores |
|---|---|---|
1-peereira-vs-rivaldios |
Peereira7 vs Rivaldios | peereira, rivaldios |
2-perxitaa-vs-gaspi |
Perxitaa vs Gaspi | perxitaa, gaspi |
3-abby-vs-roro |
Abby vs Roro | abby, roro |
4-andoni-vs-carlos |
Andoni vs Carlos Belcast | andoni, carlos |
5-alana-vs-arigeli |
Alana vs Ari Geli | alana, arigeli |
6-viruzz-vs-tomas |
Viruzz vs Tomas Mazza | viruzz, tomas |
7-grefg-vs-westcol |
The Grefg vs Westcol | grefg, westcol |
# Todas las predicciones
GET /api/predictions
# Predicciones de un combate específico
GET /api/predictions?combat_id=1-peereira-vs-rivaldios
Respuesta:
{
"combat_id": "1-peereira-vs-rivaldios",
"predictions": [
{
"fighter_id": "peereira",
"votes": 150,
"percentage": 60
},
{
"fighter_id": "rivaldios",
"votes": 100,
"percentage": 40
}
],
"total_votes": 250
}
POST /api/predictions
Content-Type: application/json
{
"combat_id": "1-peereira-vs-rivaldios",
"fighter_id": "peereira"
}
Requisitos:
combat_id y fighter_id válidosRespuesta:
{
"message": "Voto registrado correctamente",
"combat_id": "1-peereira-vs-rivaldios",
"fighter_id": "peereira",
"votes": 151
}
| Comando | Descripción |
|---|---|
pnpm db:init |
Crear tablas e inicializar datos |
pnpm db:check |
Verificar estado de la base de datos |
pnpm db:test |
Simular votos de prueba |
predictionsCREATE TABLE predictions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
combat_id TEXT NOT NULL,
fighter_id TEXT NOT NULL,
votes INTEGER DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE(combat_id, fighter_id)
);
user_votesCREATE TABLE user_votes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
combat_id TEXT NOT NULL,
fighter_id TEXT NOT NULL,
user_id TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE(combat_id, user_id)
);
# Exportar predicciones
sqlite3 your-database.db ".dump predictions user_votes" > backup.sql
-- Total de votos por combate
SELECT combat_id, SUM(votes) as total_votes
FROM predictions
GROUP BY combat_id
ORDER BY total_votes DESC;
-- Usuarios más activos
SELECT user_id, COUNT(*) as votes_count
FROM user_votes
GROUP BY user_id
ORDER BY votes_count DESC
LIMIT 10;
pnpm db:init
Verificar que el usuario tenga una sesión válida en auth-astro.
Verificar que el combat_id esté en la lista de combates disponibles.
Verificar que el fighter_id esté en la lista de luchadores disponibles.
Si encuentras algún problema:
pnpm db:check para diagnosticarDATABASE_PREDICTIONS.md¡El sistema de predicciones está listo para La Velada del Año VI! 🥊✨
$ claude mcp add la-velada-web-oficial \
-- python -m otcore.mcp_server <graph>