#!/usr/bin/env bash
# Развёртывание DemoFullDeploy.sql (то же, что full + демо-данные DemoSeed).
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SQL_FILE="${SCRIPT_DIR}/DemoFullDeploy.sql"

SKIP_CREATE=false
while [[ $# -gt 0 ]]; do
  case "$1" in
    --skip-create-db) SKIP_CREATE=true; shift ;;
    -h|--help)
      head -n 18 "$0"
      exit 0
      ;;
    *)
      echo "Использование: $0 [--skip-create-db] [--help]" >&2
      exit 1
      ;;
  esac
done

if [[ ! -f "$SQL_FILE" ]]; then
  echo "Нет файла DemoFullDeploy.sql в этой папке." >&2
  exit 1
fi

if ! command -v psql >/dev/null 2>&1 || ! command -v createdb >/dev/null 2>&1; then
  echo "Установите postgresql-client (нужны psql и createdb)." >&2
  exit 1
fi

: "${PGPORT:=5432}"
: "${PGUSER:=postgres}"
: "${PGDATABASE:=AdminServer_Cloud}"
export PGPORT

if ! $SKIP_CREATE; then
  if psql -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname = '${PGDATABASE}'" | grep -qx 1; then
    echo "База «${PGDATABASE}» уже есть — накат поверх."
  else
    echo "Создание базы «${PGDATABASE}»..."
    createdb "${PGDATABASE}"
  fi
fi

echo "Накат DemoFullDeploy.sql → «${PGDATABASE}» (${PGHOST:-localhost}:${PGPORT})..."
psql -d "${PGDATABASE}" -v ON_ERROR_STOP=1 -f "$SQL_FILE"
echo "Готово."
