Files
2026-04-01 21:59:13 +08:00

45 lines
954 B
JavaScript

const { getWeekKey } = require("./io");
const DEFAULT_KEYS = [
"leads_processed",
"qualified_count",
"drafted_count",
"reply_drafts_count",
"replied_count",
"rejected_count",
"score3_conversion_count"
];
/**
* Ensures weeklyMetrics exists, resets when ISO week changes, backfills missing counters.
*/
function ensureWeekMetrics(state) {
const weekKey = getWeekKey();
const wm = state.weeklyMetrics;
if (!wm || wm.weekKey !== weekKey) {
state.weeklyMetrics = {
weekKey,
leads_processed: 0,
qualified_count: 0,
drafted_count: 0,
reply_drafts_count: 0,
replied_count: 0,
rejected_count: 0,
score3_conversion_count: 0
};
return state;
}
DEFAULT_KEYS.forEach((k) => {
if (typeof state.weeklyMetrics[k] !== "number" || Number.isNaN(state.weeklyMetrics[k])) {
state.weeklyMetrics[k] = 0;
}
});
return state;
}
module.exports = {
ensureWeekMetrics
};