#!/bin/bash

LOG="/root/etiquetaai_install.log"

echo "#############################################" | tee -a $LOG
echo "INSTALADOR ETIQUETAAI $(date)" | tee -a $LOG
echo "#############################################" | tee -a $LOG

# -------------------------
# MENU NODE VERSION
# -------------------------
echo ""
echo "Escolha a versão do Node.js para instalar:"
echo "1 - Node 24 LTS (Recomendado)"
echo "2 - Node 22 LTS"
echo "3 - Node 20 LTS (Legado)"
echo ""

read -p "Digite 1, 2 ou 3: " NODE_OPTION

case $NODE_OPTION in
    1)
        NODE_SETUP="setup_24.x"
        NODE_VERSION="Node 24 LTS"
        ;;
    2)
        NODE_SETUP="setup_22.x"
        NODE_VERSION="Node 22 LTS"
        ;;
    3)
        NODE_SETUP="setup_20.x"
        NODE_VERSION="Node 20 LTS"
        ;;
    *)
        echo "Opcao invalida. Abortando."
        exit 1
        ;;
esac

echo "Versao escolhida: $NODE_VERSION" | tee -a $LOG

# -------------------------
# UPDATE / UPGRADE
# -------------------------
echo "Atualizando sistema..." | tee -a $LOG
apt update -y >> $LOG 2>&1
apt upgrade -y >> $LOG 2>&1

# -------------------------
# INSTALAR DEPENDENCIAS
# -------------------------
apt install -y curl unzip wget vim >> $LOG 2>&1

# -------------------------
# INSTALAR NODE
# -------------------------
echo "Instalando $NODE_VERSION ..." | tee -a $LOG

curl -fsSL https://deb.nodesource.com/$NODE_SETUP | bash - >> $LOG 2>&1
apt install -y nodejs >> $LOG 2>&1

node -v | tee -a $LOG
npm -v | tee -a $LOG

# -------------------------
# CRIAR DIRETORIO
# -------------------------
mkdir -p /root/etiquetaai
cd /root/etiquetaai

# -------------------------
# DOWNLOAD PROJETO
# -------------------------
echo "Baixando projeto..." | tee -a $LOG
wget -O etiquetaai.zip https://update.pedeaqui.app/etiquetaai/Etiquetaai_spooler.zip >> $LOG 2>&1

echo "Extraindo..." | tee -a $LOG
unzip -o etiquetaai.zip >> $LOG 2>&1

# -------------------------
# NPM INSTALL
# -------------------------
echo "Rodando npm install..." | tee -a $LOG
npm install >> $LOG 2>&1

# -------------------------
# INSTALAR PM2
# -------------------------
echo "Instalando PM2..." | tee -a $LOG
npm install pm2@latest -g >> $LOG 2>&1

# -------------------------
# PM2 START
# -------------------------
echo "Configurando PM2..." | tee -a $LOG

pm2 delete etiqueta.ai_spoller_raspberry >> $LOG 2>&1

pm2 start npm --name etiqueta.ai_spoller_raspberry -- start >> $LOG 2>&1
pm2 save >> $LOG 2>&1

# -------------------------
# AUTO START
# -------------------------
CURRENT_PATH=$(echo $PATH)

CRON_TEMP=$(mktemp)
crontab -l > $CRON_TEMP 2>/dev/null

grep -q "pm2 resurrect" $CRON_TEMP
if [ $? -ne 0 ]; then
    echo "PATH=$CURRENT_PATH" >> $CRON_TEMP
    echo "@reboot pm2 resurrect &> /dev/null" >> $CRON_TEMP
fi

crontab $CRON_TEMP
rm $CRON_TEMP

# -------------------------
# STATUS FINAL
# -------------------------
echo ""
echo "#############################################" | tee -a $LOG
echo "STATUS PM2" | tee -a $LOG
echo "#############################################" | tee -a $LOG

pm2 list | tee -a $LOG

echo ""
echo "Instalacao finalizada!"
echo "Log salvo em: $LOG"
