import type { ConversationSummary, DateGroup } from "./types"; export function groupByDate(conversations: ConversationSummary[]): DateGroup[] { const now = new Date(); const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); const yesterday = new Date(today.getTime() - 86400000); const lastWeek = new Date(today.getTime() - 7 * 86400000); const lastMonth = new Date(today.getTime() - 30 * 86400000); const groups: Map = new Map([ ["Today", []], ["Yesterday", []], ["Last 7 days", []], ["Last 30 days", []], ["Older", []], ]); for (const conv of conversations) { const date = new Date(conv.createdAt); const label = date >= today ? "Today" : date >= yesterday ? "Yesterday" : date >= lastWeek ? "Last 7 days" : date >= lastMonth ? "Last 30 days" : "Older"; groups.get(label)!.push(conv); } return Array.from(groups.entries()) .filter(([, items]) => items.length > 0) .map(([label, items]) => ({ label, conversations: items })); }