#!/usr/bin/env bash
set -Eeuo pipefail

# Actualiza las imagenes conservando los volumenes de MySQL, fotos y correo.
# Debe ejecutarse desde el directorio que contiene compose.yaml.

if [[ ! -f compose.yaml ]]; then
  echo "No se encontro compose.yaml en el directorio actual." >&2
  exit 1
fi

mkdir -p migration-backups
backup_file="migration-backups/pre-update-$(date +%Y%m%d-%H%M%S).tar.gz"

if docker compose ps --status running -q db 2>/dev/null | grep -q .; then
  echo "Creando backup previo a la actualizacion..."
  bash scripts/backup-kanban.sh "$backup_file"
else
  echo "MySQL aun no esta activo; se trata como una instalacion nueva."
fi

echo "Construyendo y desplegando la nueva version..."
docker compose up -d --build --remove-orphans --wait --wait-timeout 180

echo "Estado final:"
docker compose ps
echo "Actualizacion terminada. Los volumenes persistentes no fueron eliminados."
if [[ -f "$backup_file" ]]; then
  echo "Backup previo: $backup_file"
fi
