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

if [ -n "${CI:-}" ]; then echo "CI detected; skipping local e2e."; exit 0; fi
if [ -n "${SKIP_E2E:-}" ]; then echo "SKIP_E2E set; skipping local e2e."; exit 0; fi

SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)"

if command -v docker >/dev/null 2>&1; then RUNTIME=docker
elif command -v podman >/dev/null 2>&1; then RUNTIME=podman
else echo "Docker or Podman is required for local e2e." >&2; exit 1; fi

container_running() {
  "$RUNTIME" ps --format '{{.Names}}' | grep -qx "$1"
}

if container_running spoon-local-postgres \
  && container_running spoon-local-convex \
  && container_running spoon-local-convex-dashboard; then
  SHOULD_STOP_STACK=false
else
  SHOULD_STOP_STACK=true
fi

cleanup() {
  if [ "$SHOULD_STOP_STACK" = true ]; then
    "$RUNTIME" rm -f \
      spoon-local-convex-dashboard \
      spoon-local-convex \
      spoon-local-postgres \
      >/dev/null 2>&1 || true
  fi
}
trap cleanup EXIT

if [ "$SHOULD_STOP_STACK" = true ]; then
  bash "$ROOT_DIR/scripts/db/up"
fi

curl -fs "http://localhost:${BACKEND_PORT:-3210}/version" >/dev/null
curl -fs "http://localhost:${DASHBOARD_PORT:-6791}" >/dev/null

echo "Local-stack smoke checks passed; no seeded browser flow is configured."
