feat(whatsapp): enrutar todas las notificaciones y aprobaciones exclusivamente a Notificaciones Almeira sin intervenir en grupos de origen

This commit is contained in:
AI Bot 2026-08-24 14:08:23 -05:00
parent 6ef2c3dd19
commit c484a3a395

View File

@ -189,27 +189,18 @@ export async function POST(req: Request) {
return NextResponse.json({ success: true, message: 'Ignored empty message' }, { status: 200 });
}
// Descubrir si existe un grupo central de Notificaciones/Aprobaciones
const adminNotificationJid = await getNotificationGroupJid();
const destinationJid = adminNotificationJid || remoteJid;
const isCentralizedAdmin = Boolean(adminNotificationJid && adminNotificationJid !== remoteJid);
// Descubrir el grupo central de Notificaciones y Aprobaciones (Notificaciones Almeira)
const adminNotificationJid = await getNotificationGroupJid() || '120363428012905103@g.us';
const destinationJid = adminNotificationJid;
// Notificación de Progreso 1: Recepción inmediata (asíncrona / no bloqueante)
if (isCentralizedAdmin) {
sendWhatsAppMessage(
remoteJid,
`📥 *Comunicado Recibido*\n` +
`_Almeira Web • Redacción Editorial_\n\n` +
`Tu información ha sido recibida y remitida a la mesa editorial para su revisión.`
).catch(e => console.warn('[WhatsApp Webhook] No se pudo enviar acuse a la fuente:', e.message));
} else {
sendWhatsAppMessage(
remoteJid,
`📥 *Información Recibida*\n` +
`_Almeira Web • Asistente Editorial con IA_\n\n` +
`🤖 Iniciando análisis con IA y procesamiento de contenido...`
).catch(e => console.warn('[WhatsApp Webhook] No se pudo enviar notificación de inicio:', e.message));
}
// Notificación de Progreso 1: Enviada EXCLUSIVAMENTE a Notificaciones Almeira
sendWhatsAppMessage(
destinationJid,
`📥 *Nueva Información Recibida*\n` +
`📍 *Fuente:* ${filterResult.resolvedName}\n` +
`_Almeira Web • Asistente Editorial con IA_\n\n` +
`🤖 Iniciando análisis con IA, estructuración y optimización de contenido...`
).catch(e => console.warn('[WhatsApp Webhook] No se pudo enviar notificación de inicio:', e.message));
// Recolectamos todas las imágenes/multimedia candidatas (mensaje actual + lote reciente del mismo chat)
const candidateMediaList: Array<{ base64: string; mimeType: string }> = [];
@ -250,7 +241,7 @@ export async function POST(req: Request) {
: `📄 *Formato:* Publicación en texto`;
const progressMsg = `⚙️ *Procesando Publicación*\n`
+ (isCentralizedAdmin ? `📍 *Fuente:* ${filterResult.resolvedName}\n\n` : '\n')
+ `📍 *Fuente:* ${filterResult.resolvedName}\n\n`
+ `📌 *Titular:* ${parsed.titulo}\n`
+ `📂 *Categoría:* ${parsed.tipo.toUpperCase()}\n`
+ `${mediaStatus}\n\n`
@ -375,7 +366,7 @@ export async function POST(req: Request) {
}
const requestText = `🔔 *PUBLICACIÓN LISTA - SOLICITUD DE APROBACIÓN*\n\n`
+ (isCentralizedAdmin ? `📍 *Fuente:* ${filterResult.resolvedName}\n\n` : '')
+ `📍 *Fuente:* ${filterResult.resolvedName}\n\n`
+ `📌 *Titular:*\n${parsed.titulo}\n\n`
+ `🖼️ *Imagen Destacada:*\n${imageNotice}\n\n`
+ `📝 *Resumen:*\n${parsed.seo_descripcion}\n\n`