#!/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_DIR="${BACKUP_DIR:-database/backups}"
TIMESTAMP="$(date '+%Y-%m-%d_%H%M%S')"
OUTPUT="${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz"

mkdir -p "$BACKUP_DIR"
if [[ -z "${DB_PASSWORD:-}" ]]; then
  echo "DB_PASSWORD chưa được thiết lập." >&2
  exit 1
fi

echo "Đang backup ${DB_NAME}@${DB_HOST}:${DB_PORT} -> ${OUTPUT}"
MYSQL_PWD="$DB_PASSWORD" mysqldump \
  --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USER" \
  --single-transaction --routines --triggers --events --hex-blob \
  --set-gtid-purged=OFF "$DB_NAME" | gzip -c > "$OUTPUT"

test -s "$OUTPUT"
echo "Backup hoàn tất: ${OUTPUT}"
