#!/bin/bash
set -e

echo "============================================"
echo "  Hunting Reversal Trading System"
echo "  Starting at $(date '+%Y-%m-%d %H:%M:%S')"
echo "  Run Mode: ${RUN_MODE:-full}"
echo "============================================"

cd /app

# 检查 .env 文件
if [ -f /app/.env ]; then
    echo "[entrypoint] Loading .env file"
    set -a
    source /app/.env
    set +a
else
    echo "[entrypoint] No .env file found, using config.py defaults"
fi

# 根据运行模式启动不同服务
case "${RUN_MODE:-full}" in
    trader-only)
        echo "[entrypoint] Starting trader only..."
        exec python my_trader.py
        ;;
    dashboard-only)
        echo "[entrypoint] Starting dashboard only on port ${DASHBOARD_PORT:-6060}..."
        exec python -m uvicorn dashboard.visual_platform:app --host 0.0.0.0 --port ${DASHBOARD_PORT:-6060}
        ;;
    liq-lab)
        echo "[entrypoint] Starting liquidation arbitrage dashboard on port 5050..."
        exec python strategies/liq_arb/dashboard.py
        ;;
    full|*)
        echo "[entrypoint] Starting trader + dashboard..."
        # 后台启动 dashboard
        python -m uvicorn dashboard.visual_platform:app \
            --host 0.0.0.0 --port ${DASHBOARD_PORT:-6060} \
            --log-level warning &
        DASH_PID=$!
        echo "[entrypoint] Dashboard PID: $DASH_PID"

        # 等待 dashboard 就绪
        sleep 3

        # 启动策略B test_lab（可选）
        if [ "${SKIP_LIQ_LAB:-false}" != "true" ]; then
            python strategies/liq_arb/test_lab.py &
            LIQ_PID=$!
            echo "[entrypoint] LiqLab PID: $LIQ_PID"
        fi

        # 前台启动主交易程序
        echo "[entrypoint] Starting main trader..."
        python my_trader.py
        ;;
esac
