#!/bin/bash
# ============================================================
#  SignalPro Trading Bot - Python Backend Deploy Script
#  Run this via SSH on your cPanel server
# ============================================================

set -e

BOLD='\033[1m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

echo -e "${BOLD}🚀 SignalPro Python Backend Deployment${NC}"
echo "======================================="

# ── 1. Check Python ──────────────────────────────────────────
echo -e "${YELLOW}[1/7] Checking Python version...${NC}"
python3 --version || { echo -e "${RED}Python3 not found. Install via cPanel > Software > Python.${NC}"; exit 1; }

# ── 2. Create virtualenv ──────────────────────────────────────
echo -e "${YELLOW}[2/7] Creating virtual environment...${NC}"
DEPLOY_DIR="$HOME/trading_bot_api"
mkdir -p "$DEPLOY_DIR"
cd "$DEPLOY_DIR"
python3 -m venv venv
source venv/bin/activate

# ── 3. Install dependencies ───────────────────────────────────
echo -e "${YELLOW}[3/7] Installing Python dependencies...${NC}"
pip install --upgrade pip
pip install fastapi==0.109.0 uvicorn[standard]==0.27.0 PyJWT==2.8.0 \
    bcrypt==4.1.2 aiosqlite==0.19.0 pydantic==2.5.3 \
    python-multipart==0.0.6 websockets==12.0 httpx==0.26.0 passlib[bcrypt]==1.7.4

# ── 4. Install pyquotex ───────────────────────────────────────
echo -e "${YELLOW}[4/7] Installing pyquotex...${NC}"
pip install git+https://github.com/cleitonleonel/pyquotex.git || echo -e "${YELLOW}⚠️  pyquotex install failed - bot will run in DEMO mode${NC}"

# ── 5. Copy files ─────────────────────────────────────────────
echo -e "${YELLOW}[5/7] Copying application files...${NC}"
# Files should already be in $DEPLOY_DIR
cp .env.example .env 2>/dev/null || true

echo -e "${YELLOW}⚠️  IMPORTANT: Edit .env file now:${NC}"
echo "   nano $DEPLOY_DIR/.env"
echo "   Set JWT_SECRET to a random string!"

# ── 6. Create systemd/cPanel process ────────────────────────
echo -e "${YELLOW}[6/7] Creating startup script...${NC}"
cat > "$DEPLOY_DIR/start.sh" << 'STARTSCRIPT'
#!/bin/bash
cd ~/trading_bot_api
source venv/bin/activate
export $(cat .env | grep -v '^#' | xargs)
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 1 >> logs/uvicorn.log 2>&1
STARTSCRIPT
chmod +x "$DEPLOY_DIR/start.sh"
mkdir -p "$DEPLOY_DIR/logs"

# ── 7. Create cPanel cron startup ────────────────────────────
echo -e "${YELLOW}[7/7] Setup instructions:${NC}"
echo ""
echo -e "${GREEN}✅ Installation complete!${NC}"
echo ""
echo -e "${BOLD}NEXT STEPS:${NC}"
echo ""
echo "1. Edit config:  nano ~/trading_bot_api/.env"
echo ""
echo "2. Start server: ~/trading_bot_api/start.sh &"
echo "   OR use cPanel > Cron Jobs > Add:"
echo "   @reboot ~/trading_bot_api/start.sh"
echo ""
echo "3. Test API:     curl http://localhost:8000/docs"
echo ""
echo "4. Keep alive via cPanel Node.js App or"
echo "   install supervisor:"
echo "   pip install supervisor"
echo ""
echo -e "${BOLD}cPanel Passenger (if available):${NC}"
echo "   - Create Python app in cPanel"
echo "   - App Root: ~/trading_bot_api"
echo "   - Startup: main:app"
echo "   - Python: 3.9+"
