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

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PID_FILE="$SCRIPT_DIR/.pids"

echo "======================================"
echo "  NMDPR Petroleum Data Dashboard"
echo "======================================"

# Abort if already running
if [ -f "$PID_FILE" ]; then
  echo "⚠  Servers appear to be running (found .pids file)."
  echo "   Run ./stop.sh first, then retry."
  exit 1
fi

# Install backend deps
echo "[1/4] Installing backend dependencies..."
cd "$SCRIPT_DIR/backend"
npm install --silent

# Seed database if empty
echo "[2/4] Seeding database if needed..."
node db/seed.js

# Install frontend deps
echo "[3/4] Installing frontend dependencies..."
cd "$SCRIPT_DIR/frontend"
npm install --silent

echo "[4/4] Starting servers..."

# Start backend
cd "$SCRIPT_DIR/backend"
node server.js > "$SCRIPT_DIR/backend.log" 2>&1 &
BACKEND_PID=$!

# Start frontend
cd "$SCRIPT_DIR/frontend"
npm run dev > "$SCRIPT_DIR/frontend.log" 2>&1 &
FRONTEND_PID=$!

# Write PIDs
echo "$BACKEND_PID" > "$PID_FILE"
echo "$FRONTEND_PID" >> "$PID_FILE"

WLAN_IP=$(ip addr show wlan0 2>/dev/null | grep 'inet ' | awk '{print $2}' | cut -d/ -f1)
echo ""
echo "  Servers started:"
echo "  Backend API  → http://localhost:5000   (PID $BACKEND_PID)"
echo "  Frontend     → http://localhost:3000   (PID $FRONTEND_PID)"
if [ -n "$WLAN_IP" ]; then
  echo "  Network      → http://$WLAN_IP:3000"
fi
echo ""
echo "  Demo credentials:"
echo "  Super Admin:   admin@nmdpr.gov.ng          / Admin@2024"
echo "  Admin:         manager@nmdpr.gov.ng         / Admin@2024"
echo "  Station Admin: admin.nmdpr.ab.0001@petroleum.ng / Station@2024"
echo "  Station Mgr:   manager.nmdpr.ab.0001@petroleum.ng / Station@2024"
echo "  Attendant:     attendant.nmdpr.ab.0001@petroleum.ng / Station@2024"
echo ""
echo "  Logs: backend.log  frontend.log"
echo "  Stop: ./stop.sh"
echo "======================================"
