chore: import coordenador (subtree)
git-subtree-dir: coordenador git-subtree-mainline:facbe2e340git-subtree-split:ce7af94d55
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
// @requires normalize.js context.js hash.js
|
||||
const candidatosBase = $('Code - Normalizar Candidatos Base').all().map((item) => item.json);
|
||||
const contextRows = $input.all().map((item) => item.json);
|
||||
|
||||
function groupBy(rows, key) {
|
||||
const map = {};
|
||||
for (const row of rows) {
|
||||
const k = String(row[key]);
|
||||
if (!map[k]) map[k] = [];
|
||||
map[k].push(row);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
const followupRows = contextRows.filter((row) => row.tipo === 'followup');
|
||||
const taskRows = contextRows.filter((row) => row.tipo === 'task');
|
||||
|
||||
const followupsByTicket = groupBy(followupRows, 'tickets_id');
|
||||
const tasksByTicket = groupBy(taskRows, 'tickets_id');
|
||||
|
||||
return candidatosBase.map((base) => {
|
||||
const idKey = String(base.id);
|
||||
const followups = (followupsByTicket[idKey] || []).map((f) => ({ id: f.id, date: f.date, texto: f.texto }));
|
||||
const tasks = (tasksByTicket[idKey] || []).map((t) => ({ id: t.id, date: t.date, status: t.status, texto: t.texto }));
|
||||
const ticket = normalizeTicket(base, { followups, tasks });
|
||||
const contextHash = buildContextFingerprint(ticket);
|
||||
return { json: { ticket, contextHash } };
|
||||
});
|
||||
Reference in New Issue
Block a user