{
  "job": "site_connection_status",
  "ok": true,
  "checkedAt": "2026-07-20T20:10:52.054Z",
  "siteCount": 1,
  "summary": {
    "readySiteCount": 0,
    "blockedSiteCount": 1,
    "connectorCount": 7,
    "readyConnectorCount": 3,
    "blockedConnectorCount": 3
  },
  "sites": [
    {
      "id": "petvibess",
      "name": "PetVibess",
      "domain": "petvibess.com",
      "status": "active",
      "connectors": {
        "shopify": {
          "status": "ready",
          "label": "afp0a0-1i.myshopify.com",
          "missing": [],
          "action": "Bind Shopify storeDomain and tokenRef for orders, product data and approved publishing."
        },
        "gsc": {
          "status": "ready",
          "label": "sc-domain:petvibess.com",
          "missing": [],
          "action": "Bind GSC property and service account key reference for Search Analytics and URL Inspection."
        },
        "ga4": {
          "status": "blocked",
          "label": "填入GA4后台的纯数字Property ID",
          "missing": [
            "verified"
          ],
          "action": "AI/admin setup should verify GA4 diagnostics and bind a verified GA4 property for traffic, conversion and revenue data."
        },
        "trends": {
          "status": "ready",
          "label": "US",
          "missing": [],
          "action": "Configure Trends geo and keyword seeds for demand monitoring."
        },
        "ai": {
          "status": "blocked",
          "label": "no text AI / no video AI",
          "missing": [
            "textProvider",
            "textApiKeyRef",
            "videoProvider",
            "videoApiKeyRef"
          ],
          "action": "Configure text/image AI model providers and video generation provider references before automatic generation."
        },
        "competitors": {
          "status": "blocked",
          "label": "0 public competitor monitor(s)",
          "missing": [
            "competitors"
          ],
          "action": "Add public competitor URLs for product words and content-gap monitoring."
        },
        "video": {
          "status": "blocked",
          "label": "0 video reference(s)",
          "missing": [
            "defaultAvatarId",
            "avatarConsent"
          ],
          "action": "Configure digital avatar consent and reference safeguards before video production."
        },
        "social": {
          "status": "pending",
          "label": "Postiz not configured",
          "missing": [],
          "action": "Configure Postiz baseUrl and apiKeyRef before approved social posts can be dry-run checked."
        }
      },
      "summary": {
        "totalCount": 7,
        "readyCount": 3,
        "blockedCount": 3,
        "pendingCount": 1
      },
      "nextActions": [
        "AI/admin setup should verify GA4 diagnostics and bind a verified GA4 property for traffic, conversion and revenue data.",
        "Add public competitor URLs for product words and content-gap monitoring.",
        "Configure digital avatar consent and reference safeguards before video production.",
        "Configure Postiz baseUrl and apiKeyRef before approved social posts can be dry-run checked."
      ]
    }
  ]
}