#!/bin/bash

set -Eeuo pipefail

REPO_URL="${REPO_URL:-https://repositorio.brsistemas.com.br/forcavenda_ft}"
APP_DIR="${APP_DIR:-/opt/forcavenda_ft}"
APP_NAME="${APP_NAME:-forcavenda-ft}"
SERVICE_NAME="${SERVICE_NAME:-api}"
CONTAINER_PORT="${CONTAINER_PORT:-8000}"
IMAGE_NAME="${IMAGE_NAME:-registry.gitlab.com/brsistemas1/forcavenda_ft/thunderapi:latest}"
LOCAL_VERSION_FILE="$APP_DIR/version.txt"
UPDATE_SCRIPT_NAME="${UPDATE_SCRIPT_NAME:-update.sh}"

echo "===================================="
echo "[CHECK] Verificando atualizacao ForcaVenda FT"
echo "===================================="

if [ ! -d "$APP_DIR" ]; then
  echo "[ERRO] Diretorio da aplicacao nao encontrado: $APP_DIR"
  exit 1
fi

REMOTE_VERSION=$(curl -fsSL "$REPO_URL/version.txt" | tr -d '[:space:]' || true)
LOCAL_VERSION=$(cat "$LOCAL_VERSION_FILE" 2>/dev/null | tr -d '[:space:]' || echo "0")

if [ -z "$REMOTE_VERSION" ]; then
  echo "[ERRO] Nao foi possivel obter a versao remota em $REPO_URL/version.txt"
  exit 1
fi

echo "[INFO] Versao local: $LOCAL_VERSION"
echo "[INFO] Versao remota: $REMOTE_VERSION"

if [ "$REMOTE_VERSION" != "$LOCAL_VERSION" ]; then
  echo "[UPDATE] Nova versao encontrada. Baixando atualizador remoto..."

  curl -fsSL "$REPO_URL/$UPDATE_SCRIPT_NAME" -o /tmp/forcavenda-ft-update.sh
  sed -i 's/\r$//' /tmp/forcavenda-ft-update.sh
  chmod +x /tmp/forcavenda-ft-update.sh

  APP_DIR="$APP_DIR" \
  REPO_URL="$REPO_URL" \
  APP_NAME="$APP_NAME" \
  SERVICE_NAME="$SERVICE_NAME" \
  CONTAINER_PORT="$CONTAINER_PORT" \
  IMAGE_NAME="$IMAGE_NAME" \
  /tmp/forcavenda-ft-update.sh

  echo "$REMOTE_VERSION" | sudo tee "$LOCAL_VERSION_FILE" > /dev/null

  echo "[OK] Atualizado para versao $REMOTE_VERSION"
else
  echo "[OK] Nenhuma atualizacao disponivel"
fi
