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

usage() {
  cat <<'TXT'
Uso:
  predeploy.sh <client_public_root>

Ejemplo:
  predeploy.sh /home/bitnami/htdocs/transbook/btec
  predeploy.sh /home/bitnami/htdocs/sunnydesertcabo
TXT
}

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

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

SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CLIENT_ROOT="${1%/}"

if [[ ! -d "$CLIENT_ROOT" ]]; then
  echo "Error: client_public_root no existe: $CLIENT_ROOT" >&2
  exit 1
fi

core_admin=""
for candidate in "$CLIENT_ROOT/btec_v1" "$CLIENT_ROOT/btec" "$CLIENT_ROOT/btec/btec"; do
  if [[ -d "$candidate/.btec-core" ]]; then
    core_admin="$candidate"
    break
  fi
done

if [[ -z "$core_admin" ]]; then
  for candidate in "$CLIENT_ROOT/btec_v1" "$CLIENT_ROOT/btec" "$CLIENT_ROOT/btec/btec"; do
    if [[ -d "$candidate/func" ]]; then
      core_admin="$candidate"
      break
    fi
  done
fi

if [[ -z "$core_admin" ]]; then
  echo "Error: no se encontró admin BTEC compatible en: $CLIENT_ROOT" >&2
  exit 1
fi

compat_admin="$CLIENT_ROOT/btec"
if [[ "$core_admin" == "$CLIENT_ROOT/btec" || "$core_admin" == "$CLIENT_ROOT/btec/btec" ]]; then
  compat_admin="$core_admin"
fi

mkdir -p "$CLIENT_ROOT/mobilecheker"
mkdir -p "$compat_admin/apps/mobilecheker"
mkdir -p "$core_admin/func/modules"

cp -a "$SOURCE_DIR/mobilecheker/." "$CLIENT_ROOT/mobilecheker/"
cp -a "$SOURCE_DIR/btec/apps/mobilecheker/admin" "$compat_admin/apps/mobilecheker/"
cp -a "$SOURCE_DIR/btec/func/modules/mobile-checker.php" "$core_admin/func/modules/mobile-checker.php"
cp -a "$SOURCE_DIR/btec/func/modules/mobile-checker.sql" "$core_admin/func/modules/mobile-checker.sql"

echo "Mobile Checker predeploy aplicado en: $CLIENT_ROOT"
echo "  core admin: $core_admin"
echo "  app admin:  $compat_admin/apps/mobilecheker/admin"
