#!/usr/bin/env bash
set -e

ROOT="$(cd "$(dirname "$0")" && pwd)"
BACKEND="$ROOT/backend"
FRONTEND="$ROOT/frontend"

echo "══════════════════════════════════════════════════"
echo "  NMDPRA Tanker Loading Clearance System"
echo "══════════════════════════════════════════════════"

# ── Backend ────────────────────────────────────────────
cd "$BACKEND"

if [ ! -d ".venv" ]; then
  echo "[1/5] Creating Python virtual environment…"
  python3 -m venv .venv
fi

echo "[2/5] Installing backend dependencies…"
source .venv/bin/activate
pip install -q --upgrade pip
pip install -q fastapi "uvicorn[standard]" sqlalchemy "pydantic[email]" \
    "python-jose[cryptography]" "bcrypt>=4.0" python-multipart \
    reportlab openpyxl python-dateutil

echo "[3/5] Seeding database (first run only)…"
python seed.py

echo "[4/5] Starting backend on http://localhost:8000 …"
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 &
BACKEND_PID=$!
echo "  Backend PID: $BACKEND_PID"

# ── Frontend ───────────────────────────────────────────
cd "$FRONTEND"

if [ ! -d "node_modules" ]; then
  echo "[5/5] Installing frontend dependencies…"
  npm install
fi

echo "[5/5] Starting frontend on http://localhost:5173 …"
npm run dev &
FRONTEND_PID=$!
echo "  Frontend PID: $FRONTEND_PID"

# ── Done ───────────────────────────────────────────────
echo ""
echo "══════════════════════════════════════════════════"
echo "  App:      http://localhost:5173"
echo "  API:      http://localhost:8000"
echo "  API Docs: http://localhost:8000/docs"
echo ""
echo "  Default credentials:"
echo "    Super Admin: admin / Admin@NMDPRA2024"
echo "    Officer: officer1 / Officer@1234"
echo "══════════════════════════════════════════════════"
echo ""
echo "Press Ctrl+C to stop, or run ./stop.sh in another terminal."

trap 'echo ""; echo "Shutting down..."; kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit 0' INT TERM

wait $BACKEND_PID $FRONTEND_PID
