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

usage() {
  cat <<'TXT'
Uso:
  prepare-client-web-writes.sh <client_btec_root>

Ejemplo:
  prepare-client-web-writes.sh /opt/bitnami/apache/htdocs/sunnydesertcabo/btec_v1

Este script prepara permisos ACL para que Apache/daemon pueda:
  - crear carpetas publicas del sitio, como /booking
  - escribir wrappers administrativos dentro de btec_v1
  - actualizar archivos creados por modulos desplegados desde el panel
TXT
}

if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
  usage
  exit 0
fi

if [[ $# -lt 1 ]]; then
  usage
  exit 1
fi

client_root="${1%/}"
if [[ ! -d "$client_root" ]]; then
  echo "Error: client_btec_root no existe: $client_root" >&2
  exit 1
fi

if [[ ! -d "$client_root/func" ]]; then
  echo "Error: no se encontro carpeta func en: $client_root" >&2
  exit 1
fi

if ! command -v setfacl >/dev/null 2>&1; then
  echo "Error: setfacl no esta disponible en este servidor." >&2
  exit 1
fi

site_root="$(dirname "$client_root")"

setfacl -m u:daemon:rwx "$site_root" "$client_root"
setfacl -d -m u:daemon:rwx "$site_root" "$client_root"

for writable_dir in "$site_root/booking"; do
  if [[ -d "$writable_dir" ]]; then
    setfacl -R -m u:daemon:rwX "$writable_dir"
    setfacl -d -m u:daemon:rwX "$writable_dir"
  fi
done

for writable_file in \
  "$client_root/booking-engine.php" \
  "$client_root/asistente-whatsapp.php" \
  "$client_root/email-marketing.php" \
  "$client_root/cupones.php" \
  "$client_root/notificaciones.php" \
  "$client_root/facturas-btec.php" \
  "$client_root/admin-facturas-btec.php"
do
  if [[ -f "$writable_file" ]]; then
    setfacl -m u:daemon:rw "$writable_file"
  fi
done

echo "Permisos web preparados correctamente."
echo "Site root: $site_root"
echo "Cliente btec: $client_root"
