FCF SCOUTINGContrato de integración
Volver al scouting

MVP DATA CONTRACT RC1 · v0.8.15.4.2

El HTML y sus fuentes

El frontend consume la API de producto del handoff, que consulta SQLite en modo de solo lectura. No consulta FCF durante el render ni modifica el modelo del backend. Las rutas están verificadas en src/lib/routes.ts y en el handler Python del paquete.

La versión publicada consulta la API de producto RC1 mediante el mismo dominio de la web. El servidor web delega las rutas permitidas a la API privada de Railway. SQLite conserva el snapshot RC1; los datos deportivos se actualizan mediante una nueva versión validada.

Correspondencia de bloques y rutas

BloqueRuta exacta RC1 · GETCampos utilizados
Próximo partido y rival/api/v1/scouting/next?team_key={team_key}&last_n=5current_team, next_match.fixture, opponent.summary
Clasificación y evoluciónIncluidas en scouting/next; también /api/v1/teams/{team_key}/standingsopponent.league · RC1 devuelve not_available. No se reconstruye.
Insights / jugador a vigilarIncluidos en scouting/nextinsights, featured_player · RC1 devuelve not_available. Los ejemplos solo existen en modo demo.
Últimos partidos del rival por contextoIncluidos en scouting/nextrecent_matches.by_context · Se muestra un contexto cada vez: competición, amistosos/pretemporada, fuera del grupo u otro contexto. Si no hay resultados de competición, se abre el contexto con partidos disponibles. Las métricas y las tarjetas corresponden a la selección.
Cuándo marca / encajaIncluido en scouting/next; también /api/v1/teams/{team_key}/goal-timinggoal_timing.last5_by_context.by_context.{contexto_seleccionado} · rows, coverage, acta_ids, temporal_contract
Plantilla del rivalIncluida en scouting/next; también /api/v1/teams/{team_key}/rostercurrent_roster.players · Apariciones, titularidades y goles observados del corpus.
Calendario de un equipo/api/v1/teams/{team_key}/schedule
/api/v1/teams/{team_key}/matches
Fixtures oficiales + resultados observados. Unión por acta_id, preservando partidos adicionales y contexto.
Detalle de partido/api/v1/matches/{acta_id}?team_key={perspective_team_key}match, appearances, goals, team_perspective, quality
Detalle de jugador/api/v1/players/{player_id}current_contexts, historical_contexts, availability · Histórico sin sumar contextos.
Partidos relacionados de un jugador/api/v1/teams/{context_team_key}/matches + detalle de cada actaSolo se incluye participación explícita en appearances con jugador y evidence_team_pk exactos. No se usa el índice histórico como aparición.

Mi equipo y navegación por entidades

La navegación global contiene Próximo partido, Mi equipo y Liga. Mi equipo se elige de forma explícita y se conserva mediante un adaptador de preferencias del navegador. La primera visita pide esta elección. Las estrellas de Liga → Equipos guardan accesos adicionales; abrir una ficha no cambia Mi equipo.

Cada ficha identifica su equipo en la URL y ofrece Resumen, Calendario, Partidos, Plantilla y Goal Timing. Liga tiene su propio grupo y ofrece Resumen, Clasificación, Jornadas y Equipos. Jornadas compone y deduplica los calendarios oficiales de los participantes por acta_id; los partidos fuera de esos calendarios permanecen en su contexto de equipo. La clasificación continúa no disponible.

Conexión de producción

El servicio web sirve estos HTML y delega las cinco rutas de consulta utilizadas por la aplicación a la API privada. config.json usa mode: "live" y baseUrl: ".". La dirección del backend se configura únicamente en el servidor mediante FCF_API_BASE_URL.

Para conectar otra instancia del mismo backend, configura mode: "live" y baseUrl en config.json. No introduzcas secretos en archivos del navegador. Una página servida por HTTPS necesita una API accesible por HTTPS o un proxy en el mismo origen; una API local HTTP no se conecta automáticamente desde la versión publicada.

Reglas que conserva la interfaz

Alcance de la copia publicada

Se conserva también la copia de entrega con respuestas de los 15 equipos, 176 actas y 2.041 fichas de jugadores referenciados por las actas o la plantilla. El modo de producción consulta la API y no cambia automáticamente a esa copia si falla una petición. Los payloads de goles se generan con el servicio v0.8.16 sobre la base RC1 sin modificar; api.js crea un modelo de presentación sin alterar datos de origen. Índice de fuentes y huella de SQLite.

Referencias FCF de ingestión

Estas rutas pertenecen a los extractores, no a las peticiones del HTML. Referencia: 02_FCF_DATA_SOURCES.md del freeze v0.7.99.

FuenteRuta FCF observada
Acta pública/ca/competicio/acta/{CODACTA}
Equipo/api/clubs/{club_id}/team/{category_id}
Histórico de jugador/api/competition/jugador-detail?jugadorId={player_id}&codgrupo={group_id}&temporada={season}
Competiciones/api/competition/competicions?disciplinaId={id}&temporada={season}
Grupos/api/competition/grupos?competicioId={competition_id}
Sanciones/api/competition/sanciones?grupId={group_id}&temporada={season} · Semántica separada del contador bruto de jugador.