#!/usr/bin/env bash
# Mock switch_mode.sh for testing without GPU
# Usage: bash switch_mode_mock.sh [inference|training]

set -euo pipefail

MODE="${1:-}"
REDIS_HOST="${REDIS_HOST:-localhost}"
REDIS_PORT="${REDIS_PORT:-6379}"
REDIS_DB="${REDIS_DB:-0}"

if [[ -z "$MODE" ]]; then
  echo "Usage: $0 [inference|training]"
  exit 1
fi

set_redis_mode() {
  local mode="$1"
  if command -v redis-cli &> /dev/null; then
    redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -n "$REDIS_DB" SET "llm:service:status" "$mode" > /dev/null 2>&1 || true
    echo "   Redis status set to: $mode"
  else
    # Fallback: use Python with venv
    VENV_PYTHON="/lsinfo/ai/hellotax_ai/base_platform/venv/bin/python3"
    if [[ -f "$VENV_PYTHON" ]]; then
      $VENV_PYTHON << EOF
import redis
r = redis.Redis(host='$REDIS_HOST', port=$REDIS_PORT, db=$REDIS_DB)
r.set('llm:service:status', '$mode')
EOF
      echo "   Redis status set to: $mode (via Python)"
    else
      echo "   Warning: redis-cli and venv python not found, skipping Redis update"
    fi
  fi
}

if [[ "$MODE" == "inference" ]]; then
  echo "=========================================="
  echo "Switching to INFERENCE MODE (MOCK)"
  echo "=========================================="
  set_redis_mode "switching"
  sleep 1
  echo ">> Mock: Stopping training services..."
  sleep 1
  echo ">> Mock: Starting inference services..."
  sleep 1
  set_redis_mode "inference"
  echo "=========================================="
  echo "Inference mode active (MOCK)"
  echo "=========================================="

elif [[ "$MODE" == "training" ]]; then
  echo "=========================================="
  echo "Switching to TRAINING MODE (MOCK)"
  echo "=========================================="
  set_redis_mode "switching"
  sleep 1
  echo ">> Mock: Stopping inference services..."
  sleep 1
  echo ">> Mock: Starting training services..."
  sleep 1
  set_redis_mode "training"
  echo "=========================================="
  echo "Training mode active (MOCK)"
  echo "=========================================="
else
  echo "Unknown mode: $MODE"
  exit 1
fi
