#!/usr/bin/env python3
"""Cek GA4 Realtime: apakah manual_event_CONTACT / qualify_lead sudah masuk?"""
import os
from datetime import date, timedelta
from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    os.path.expanduser("~/.hermes/gsc_service_account.json"),
    scopes=["https://www.googleapis.com/auth/analytics.readonly"])
data = build("analyticsdata", "v1beta", credentials=creds, cache_discovery=False)
PROP = "properties/478760195"

print("=== REALTIME (30 menit terakhir) ===")
r = data.properties().runRealtimeReport(property=PROP, body={
    "dimensions": [{"name": "eventName"}],
    "metrics": [{"name": "eventCount"}],
    "limit": 25}).execute()
rows = r.get("rows", [])
if not rows:
    print("  (tidak ada aktivitas realtime sama sekali)")
for x in rows:
    nama = x["dimensionValues"][0]["value"]
    jml = x["metricValues"][0]["value"]
    tanda = "  ← EVENT KONVERSI" if nama in ("manual_event_CONTACT", "qualify_lead", "purchase", "close_convert_lead") else ""
    print(f"  {nama:<34} {jml}{tanda}")

print("\n=== 28 hari terakhir: event konversi ===")
e = date.today() - timedelta(days=1)
s = (e - timedelta(days=27)).isoformat()
r = data.properties().runReport(property=PROP, body={
    "dateRanges": [{"startDate": s, "endDate": e.isoformat()}],
    "dimensions": [{"name": "eventName"}],
    "metrics": [{"name": "eventCount"}],
    "limit": 30}).execute()
for x in r.get("rows", []):
    nama = x["dimensionValues"][0]["value"]
    jml = x["metricValues"][0]["value"]
    tanda = "  ← KONVERSI" if nama in ("manual_event_CONTACT", "qualify_lead", "purchase", "close_convert_lead") else ""
    print(f"  {nama:<34} {jml}{tanda}")

print("\n=== halaman yang dikunjungi 30 menit terakhir ===")
r = data.properties().runRealtimeReport(property=PROP, body={
    "dimensions": [{"name": "unifiedPagePathScreen"}],
    "metrics": [{"name": "eventCount"}],
    "limit": 10}).execute()
for x in r.get("rows", []):
    print(f"  {x['dimensionValues'][0]['value'][:60]:<62} {x['metricValues'][0]['value']}")
