"""Verify dates using raw createdAt, not just date string"""
import json, os
from datetime import datetime, timezone, timedelta

DATE_STR = datetime.now(timezone.utc).strftime("%Y-%m-%d")
OUT_DIR = "/home/kiro/trend-engine/trends/x/account-monitor"
CUTOFF = datetime.now(timezone.utc) - timedelta(days=3)

def parse_date(created_at):
    if not created_at:
        return None
    try:
        return datetime.strptime(created_at, "%a %b %d %H:%M:%S %z %Y")
    except:
        return None

all_ok = True
total_qual = 0
for chunk_num in [1, 2]:
    path = os.path.join(OUT_DIR, f"scan_results_{DATE_STR}_CHUNK{chunk_num}.json")
    with open(path) as f:
        data = json.load(f)
    for acc in data["accounts"]:
        for t in acc.get("tweets", []):
            raw = t.get("createdAt", "")
            dt = parse_date(raw)
            if dt:
                if dt < CUTOFF:
                    print(f"OUTSIDE: {acc['handle']} raw={raw[:60]} dt={dt.strftime('%Y-%m-%d %H:%M')}")
                    all_ok = False
                else:
                    pass
            else:
                if not raw:
                    print(f"MISSING createdAt: {acc['handle']}")
                    all_ok = False
        total_qual += acc.get("qualifying_count", 0)

if all_ok:
    print(f"All dates OK. Total qualifying: {total_qual}")
else:
    print("DATE FILTERS HAVE ISSUES")
