#!/bin/bash

# Check requirements for running the platform

# Get script directory and project root
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )"

cd "$PROJECT_ROOT"

echo "Checking requirements..."

ERRORS=0

# Check Go
if ! command -v go &> /dev/null; then
    echo "❌ Go is not installed"
    ERRORS=$((ERRORS + 1))
else
    GO_VERSION=$(go version | awk '{print $3}')
    echo "✅ Go installed: $GO_VERSION"
fi

# Check Node.js
if ! command -v node &> /dev/null; then
    echo "❌ Node.js is not installed"
    ERRORS=$((ERRORS + 1))
else
    NODE_VERSION=$(node --version)
    echo "✅ Node.js installed: $NODE_VERSION"
fi

# Check Docker
if ! command -v docker &> /dev/null; then
    echo "❌ Docker is not installed"
    ERRORS=$((ERRORS + 1))
else
    DOCKER_VERSION=$(docker --version)
    echo "✅ Docker installed: $DOCKER_VERSION"
fi

# Check Docker Compose
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
    echo "❌ Docker Compose is not installed"
    ERRORS=$((ERRORS + 1))
else
    echo "✅ Docker Compose installed"
fi

# Check if we're in the right directory
if [ ! -f "$PROJECT_ROOT/backend/go.mod" ] || [ ! -f "$PROJECT_ROOT/frontend/package.json" ]; then
    echo "❌ Not in the project root directory"
    echo "   Please run this script from the explorer-monorepo directory"
    echo "   Current directory: $PROJECT_ROOT"
    ERRORS=$((ERRORS + 1))
else
    echo "✅ In project root directory: $PROJECT_ROOT"
fi

if [ $ERRORS -eq 0 ]; then
    echo ""
    echo "✅ All requirements met!"
    exit 0
else
    echo ""
    echo "❌ $ERRORS requirement(s) missing"
    exit 1
fi

