#!/bin/bash
# ─────────────────────────────────────────────────────────────
# Deploy trained GPU model from PC → Server
#
# Usage (from PC):
#   ./deploy_model.sh user@server_ip [local_models_dir]
#
# Example:
#   ./deploy_model.sh ubuntu@192.168.1.100 ./spy_optimizer/models
# ─────────────────────────────────────────────────────────────

set -euo pipefail

SERVER="${1:?Usage: $0 user@server [local_models_dir]}"
LOCAL_MODELS="${2:-./spy_optimizer/models}"
REMOTE_MODELS="/home/ubuntu/crypto_trading_bot/spy_optimizer/models"

echo "══════════════════════════════════════════════════════"
echo "  🚀 Deploy GPU model: PC → $SERVER"
echo "══════════════════════════════════════════════════════"

# Check files exist
for f in surge_predictor_gpu_checkpoint.pth surge_predictor_gpu_meta.json; do
    if [[ ! -f "$LOCAL_MODELS/$f" ]]; then
        echo "  ❌ Missing: $LOCAL_MODELS/$f"
        exit 1
    fi
done

echo ""
echo "  📦 Files to deploy:"
ls -lh "$LOCAL_MODELS"/surge_predictor_gpu* 2>/dev/null

echo ""
echo "  📤 Uploading to server..."
rsync -avz --progress \
    "$LOCAL_MODELS"/surge_predictor_gpu* \
    "$SERVER:$REMOTE_MODELS/"

echo ""
echo "══════════════════════════════════════════════════════"
echo "  ✅ Model deployed!"
echo "  The server will auto-detect and use the new model."
echo "══════════════════════════════════════════════════════"
