Files
cdc-project-management/NOTIFICACIONES_BRIEFS_NUEVOS.md
T

2.0 KiB

Notificaciones personales — CDC Brief / Nuevos

Actualización: 2026-08-12

Comportamiento

La navegación queda en este orden:

Todos → Activos → Cerrados → Nuevos → No aprobados

El apartado Nuevos muestra un badge rojo únicamente cuando el usuario autenticado tiene briefs pendientes que todavía no ha visto.

  • Cada usuario mantiene su propio estado de lectura en Supabase.
  • Entrar a Nuevos marca como vistos, para ese usuario, todos los briefs que estén pendientes en ese momento y el badge desaparece.
  • El hecho de que un usuario entre a Nuevos no borra la notificación de los demás usuarios.
  • Si otra persona aprueba o no aprueba un brief, deja de contar como pendiente para todos y los contadores se actualizan.
  • Un brief que llegue después vuelve a incrementar el badge de quienes todavía no lo hayan visto.
  • Mientras el usuario permanece en Nuevos, los briefs nuevos que aparecen en la cola visible se marcan como vistos para esa persona.

Supabase

El estado por usuario se guarda en:

public.tablero_cdc_brief_inbox_seen

RPCs nuevas:

  • tablero_cdc_get_unseen_brief_count()
  • tablero_cdc_mark_briefs_seen()

La solución usa una relación (user_id, inbox_id) y no un timestamp global, evitando que un brief que llegue concurrentemente quede marcado como visto por accidente.

SQL a ejecutar

  • Si todavía no se había ejecutado el SQL anterior de la bandeja: ejecutar supabase_cdc_brief_review_inbox.sql completo.
  • Si el SQL anterior ya estaba instalado: ejecutar solamente supabase_cdc_brief_unread_notifications.sql.

Producción / dist

Se conserva el bundle principal ya probado. El nuevo comportamiento de la bandeja se carga desde:

dist/assets/brief-review-inbox-v2.js

En el código fuente React la actualización usa Supabase Realtime y un fallback periódico. El módulo de dist conserva un refresco periódico y por foco/visibilidad para mantener compatibilidad con el build híbrido existente sin reemplazar el bundle principal.