#!/bin/bash

# Resolving the absolute path of the script directory
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# Configuration
BACKEND_DIR="$DIR/backend"
FRONTEND_DIR="$DIR/frontend"
LOG_DIR="$DIR/logs"
mkdir -p "$LOG_DIR"

# Add local node to PATH
export PATH="$BACKEND_DIR/node-dist/bin:$PATH"

echo "=================================================="
echo "   🚀 Starting Trainings24x7 Platform (Local)    "
echo "=================================================="

# --- 1. Start Backend ---
echo -n "Starting Backend Server... "
if [ -f "$DIR/.backend.pid" ]; then
    PID=$(cat "$DIR/.backend.pid")
    if ps -p $PID > /dev/null; then
        echo "Already running (PID: $PID)"
    else
        echo "PID file found but process dead. Cleaning up..."
        rm "$DIR/.backend.pid"
    fi
fi

if [ ! -f "$DIR/.backend.pid" ]; then
    cd "$BACKEND_DIR"
    if [ -f "venv/bin/activate" ]; then
        source venv/bin/activate
    fi
    # Use mock_server.py as per current usage
    nohup python3 mock_server.py > "$LOG_DIR/backend.log" 2>&1 &
    BACKEND_PID=$!
    echo $BACKEND_PID > "$DIR/.backend.pid"
    echo "Done (PID: $BACKEND_PID)"
    echo "   Logs: $LOG_DIR/backend.log"
fi

# --- 2. Start Frontend ---
echo -n "Starting Frontend... "
if [ -f "$DIR/.frontend.pid" ]; then
    PID=$(cat "$DIR/.frontend.pid")
    if ps -p $PID > /dev/null; then
        echo "Already running (PID: $PID)"
    else
        echo "PID file found but process dead. Cleaning up..."
        rm "$DIR/.frontend.pid"
    fi
fi

if [ ! -f "$DIR/.frontend.pid" ]; then
    cd "$FRONTEND_DIR"
    # nohup to keep running after terminal closes if invoked via GUI
    # HOST=0.0.0.0 allows access from other devices on the network
    nohup env HOST=0.0.0.0 yarn start > "$LOG_DIR/frontend.log" 2>&1 &
    FRONTEND_PID=$!
    echo $FRONTEND_PID > "$DIR/.frontend.pid"
    echo "Done (PID: $FRONTEND_PID)"
    echo "   Logs: $LOG_DIR/frontend.log"
    echo "   URL:  http://localhost:3000"
fi

# Get local IP for network access
LOCAL_IP=$(hostname -I | awk '{print $1}')

echo "=================================================="
echo "✅ All services started!"
echo "   Access Frontend: http://localhost:3000"
echo "   Network Access:  http://$LOCAL_IP:3000"
echo "   Access Backend:  http://localhost:8001/api/"
echo "   To stop services, run: ./stop.sh"
echo "=================================================="
