#!/bin/bash
# Script para transferir backup via SCP

set -e

echo "=== TRANSFERÊNCIA DE BACKUP VIA SCP ==="
echo ""

# Cores
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

# Configurações
SOURCE_SERVER="root@gestor.jf.eng.br"
TARGET_SERVER="root@derenbox.one"
BACKUP_DIR="/var/www/gestorstream/backend/storage/app/backups"

echo -e "${YELLOW}[1/4] Verificando backups disponíveis no servidor origem...${NC}"

# Listar backups no servidor origem
echo "Backups encontrados:"
ssh "$SOURCE_SERVER" "ls -lh $BACKUP_DIR/*.sql 2>/dev/null | tail -5" || {
    echo -e "${RED}❌ Erro ao conectar ao servidor origem${NC}"
    echo "Verifique:"
    echo "  1. SSH configurado corretamente"
    echo "  2. Acesso ao servidor: $SOURCE_SERVER"
    exit 1
}

echo ""
read -p "Digite o nome do arquivo de backup (ou 'todos' para transferir todos): " BACKUP_FILE

if [ "$BACKUP_FILE" == "todos" ] || [ "$BACKUP_FILE" == "all" ]; then
    BACKUP_FILES="*.sql"
else
    BACKUP_FILES="$BACKUP_FILE"
fi

echo ""
echo -e "${YELLOW}[2/4] Verificando espaço no servidor destino...${NC}"

# Verificar espaço no destino
ssh "$TARGET_SERVER" "df -h /var/www/gestorstream/backend/storage/app/backups 2>/dev/null || df -h /var/www/gestorstream" || {
    echo -e "${RED}❌ Erro ao conectar ao servidor destino${NC}"
    exit 1
}

echo ""
echo -e "${YELLOW}[3/4] Transferindo backup(s)...${NC}"

# Criar diretório se não existir
ssh "$TARGET_SERVER" "mkdir -p $BACKUP_DIR"

# Transferir via SCP
if [ "$BACKUP_FILES" == "*.sql" ]; then
    echo "Transferindo todos os backups SQL..."
    scp "$SOURCE_SERVER:$BACKUP_DIR/*.sql" "$TARGET_SERVER:$BACKUP_DIR/" || {
        echo -e "${RED}❌ Erro na transferência${NC}"
        exit 1
    }
else
    echo "Transferindo: $BACKUP_FILE"
    scp "$SOURCE_SERVER:$BACKUP_DIR/$BACKUP_FILE" "$TARGET_SERVER:$BACKUP_DIR/" || {
        echo -e "${RED}❌ Erro na transferência${NC}"
        exit 1
    }
fi

echo ""
echo -e "${YELLOW}[4/4] Verificando arquivos transferidos...${NC}"

# Verificar arquivos no destino
echo "Arquivos no servidor destino:"
ssh "$TARGET_SERVER" "ls -lh $BACKUP_DIR/*.sql 2>/dev/null | tail -5"

echo ""
echo -e "${GREEN}✅ Transferência concluída!${NC}"
echo ""
echo "Próximos passos:"
echo "  1. Acesse a interface web do novo servidor"
echo "  2. Vá em Configurações → Banco de Dados"
echo "  3. Selecione o backup e clique em 'Restaurar'"
