#!/usr/bin/env python3
"""TSLaw: bandingkan permintaan nyata untuk keluarga kata kunci 'law firm / firma hukum / konsultan hukum / pengacara'."""
import os, re
from google.oauth2 import service_account
from googleapiclient.discovery import build

gsc = build("searchconsole", "v1", credentials=service_account.Credentials.from_service_account_file(
    os.path.expanduser("~/.hermes/gsc_service_account.json"),
    scopes=["https://www.googleapis.com/auth/webmasters.readonly"]), cache_discovery=False)

for label, mulai, akhir in (("90 hari", "2026-06-28", "2026-09-25"), ("28 hari", "2026-08-29", "2026-09-25")):
    rows = gsc.searchanalytics().query(siteUrl="https://www.tslaw.id/", body={
        "startDate": mulai, "endDate": akhir, "dimensions": ["query"], "rowLimit": 5000}).execute().get("rows", [])
    print(f"\n================ {label} ================")
    KEL = {"law firm": r"law firm", "firma hukum": r"firma hukum", "konsultan hukum": r"konsultan hukum",
           "pengacara": r"pengacara", "advokat": r"advokat", "jasa hukum": r"jasa hukum",
           "layanan hukum": r"layanan hukum", "surabaya (semua)": r"surabaya", "merek (non-brand belanja)": r"merek"}
    for nama, pola in KEL.items():
        cocok = [r for r in rows if re.search(pola, r["keys"][0], re.I)]
        if not cocok:
            print(f"   {nama:<26} 0 query")
            continue
        imp = sum(r["impressions"] for r in cocok); klik = sum(r["clicks"] for r in cocok)
        pos = min(r["position"] for r in cocok)
        print(f"   {nama:<26} {len(cocok):>2} query | {imp:>4} impresi | {klik:>2} klik | posisi terbaik {round(pos,1)}")
        for r in sorted(cocok, key=lambda x: -x["impressions"])[:3]:
            print(f"        imp {r['impressions']:>3} | pos {round(r['position'],1):>5} | {r['keys'][0][:52]}")
