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

BASE="${1:-/srv/geneacase}"
BACKUP="${2:-}"
ENV_FILE="$BASE/shared/.env"

if [[ "${RESTORE_CONFIRM:-}" != "YES" ]]; then
  echo "[ERROR] Defina RESTORE_CONFIRM=YES para confirmar la restauracion." >&2
  exit 1
fi
if [[ -z "$BACKUP" || ! -f "$BACKUP" ]]; then
  echo "[ERROR] Indique un backup .sql.gz existente." >&2
  exit 1
fi
if [[ ! -f "$ENV_FILE" ]]; then
  echo "[ERROR] Falta $ENV_FILE" >&2
  exit 1
fi
if [[ -f "$BACKUP.sha256" ]]; then
  (cd "$(dirname "$BACKUP")" && sha256sum -c "$(basename "$BACKUP").sha256")
fi

set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a

: "${DB_HOST:?DB_HOST requerido}"
: "${DB_PORT:?DB_PORT requerido}"
: "${DB_DATABASE:?DB_DATABASE requerido}"
: "${DB_USERNAME:?DB_USERNAME requerido}"

gzip -cd "$BACKUP" | MYSQL_PWD="${DB_PASSWORD:-}" mysql \
  --host="$DB_HOST" \
  --port="$DB_PORT" \
  --user="$DB_USERNAME" \
  "$DB_DATABASE"

echo "[OK] Base de datos restaurada desde: $BACKUP"
