/** Format a date for display in survey tables. */
export function formatDate(date: Date | string | null | undefined): string {
  if (!date) return "—";
  const d = typeof date === "string" ? new Date(date) : date;
  return d.toLocaleDateString("en-US", {
    month: "short",
    day: "numeric",
    year: "numeric",
  });
}

/** Format seconds as "Xm Ys" for dashboard stats. */
export function formatDuration(seconds: number | null | undefined): string {
  if (!seconds || seconds <= 0) return "—";
  const m = Math.floor(seconds / 60);
  const s = seconds % 60;
  if (m === 0) return `${s}s`;
  return `${m}m ${s}s`;
}

/** Format a number with locale separators. */
export function formatNumber(n: number): string {
  return n.toLocaleString("en-US");
}

/** Format a percentage with one decimal. */
export function formatPercent(n: number): string {
  return `${n.toFixed(1)}%`;
}
