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

DB_HOST="${DB_HOST:-localhost}"
DB_PORT="${DB_PORT:-3306}"
DB_USER="${DB_USER:-root}"
DB_NAME="${DB_NAME:-stockflow_db}"
BACKUP_FILE="${1:-}"

if [[ -z "${DB_PASSWORD:-}" ]]; then
  echo "DB_PASSWORD chưa được thiết lập." >&2
  exit 1
fi
if [[ -z "$BACKUP_FILE" || ! -f "$BACKUP_FILE" ]]; then
  echo "Cách dùng: DB_PASSWORD=... $0 /path/to/backup.sql.gz" >&2
  exit 1
fi
if [[ "${FORCE_RESTORE:-0}" != "1" ]]; then
  echo "CẢNH BÁO: restore sẽ ghi đè dữ liệu trong database ${DB_NAME}."
  read -r -p "Nhập đúng tên database để tiếp tục: " confirmation
  if [[ "$confirmation" != "$DB_NAME" ]]; then
    echo "Đã hủy restore." >&2
    exit 1
  fi
fi

echo "Đang restore ${BACKUP_FILE} -> ${DB_NAME}@${DB_HOST}:${DB_PORT}"
if [[ "$BACKUP_FILE" == *.gz ]]; then
  gzip -dc "$BACKUP_FILE" | MYSQL_PWD="$DB_PASSWORD" mysql --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USER" "$DB_NAME"
else
  MYSQL_PWD="$DB_PASSWORD" mysql --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USER" "$DB_NAME" < "$BACKUP_FILE"
fi
echo "Restore hoàn tất. Kiểm tra health check và dữ liệu nghiệp vụ trước khi mở traffic."
