#!/bin/bash
# Start both backend (FastAPI) and frontend (Next.js). Press Ctrl+C to stop both.

set -e
ROOT="$(cd "$(dirname "$0")" && pwd)"
cd "$ROOT"

# Check venv
if [ ! -f "$ROOT/venv/bin/uvicorn" ]; then
  echo "❌ Backend venv not found. Run: python3 -m venv venv && pip install -r requirements.txt"
  exit 1
fi

# Check frontend deps
if [ ! -d "$ROOT/plagis-nextjs/node_modules" ]; then
  echo "❌ Frontend deps not installed. Run: cd plagis-nextjs && npm install"
  exit 1
fi

export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}$ROOT"
export CONTENTSTORE_BASE="${CONTENTSTORE_BASE:-$HOME/aumentum_contentstore}"

# Load .env into this shell so uvicorn (and its reload worker) inherit DB_PASSWORD etc.
if [ -f "$ROOT/.env" ]; then
  set -a
  # shellcheck source=/dev/null
  . "$ROOT/.env"
  set +a
fi

cleanup() {
  echo ""
  echo "🛑 Stopping backend and frontend..."
  [ -n "$BACKEND_PID" ] && kill "$BACKEND_PID" 2>/dev/null || true
  [ -n "$FRONTEND_PID" ] && kill "$FRONTEND_PID" 2>/dev/null || true
  exit 0
}
trap cleanup SIGINT SIGTERM

echo "🚀 Starting backend (FastAPI :8001)..."
"$ROOT/venv/bin/uvicorn" backend.app.main:app --host 0.0.0.0 --port 8001 --reload &
BACKEND_PID=$!

echo "🚀 Starting frontend (Next.js :3000)..."
(cd "$ROOT/plagis-nextjs" && npm run dev) &
FRONTEND_PID=$!

echo ""
echo "✅ Backend:  http://localhost:8001"
echo "✅ Frontend: http://localhost:3000"
echo ""
echo "Press Ctrl+C to stop both."
echo ""

wait
