#!/bin/zsh
set -e

APP_DIR="$(cd "$(dirname "$0")/../Resources/app" && pwd)"
LOG_DIR="$HOME/Library/Logs/Pinterest AI Operator"
DATA_DIR="$HOME/Library/Application Support/Pinterest AI Operator"
mkdir -p "$LOG_DIR" "$DATA_DIR"

NODE_BIN="$(command -v node || true)"
if [ -z "$NODE_BIN" ]; then
  osascript -e 'display dialog "未找到 Node.js。请先安装 Node.js 20+，再重新打开 Pinterest AI Operator。" buttons {"OK"} default button "OK"'
  exit 1
fi

MAIN_PORT="${PINTEREST_AUTO_PORT:-3000}"
TRY_PORT="$MAIN_PORT"
while lsof -nP -iTCP:"$TRY_PORT" -sTCP:LISTEN >/dev/null 2>&1; do
  TRY_PORT=$((TRY_PORT + 1))
  if [ "$TRY_PORT" -gt $((MAIN_PORT + 20)) ]; then
    osascript -e 'display dialog "3000-3020 端口都被占用，请关闭旧的 Pinterest AI Operator 后重试。" buttons {"OK"} default button "OK"'
    exit 1
  fi
done
MAIN_PORT="$TRY_PORT"

cd "$APP_DIR"

if [ ! -f "$DATA_DIR/.env.local" ]; then
  cat > "$DATA_DIR/.env.local" <<EOF
PINTEREST_CLIENT_ID=
PINTEREST_CLIENT_SECRET=
PINTEREST_REDIRECT_URI=
PINTEREST_ACCESS_TOKEN=
OPENCLAW_SHARED_TOKEN=local-test-token
PINTEREST_AUTO_LICENSE_SERVER_URL=
PINTEREST_AUTO_REQUIRE_REMOTE_LICENSE=true
PINTEREST_AUTO_LICENSE_HEARTBEAT_TIMEOUT_MS=10000
PINTEREST_AUTO_UPDATE_MANIFEST_URL=
PINTEREST_AUTO_UPDATE_CHANNEL=stable
PINTEREST_AUTO_UPDATE_REQUIRE_SIGNATURE=true
PINTEREST_AUTO_UPDATE_PUBLIC_KEY_PATH=license-keys/update-public.pem
EOF
fi

if [ ! -f "$DATA_DIR/db.json" ]; then
  cp "packaging/default-db.json" "$DATA_DIR/db.json"
fi

set -a
. "$DATA_DIR/.env.local"
set +a

NEXT_DIST_DIR=.next \
PINTEREST_AUTO_DATA_DIR="$DATA_DIR" \
PORT="$MAIN_PORT" \
"$NODE_BIN" node_modules/next/dist/bin/next start > "$LOG_DIR/pinterest-auto.log" 2>&1 &
MAIN_PID=$!

sleep 3
open "http://127.0.0.1:${MAIN_PORT}"

osascript -e 'display dialog "Pinterest AI Operator 客户端已启动。\n\n主后台：http://127.0.0.1:'"$MAIN_PORT"'\n\n数据目录：'"$DATA_DIR"'\n\n远程授权请在商用授权区域填写 Web 云端授权地址和 License Key。" buttons {"OK"} default button "OK"'

wait "$MAIN_PID"
