diff --git a/server.js b/server.js index 35ca891..275ebe0 100644 --- a/server.js +++ b/server.js @@ -2013,12 +2013,25 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { // 👷 Solo asignamos técnico si hemos podido detectar el gremio; si no, // se queda sin gremio y sin operario para que el admin lo revise a mano. if (guildAsignado) { - let workerQ = await pool.query(` - SELECT u.id FROM users u - JOIN user_guilds ug ON u.id = ug.user_id - WHERE u.owner_id = $1 AND u.status = 'active' AND ug.guild_id = $2 - ORDER BY RANDOM() LIMIT 1 - `, [ownerId, guildAsignado]); + // 🟡 TEMPORAL (a petición del cliente, mientras se prueba el flujo de + // "escribe a un número"): en vez de repartir al azar entre los técnicos + // del gremio detectado, asignamos siempre al mismo técnico (Marco Rincón). + // Para quitar esto y volver al reparto aleatorio de siempre, basta con + // borrar este bloque "if (workerQ.rowCount === 0)" de aquí abajo. + const TECNICO_FIJO_TEMPORAL_PHONE = "+34687845940"; // Marco Rincón + let workerQ = await pool.query( + "SELECT id FROM users WHERE owner_id = $1 AND status = 'active' AND phone = $2 LIMIT 1", + [ownerId, TECNICO_FIJO_TEMPORAL_PHONE] + ); + if (workerQ.rowCount === 0) { + // Si no está en esta cuenta (p.ej. otra empresa), reparto normal por gremio. + workerQ = await pool.query(` + SELECT u.id FROM users u + JOIN user_guilds ug ON u.id = ug.user_id + WHERE u.owner_id = $1 AND u.status = 'active' AND ug.guild_id = $2 + ORDER BY RANDOM() LIMIT 1 + `, [ownerId, guildAsignado]); + } if (workerQ.rowCount === 0) { workerQ = await pool.query("SELECT id FROM users WHERE owner_id = $1 AND status = 'active' ORDER BY RANDOM() LIMIT 1", [ownerId]); }