#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0

# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"

# Vérifier si le script est exécuté en root
check_root

set -e

echo "👉 Nom de la base de données à créer : "
read DB_NAME

echo "👉 Nom de l'utilisateur PostgreSQL propriétaire : "
read DB_USER

# Lecture du mot de passe en mode sécurisé
read -s -p "🔑 Mot de passe PostgreSQL de l'utilisateur 'postgres' : " DB_PASS
echo ""

echo "🔎 Vérification de l'existence de l'utilisateur PostgreSQL '$DB_USER'..."
USER_EXISTS=$(sudo -u postgres env PGPASSWORD="$DB_PASS" psql -U postgres -h localhost -tAc "SELECT 1 FROM pg_roles WHERE rolname='${DB_USER}'")

if [[ "$USER_EXISTS" != "1" ]]; then
  echo "❌ L'utilisateur '$DB_USER' n'existe pas dans PostgreSQL."
  exit 2
else
  echo "✅ L'utilisateur '$DB_USER' existe."
fi

echo "🔎 Vérification de l'existence de la base de données '$DB_NAME'..."
DB_EXISTS=$(sudo -u postgres env PGPASSWORD="$DB_PASS" psql -U postgres -h localhost -tAc "SELECT 1 FROM pg_database WHERE datname='${DB_NAME}'")

if [[ "$DB_EXISTS" == "1" ]]; then
  echo "⚠️ La base de données '$DB_NAME' existe déjà."
else
  echo "🛠 Création de la base de données '$DB_NAME' avec le propriétaire '$DB_USER'..."
  sudo -u postgres env PGPASSWORD="$DB_PASS" createdb -U postgres -h localhost -O "$DB_USER" "$DB_NAME"
  echo "✅ Base de données '$DB_NAME' créée avec succès."
fi

echo "🎉 Opération terminée."
