// src/lib/gsc/pages.ts — réduction pure query → page qui ranke.
import type { GscQueryPageRow } from "./types";

/** Par query (lowercase), la page au max de clics (tie-break : impressions). */
export function topPageByQuery(rows: GscQueryPageRow[]): Map<string, string> {
  const best = new Map<string, GscQueryPageRow>();
  for (const r of rows) {
    const key = r.query.toLowerCase();
    const cur = best.get(key);
    if (
      !cur ||
      r.clicks > cur.clicks ||
      (r.clicks === cur.clicks && r.impressions > cur.impressions)
    ) {
      best.set(key, r);
    }
  }
  return new Map([...best].map(([k, v]) => [k, v.page]));
}
