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

MODE="${1:---full}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DATA_DIR="$SCRIPT_DIR/data"
mkdir -p "$DATA_DIR"

SESSION_FILE="$HOME/.bw/session"
if [[ ! -f "$SESSION_FILE" ]]; then
  echo "[run_phase1] Missing $SESSION_FILE. Run bw-unlock first."
  exit 1
fi

BW_SESSION="$(cat "$SESSION_FILE")"
export BW_SESSION

if ! bw status --session "$BW_SESSION" | jq -e '.status == "unlocked"' >/dev/null 2>&1; then
  echo "[run_phase1] Bitwarden session locked/expired. Run bw-unlock, then retry."
  exit 1
fi

ITEM_JSON="$(bw get item "cotodigital" --session "$BW_SESSION")"
COTO_USER="$(jq -r '.login.username // empty' <<<"$ITEM_JSON")"
COTO_PASS="$(jq -r '.login.password // empty' <<<"$ITEM_JSON")"
unset ITEM_JSON

if [[ -z "$COTO_USER" || -z "$COTO_PASS" ]]; then
  echo "[run_phase1] Could not extract username/password from item: cotodigital"
  exit 1
fi

if [[ ! -d "$SCRIPT_DIR/node_modules" ]]; then
  echo "[run_phase1] Installing dependencies..."
  cd "$SCRIPT_DIR"
  npm install --silent
fi

cd "$SCRIPT_DIR"

echo "[run_phase1] Starting Phase 1 with mode=$MODE"
COTO_USER="$COTO_USER" COTO_PASS="$COTO_PASS" node "$SCRIPT_DIR/sniff_and_mine.js" "$MODE"
echo "[run_phase1] Done"
