You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
| # Ajustar la sincronización de grupos y miembros
 | |
| 
 | |
| Configuración por entorno
 | |
| - GROUP_SYNC_INTERVAL_MS: intervalo para refrescar lista de grupos activos.
 | |
| - GROUP_MEMBERS_SYNC_INTERVAL_MS: intervalo para refrescar miembros de grupos activos.
 | |
| - WHATSAPP_COMMUNITY_ID: comunidad a sincronizar desde Evolution API.
 | |
| 
 | |
| Operaciones comunes
 | |
| - Forzar refresco de caché de grupos:
 | |
|   - Llama `GroupSyncService.refreshActiveGroupsCache()` tras cambios relevantes.
 | |
| - Sincronizar miembros de un grupo concreto:
 | |
|   - `await GroupSyncService.syncMembersForGroup(groupId)`.
 | |
| - Comprobar frescura de snapshot:
 | |
|   - `GroupSyncService.isSnapshotFresh(groupId)` en función de `MAX_SNAPSHOT_AGE_MS`.
 | |
| 
 | |
| Puntos de extensión
 | |
| - API de origen:
 | |
|   - Implementa/ajusta `(GroupSyncService as any).fetchGroupMembersFromAPI(groupId)` si se mockea/inyecta.
 | |
| - Reconciliación:
 | |
|   - `reconcileGroupMembers(groupId, snapshot)` espera objetos `{ userId, isAdmin }`.
 | |
| 
 | |
| Buenas prácticas
 | |
| - No correr schedulers en test (el servicio ya lo evita).
 | |
| - Usa transacciones al actualizar tablas de grupos/miembros (ya integrado en upsert).
 |