Ir al contenido

Wellness

Wellness centraliza el reporte diario subjetivo del jugador: Hooper (sueño, fatiga, estrés, dolor muscular, 1–7 cada ítem), RPE del último entrenamiento (1–10) y mapa de dolor corporal. El staff lo usa para anticipar fatiga acumulada y ajustar la sesión; el Risk Advisor lo consume directo como uno de sus pesos principales.

  • Problema: los clubs cargan wellness en Google Forms o Excel y pierden el cruce con carga GPS y lesiones. CÉNIT lo unifica con el resto del legajo del jugador.
  • Casos de uso: check-in pre-entrenamiento desde el celular, follow-up post-partido, alerta automática al PF cuando Hooper o RPE pasan threshold.
  • Planes: disponible en esencial, pro y enterprise.
  • Diferenciador: dos flujos de captura — PWA con login + push (jugadores con cuenta) y link tokenizado por WhatsApp (sin fricción, retrocompat clientes legacy).
  • /dashboard/wellness — todos los roles del staff ven el módulo.
  • /dashboard/wellness/linkssolo hop y dir (links tokenizados son sensibles: dan acceso sin login).
  • Cargar wellness por jugadorWellness → tarjeta del jugador → formulario. El staff puede cargar en nombre del jugador cuando éste no completa.
  • Distribuir links wellness (legacy)Wellness → Links. Cada jugador tiene su QR + URL única (/w/{token}). Se comparte por WhatsApp o se imprime para el vestuario.
  • Ver tendencias semanales — pestañas “Esta semana / Semana pasada” + heatmap de cumplimiento por jugador.
  • organizations.compliance_wellness_thr y compliance_rpe_thr (default 70%) — umbral debajo del cual la tarjeta de cumplimiento se pone en amarillo.
  • Hooper > risk_hooper_warn (default 18 → ≥19) o RPE alto generan entrada amarilla / roja en el Risk Advisor.
  • Si el jugador tiene cuenta y push activado, recibe notificación cuando el staff le manda mensaje en respuesta a su check-in.

Dos caminos según si el club adoptó la PWA o sigue en links:

  • PWA (recomendado, clubs nuevos): abre /player instalado, toca “Wellness”, elige los 4 valores Hooper en una escala visual 1–7, el RPE con etiquetas semánticas (“muy fácil” … “máximo esfuerzo”) y marca zonas en un cuerpo humano frontal/posterior. Envía y recibe push si hay respuesta del cuerpo técnico.
  • Link tokenizado (/w/{token}): mismo formulario, sin login. El token tiene wellness_token_expires_at opcional para rotación; si expiró, devuelve 404. Se mantiene para Nacional y clubs con plantel masivo aún sin app.
  • Hooper Index = sleep_quality + fatigue + stress + muscle_soreness (rango 4–28; thresholds default risk_hooper_ok=14 y risk_hooper_warn=18 → ≤14 verde, 15–18 amarillo, ≥19 rojo; configurables por org en Settings → Riesgos, McLean 2010).
  • RPE — Borg CR-10 estándar, valor crudo 1–10.
  • Zonas de dolor — conteo de puntos marcados sobre el body map frontal (18 zonas) + posterior (12 zonas).
  • wellness_entries — registro diario (sleep_quality, fatigue, stress, muscle_soreness, rpe, hooper_index).
  • body_pain_entries — una fila por zona marcada en el registro.
  • players.wellness_token (+ wellness_token_expires_at) — token único generado por trigger.
  • Risk Advisor — Hooper, conteo de zonas de dolor y RPE alto alimentan el score.
  • Carga GPS — el sRPE de la sesión (RPE × min) funciona como proxy de carga cuando no hay GPS disponible. Ver glosario para la fórmula.
  • Dashboard — KPIs de cumplimiento semanal en la home.
  • PWA / push — envío automático al jugador cuando el staff responde (staff-message-thread.tsx).
  • El flujo tokenizado no tiene auth — quien tenga el link puede cargar. Aceptable para wellness (no es dato sensible), pero los links son rotables manualmente desde la tabla players.
  • Strings del form tokenizado están hardcodeadas en español — no hay i18n en /w/{token} (uso simple, decisión consciente).
  • Los links se mantienen como retrocompat para Nacional; clubs nuevos van directo al flujo PWA.