{
  "pair_id": "pk-refactor-v1",
  "date": "2026-07-12",
  "screenshots": [
    {"name": "01_inbox_join.png", "url": "https://adsfb.namnan.co.th/app.html#/chats", "captures": "5 page chips including solar"},
    {"name": "02_inbox_solar_filter.png", "url": "https://adsfb.namnan.co.th/app.html#/chats (solar filter)", "captures": "3 solar conversations"},
    {"name": "03_campaign_solar.png", "url": "https://adsfb.namnan.co.th/campaign.html?id=120230799572200590", "captures": "Header shows solar page name + page_id 102601625742282"},
    {"name": "04_campaign_chats.png", "url": "https://adsfb.namnan.co.th/campaign.html?id=120230799572200590#chats", "captures": "Chats tab with solar conversations"}
  ],
  "api_evidence": [
    {"endpoint": "POST /admin/pages/sync", "file": "api/api-sync-result.json", "expected": "26 pages", "actual": "26 pages"},
    {"endpoint": "POST /admin/pages/sync-ad-promoted", "file": "api/api-sync-result.json", "expected": "59 pageIds", "actual": "59 pageIds"},
    {"endpoint": "GET /admin/pages/lookup?pageId=102601625742282", "file": "api/api-lookup-solar.json", "expected": "source=public, fan_count=2481", "actual": "source=public, fan_count=2481"},
    {"endpoint": "GET /admin/pages", "file": "api/api-pages-list.json", "expected": "63 pages", "actual": "63 pages"},
    {"endpoint": "GET /public/chat-inbox", "expected": "solar pageName correct", "actual": "solar pageName correct"}
  ],
  "db_evidence": [
    {"name": "pages table", "expected": "63 rows with PK=page_id", "actual": "63 rows"},
    {"name": "chat_inbox VIEW", "expected": "INNER JOIN pages p ON p.page_id = cm.page_id", "actual": "INNER JOIN pages p ON p.page_id = cm.page_id"}
  ],
  "consistency_checks": [
    {"check": "DB pages.page_name == Meta API name", "pass": true},
    {"check": "chat_inbox.page_name == pages.page_name (via JOIN)", "pass": true},
    {"check": "API /public/chat-inbox.pageName == pages.page_name", "pass": true},
    {"check": "UI inbox chip text == pages.page_name", "pass": true},
    {"check": "UI campaign header pageName == pages.page_name", "pass": true},
    {"check": "No hardcoded Thai strings in source code", "pass": true}
  ],
  "verdict": "PASS",
  "completeness": "100%",
  "consistency": "100%"
}
