#!/bin/bash
set -e

# Function to start the demo
start_demo() {
  # Step 1: Check if .env file exists
  if [ -f ".env" ]; then
    echo ".env file already exists. Skipping creation."
  else
    # Step 2: Create `.env` file and set API keys
    if [ -z "$OPENAI_API_KEY" ]; then
      echo "Error: OPENAI_API_KEY environment variable is not set for the demo."
      exit 1
    fi
    if [ -z "$ANTHROPIC_API_KEY" ]; then
      echo "Warning: ANTHROPIC_API_KEY environment variable is not set. Anthropic features may not work."
    fi

    echo "Creating .env file..."
    echo "OPENAI_API_KEY=$OPENAI_API_KEY" > .env
    if [ -n "$ANTHROPIC_API_KEY" ]; then
      echo "ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY" >> .env
    fi
    echo ".env file created with API keys."
  fi

  # Step 3: Start Arch
  echo "Starting Arch with arch_config_with_aliases.yaml..."
  archgw up arch_config_with_aliases.yaml

  echo "\n\nArch started successfully."
  echo "Please run the following CURL command to test model alias routing. Additional instructions are in the README.md file. \n"
  echo "curl -sS -X POST \"http://localhost:12000/v1/chat/completions\" \
    -H \"Authorization: Bearer test-key\" \
    -H \"Content-Type: application/json\" \
    -d '{
      \"model\": \"arch.summarize.v1\",
      \"max_tokens\": 50,
      \"messages\": [
        { \"role\": \"user\",
          \"content\": \"Hello, please respond with exactly: Hello from alias arch.summarize.v1!\"
        }
      ]
    }' | jq ."
}

# Function to stop the demo
stop_demo() {
  # Step 2: Stop Arch
  echo "Stopping Arch..."
  archgw down
}

# Main script logic
if [ "$1" == "down" ]; then
  stop_demo
else
  # Default action is to bring the demo up
  start_demo
fi
