Ir al contenido

Mensajería staff ↔ jugador

Mensajería interna bidireccional entre staff y jugador, con un hilo por jugador. El staff escribe desde el perfil del jugador, el jugador desde su portal. Cada mensaje del staff dispara automáticamente una push notification al teléfono del jugador. Badge de no-leídos del lado staff cuenta los mensajes entrantes pendientes.

  • Problema que resuelve: hoy el staff y los jugadores se comunican por WhatsApp / SMS, sin trazabilidad, mezclado con vida privada, y sin control de la org sobre el canal. CÉNIT centraliza ese hilo dentro de la app, con push notifications nativas, y deja el historial auditable.
  • Casos de uso típicos:
    • Avisar al jugador sobre cambio de horario o citación a médico.
    • Jugador reporta dolor al PF sin tener que llamar.
    • HoP responde a una duda del jugador sobre la planificación.
  • Planes que lo incluyen: todos los planes.
  • Diferenciador: integración nativa con PWA + push web (no requiere app store), todo dentro del sistema multi-tenant con aislamiento por organización — un staff de Org A no puede mandar mensajes a jugadores de Org B (validado en el servidor).
  • Quién puede ver hilos: todos los staff que tienen acceso al perfil del jugador (depende de la configuración de tabs visibles de la org y del rol). En la práctica HoP y Director Deportivo tienen acceso garantizado; fisio, médico, nutri y psi lo tienen si el tab está habilitado.
  • Quién recibe mensajes del jugador: si el jugador envía sin destinatario explícito, el sistema lo asigna al primer HoP o Director Deportivo de la org.
  • Seguridad cross-tenant: el servidor valida que el jugador destino pertenezca a la org del caller en cada envío.

Lado staff:

  1. Abrir perfil del jugador → tab Mensajes.
  2. Ver hilo con mensajes ordenados, badge de no-leídos arriba contando mensajes pendientes del jugador.
  3. Escribir y enviar.
  4. Automáticamente: el sistema dispara una push notification al jugador. Falla silenciosamente si el jugador no está suscrito al push.

Lado jugador:

  1. Push notification llega al teléfono (si tiene la PWA instalada y suscripción activa).
  2. Tap abre la pantalla de mensajes en el portal del jugador.
  3. El jugador responde — el mensaje queda asignado al primer HoP o Director Deportivo.
  • Push notifications requieren que el cliente CÉNIT tenga configuradas las claves VAPID para web push.
  • Suscripción push del jugador: se da de alta desde el portal del jugador con el botón “Activar notificaciones”.
  • “El jugador no recibe la push” — chequear que: 1) tenga la PWA instalada, 2) haya otorgado permiso de notificaciones, 3) haya tocado “Activar notificaciones” en su portal.
  • “Endpoint expirado” — si el navegador del jugador invalidó la suscripción, el sistema limpia el endpoint automáticamente.
  • “Mensaje vacío rechazado” — el contenido no puede estar vacío ni superar los 2000 caracteres.
  • “Mensaje crosseado entre orgs” — bloqueado en el servidor: si el jugador destino no pertenece a la org del caller, el envío se rechaza.
  • “Impersonation en solo lectura no manda” — durante una impersonación de superadmin en modo solo lectura, los envíos quedan bloqueados.

Player surface: SÍ. Es uno de los pocos módulos con superficie de jugador.

  • Pantalla: hilo simple en el portal del jugador, input de texto, history scroll.
  • Push notifications: automáticas en cada mensaje del staff. Título: “Mensaje de [nombre del staff]”. Body: primeros 80 caracteres del mensaje.
  • Badge: el portal del jugador puede mostrar badge de no-leídos.
  • Sin email: la mensajería no manda email; solo push + in-app.
  • PWA / Service Worker — el service worker maneja el evento push y muestra la notificación nativa.
  • Plantel — el tab Mensajes se renderiza desde el perfil del jugador.
  • Impersonation — los envíos quedan bloqueados durante impersonación en modo solo lectura.
  • Sin attachments — solo texto plano hasta 2000 caracteres.
  • Sin grupo / broadcast — no se puede mandar el mismo mensaje a N jugadores en un solo envío.
  • Auto-asignación a HoP / Director Deportivo: cuando el jugador escribe, el destinatario es el primer HoP o Director Deportivo encontrado. No hay UI para que el jugador elija a quién escribir.
  • Sin “leído por staff” — el sistema marca leído del lado staff cuando se leen mensajes del jugador. La inversa (jugador leyó mensaje del staff) no está implementada.
  • Sin retención ni archivado — los hilos crecen sin límite.