|
|
|
|
@ -191,6 +191,46 @@ export class GroupSyncService {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const communityId = env.WHATSAPP_COMMUNITY_ID;
|
|
|
|
|
if (!communityId) {
|
|
|
|
|
console.log('ℹ️ WHATSAPP_COMMUNITY_ID no definido - mostrando comunidades disponibles');
|
|
|
|
|
try {
|
|
|
|
|
const allGroups = await this.fetchGroupsFromAPI();
|
|
|
|
|
const communities = allGroups.filter(g => g.linkedParent);
|
|
|
|
|
|
|
|
|
|
if (communities.length === 0) {
|
|
|
|
|
console.log('❌ No se encontraron comunidades (grupos con linkedParent)');
|
|
|
|
|
} else {
|
|
|
|
|
console.log('\n📋 Comunidades disponibles (copia el ID completo):');
|
|
|
|
|
console.log('='.repeat(80));
|
|
|
|
|
console.log('Nombre'.padEnd(30), 'ID Comunidad');
|
|
|
|
|
console.log('-'.repeat(30), '-'.repeat(48));
|
|
|
|
|
communities.forEach(c => {
|
|
|
|
|
console.log(c.subject.padEnd(30), c.id);
|
|
|
|
|
});
|
|
|
|
|
console.log('='.repeat(80));
|
|
|
|
|
console.log('⚠️ ATENCIÓN: Estos IDs son sensibles. No los compartas públicamente.');
|
|
|
|
|
console.log(`\n⏳ El proceso terminará automáticamente en 120 segundos...`);
|
|
|
|
|
|
|
|
|
|
// Cuenta regresiva de 120 segundos
|
|
|
|
|
await new Promise(resolve => {
|
|
|
|
|
setTimeout(resolve, 120000);
|
|
|
|
|
const interval = setInterval(() => {
|
|
|
|
|
const remaining = Math.ceil((120000 - (Date.now() - startTime)) / 1000);
|
|
|
|
|
process.stdout.write(`\r⏳ Tiempo restante: ${remaining}s `);
|
|
|
|
|
}, 1000);
|
|
|
|
|
const startTime = Date.now();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
console.log('\n\n✅ Listado completado. Por favor configura WHATSAPP_COMMUNITY_ID');
|
|
|
|
|
}
|
|
|
|
|
process.exit(0);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('❌ Error al obtener comunidades:', error instanceof Error ? error.message : error);
|
|
|
|
|
process.exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log('⚠️ No groups found in database - performing initial sync');
|
|
|
|
|
try {
|
|
|
|
|
const { added } = await this.syncGroups();
|
|
|
|
|
|