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

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
STAMP="$(date +%Y%m%d_%H%M%S)"
OUT_DIR="${BACKUP_DIR:-$ROOT/tmp/backups}"
mkdir -p "$OUT_DIR"

# Prefer Docker Compose postgres service when available
if docker compose -f "$ROOT/docker-compose.yml" ps postgres 2>/dev/null | grep -q "running\|Up"; then
  FILE="$OUT_DIR/simplecrm_${STAMP}.sql.gz"
  echo "Backup via docker compose → $FILE"
  docker compose -f "$ROOT/docker-compose.yml" exec -T postgres \
    pg_dump -U "${POSTGRES_USER:-simplecrm}" "${POSTGRES_DB:-simplecrm_development}" | gzip > "$FILE"
else
  FILE="$OUT_DIR/simplecrm_${STAMP}.sql.gz"
  echo "Backup via local pg_dump → $FILE"
  PGPASSWORD="${POSTGRES_PASSWORD:-simplecrm_dev}" pg_dump \
    -h "${DATABASE_HOST:-localhost}" \
    -U "${POSTGRES_USER:-simplecrm}" \
    "${POSTGRES_DB:-simplecrm_development}" | gzip > "$FILE"
fi

echo "OK: $FILE"
