#!/bin/bash
# LuckySt Trading Stack — Start all services
set -e

ROOT="$(cd "$(dirname "$0")" && pwd)"

echo "Starting infrastructure (Postgres, Redis, RabbitMQ)..."
cd "$ROOT/backend" && docker-compose --profile dev up -d postgres redis rabbitmq

# Wait for health checks
echo "Waiting for services to be healthy..."
for i in {1..30}; do
    healthy=$(docker-compose ps 2>/dev/null | grep -c "healthy" || true)
    if [ "$healthy" -ge 3 ]; then
        break
    fi
    sleep 1
done
echo "Infrastructure ready."

echo "Starting backend..."
cd "$ROOT/backend" && nohup uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload > /tmp/backend.log 2>&1 &
echo "  PID $! → /tmp/backend.log"

echo "Starting Celery workers..."
cd "$ROOT/backend" && nohup celery -A app.tasks.trading_tasks.celery worker --loglevel=info --concurrency=4 > /tmp/celery.log 2>&1 &
echo "  PID $! → /tmp/celery.log"

echo "Starting Telegram bot..."
cd "$ROOT/agentic" && nohup python3 telegram_bot.py > /tmp/openclawd.log 2>&1 &
echo "  PID $! → /tmp/openclawd.log"

sleep 2
echo ""
echo "All services started."
echo "  Backend:  http://localhost:8000"
echo "  Logs:     tail -f /tmp/backend.log /tmp/celery.log /tmp/openclawd.log"
echo "  Stop:     ~/luckyst2/stop.sh"
