#!/usr/bin/env bash
set -euo pipefail

PROMPT_REPO="${PROMPT_REPO:-/Users/jack/code/010-cpt/008-zhct/zhctprompt}"
STORE_REPO="${STORE_REPO:-/Users/jack/code/010-cpt/008-zhct/zhct/zhctproject/store}"
BASE_URL="${BASE_URL:-http://127.0.0.1}"

echo "== qiwei callback investigation =="
echo "prompt repo: ${PROMPT_REPO}"
echo "store repo:  ${STORE_REPO}"

if [[ ! -d "${STORE_REPO}/.git" ]]; then
  echo "ERROR: STORE_REPO is not a git repo: ${STORE_REPO}" >&2
  exit 2
fi

cd "${STORE_REPO}"

echo
echo "== git context =="
git rev-parse --abbrev-ref HEAD
git rev-parse --short HEAD
git status --short -uno | sed -n '1,40p' || true

echo
echo "== controller existence =="
if [[ -f application/api/controller/Qiwei.php ]]; then
  echo "application/api/controller/Qiwei.php: exists"
  php -l application/api/controller/Qiwei.php
else
  echo "application/api/controller/Qiwei.php: missing"
fi

echo
echo "== key route/config evidence =="
php -r 'echo file_exists("application/api/controller/Qiwei.php") ? "Qiwei exists\n" : "Qiwei missing\n";'
rg -n "'url_route_on'|'url_route_must'|'route_config_file'|Route::.*qiwei|api/qiwei" application/config.php application/route.php || true

echo
echo "== API contract evidence =="
rg -n "\"/api/qiwei/callback\"|\"/api/qiwei/callbackQW\"|企业微信服务商数据回调|企业微信数据回调" docs/apifox prompt/apifox 2>/dev/null || true

echo
echo "== deployed-branch controller check =="
for ref in HEAD origin/master origin/release origin/master_saidi origin/master_jc origin/master_zywxb origin/master_xinwuqu origin/master_gfkj origin/master_haikai origin/master_xkbg; do
  printf "%s " "${ref}"
  if git cat-file -e "${ref}:application/api/controller/Qiwei.php" 2>/dev/null; then
    echo "exists"
  else
    echo "missing"
  fi
done

echo
echo "== cross-repo qiwei references =="
rg -n -i "qiwei|企业微信服务商数据回调|企业微信数据回调" \
  "${STORE_REPO}/application" \
  "${STORE_REPO}/docs/apifox" \
  "${PROMPT_REPO}/work_store/apifox/2026-05-08-smart-canteen/derived/api-index.tsv" \
  "${PROMPT_REPO}/work_store/apifox/2026-05-08-queue-execution/outputs/not-automatable-interfaces.tsv" 2>/dev/null || true

if [[ "${RUN_HTTP:-0}" == "1" ]]; then
  echo
  echo "== optional local HTTP probe =="
  echo "Only use BASE_URL for local/test environments, never production."
  curl -i -sS "${BASE_URL}/index.php?s=/api/qiwei/callback&corpid=test&msg_signature=test&timestamp=1&nonce=1&echostr=test" | sed -n '1,80p'
fi

echo
echo "done"
