#!/bin/bash
# ─────────────────────────────────────────────────────────────
# Sync spy_optimizer data & code from server → PC for GPU training
#
# Usage (from PC):
#   ./sync_to_pc.sh user@server_ip [local_dest_dir]
#
# Example:
#   ./sync_to_pc.sh ubuntu@192.168.1.100 ~/crypto_trading_bot/spy_optimizer
# ─────────────────────────────────────────────────────────────

set -euo pipefail

SERVER="${1:?Usage: $0 user@server [local_dest]}"
LOCAL_DEST="${2:-./spy_optimizer}"
REMOTE_DIR="/home/ubuntu/crypto_trading_bot/spy_optimizer"

echo "══════════════════════════════════════════════════════"
echo "  📦 Sync spy_optimizer: $SERVER → $LOCAL_DEST"
echo "══════════════════════════════════════════════════════"

mkdir -p "$LOCAL_DEST"

# 1. Sync code files (lightweight)
echo ""
echo "  [1/4] Syncing code..."
rsync -avz --progress \
    "$SERVER:$REMOTE_DIR/"*.py \
    "$LOCAL_DEST/"

# 2. Sync klines data (heavy — incremental)
echo ""
echo "  [2/4] Syncing klines (this may take a while)..."
mkdir -p "$LOCAL_DEST/data/klines_1m"
rsync -avz --progress \
    "$SERVER:$REMOTE_DIR/data/klines_1m/" \
    "$LOCAL_DEST/data/klines_1m/"

# 3. Sync trade history
echo ""
echo "  [3/4] Syncing trade history..."
rsync -avz --progress \
    "$SERVER:/home/ubuntu/crypto_trading_bot/espion_history.json" \
    "$LOCAL_DEST/../espion_history.json"

# 4. Sync existing models & datasets
echo ""
echo "  [4/4] Syncing models & datasets..."
mkdir -p "$LOCAL_DEST/data" "$LOCAL_DEST/models"
rsync -avz --progress \
    "$SERVER:$REMOTE_DIR/data/training_dataset.parquet" \
    "$LOCAL_DEST/data/" 2>/dev/null || echo "  (no training_dataset yet)"
rsync -avz --progress \
    "$SERVER:$REMOTE_DIR/models/" \
    "$LOCAL_DEST/models/" 2>/dev/null || echo "  (no models yet)"

echo ""
echo "══════════════════════════════════════════════════════"
echo "  ✅ Sync complete!"
echo "  Data: $(du -sh "$LOCAL_DEST/data/klines_1m/" 2>/dev/null | cut -f1) klines"
echo "  Files: $(ls "$LOCAL_DEST/data/klines_1m/"*.parquet 2>/dev/null | wc -l) symbols"
echo ""
echo "  Next: cd $LOCAL_DEST && python train_gpu.py"
echo "══════════════════════════════════════════════════════"
