#!/usr/bin/env python3
"""Quick status + spot check after map build."""
import json, sqlite3
from pathlib import Path

print("=== AVERYARTJOURNEY STATUS (post-map) ===\n")

here = Path("/Users/brians/Documents/AveryArt")
import sys
sys.path.insert(0, str(here))
from certification_spine import CertificationEngine, DEFAULT_DB

eng = CertificationEngine(DEFAULT_DB)
conn = sqlite3.connect(DEFAULT_DB)
total = conn.execute("SELECT COUNT(*) FROM facts").fetchone()[0]
galleries = conn.execute("SELECT COUNT(DISTINCT gallery_id) FROM facts").fetchone()[0]
t4leak = conn.execute("SELECT COUNT(*) FROM facts WHERE source_tier=4 AND state='CERTIFIED'").fetchone()[0]
conn.close()
print(f"Certification spine: {total} facts | {galleries} galleries | T4 leaked={t4leak}")

pb = here / "avery_pipeline.db"
if pb.exists():
    conn = sqlite3.connect(pb)
    tp = conn.execute("SELECT COUNT(*) FROM packets").fetchone()[0]
    u = conn.execute("SELECT COUNT(*) FROM packets WHERE column='Universe'").fetchone()[0]
    c = conn.execute("SELECT COUNT(*) FROM packets WHERE column='Closed'").fetchone()[0]
    conn.close()
    print(f"Pipeline: {tp} packets | {u} Universe | {c} Closed")

deck = here / "deck_data.json"
if deck.exists():
    cards = json.loads(deck.read_text())
    print(f"Drill deck: {len(cards)} cards in deck_data.json")

profdir = Path("/Users/brians/.hermes/profiles/")
profs = [p.name for p in profdir.iterdir() if p.is_dir()]
target = ["scout","ledger","curator","cartographer","coach","closer","athena"]
have = [p for p in target if p in profs]
print(f"Profiles: {len(have)}/7 — {', '.join(have)}")

# Map
m = here / "map_data.json"
if m.exists():
    d = json.loads(m.read_text())
    g = d["galleries"]
    pins = {
        "solid": sum(1 for x in g if x["pin_style"]=="solid"),
        "outline": sum(1 for x in g if x["pin_style"]=="outline"),
        "hollow": sum(1 for x in g if x["pin_style"]=="hollow"),
        "grey": sum(1 for x in g if x["pin_style"]=="grey"),
        "struck": sum(1 for x in g if x["pin_style"]=="struck"),
        "closed_hidden": sum(1 for x in g if x.get("map_visible")==False),
    }
    print(f"\nMap data: {len(g)} galleries")
    print(f"  Pins: solid={pins['solid']} outline={pins['outline']} hollow={pins['hollow']} grey={pins['grey']} struck={pins['struck']} (closed hidden={pins['closed_hidden']})")
    print(f"  Advisory sections: {list(d['advisory'].keys())}")
    print(f"  Approachable sections: {list(d['approachable'].keys())}")
    print(f"  Routes: {len(d['routes'])}")
    print(f"  Field capture fields: {len(d['field_capture']['fields'])}")

    # Spot check a few galleries
    print("\n  Spot checks:")
    for gid in ["findlay","lik","eden","mnuchin","sothebys_salon","ortuzar"]:
        found = [x for x in g if x["gallery_id"]==gid]
        if found:
            f = found[0]
            print(f"    {f['name']:<35} pin={f['pin_style']:<8} tier={f['tier']:<10} ts={f['certification']['trading_state']}")
        else:
            print(f"    {gid:<35} NOT IN MAP DATA")
    print()

# Files
print("── Deliverables ──")
for f in ["certification_spine.py","ingest_research.py","ingest_women.py","pipeline_board.py",
          "gallery_map_data.py","map.html","map_data.json","deck_data.json",
          "avery_certification.db","avery_pipeline.db",
          "parse_deck.py","verify_spine.py","quick_status.py"]:
    fp = here / f
    if fp.exists():
        print(f"  ✓ {f} ({fp.stat().st_size//1024}KB)")
    else:
        print(f"  ✗ {f} — MISSING")
