const normalizeDate = (input) => typeof input?.toDate === "function" ? input.toDate() : new Date(input); const buildMonthKey = (timestamp) => { const date = normalizeDate(timestamp); const year = date.getUTCFullYear(); const month = String(date.getUTCMonth() + 1).padStart(2, "0"); return `${year}-${month}`; }; const buildPreviousMonthContext = (referenceDate) => { const current = referenceDate ? new Date(referenceDate) : new Date(); current.setUTCHours(0, 0, 0, 0); current.setUTCDate(1); const target = new Date(current); target.setUTCMonth(target.getUTCMonth() - 1); const year = target.getUTCFullYear(); const monthIndex = target.getUTCMonth(); const rangeStart = new Date(Date.UTC(year, monthIndex, 1, 0, 0, 0, 0)); const rangeEnd = new Date(Date.UTC(year, monthIndex + 1, 0, 23, 59, 59, 999)); const monthKey = buildMonthKey(rangeStart); return { year, month: monthIndex + 1, monthKey, rangeStart, rangeEnd, }; }; module.exports = { buildMonthKey, buildPreviousMonthContext, };