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

TARGET="${1:-/var/www/app.yachtmemory.net}"
DB_NAME="${2:-yachtmemory_app}"
DB_USER="${3:-admin}"

PKG="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
STAMP="$(date +%Y%m%d-%H%M%S)"
BACKUP="${TARGET}/backup/permission-foundation-2A-${STAMP}"

echo "YachtMemory Permission Foundation 2A"
echo "Ziel:     ${TARGET}"
echo "DB:       ${DB_NAME}"
echo "DB-User:  ${DB_USER}"
echo "Backup:   ${BACKUP}"
echo

test -d "${TARGET}" || {
    echo "FEHLER: Zielverzeichnis existiert nicht: ${TARGET}" >&2
    exit 1
}

mkdir -p \
    "${BACKUP}/src/lib" \
    "${BACKUP}/src/services" \
    "${BACKUP}/public"

cp -a "${TARGET}/src/lib/auth.php" \
    "${BACKUP}/src/lib/auth.php"

cp -a "${TARGET}/src/services/UserService.php" \
    "${BACKUP}/src/services/UserService.php"

cp -a "${TARGET}/public/admin_user_create.php" \
    "${BACKUP}/public/admin_user_create.php"

cp -a "${TARGET}/public/admin_user_edit.php" \
    "${BACKUP}/public/admin_user_edit.php"

echo "1/4 Datenbankmigration"
echo "MySQL fragt jetzt nach dem Passwort für ${DB_USER}."
mysql -u "${DB_USER}" -p "${DB_NAME}" \
    < "${PKG}/database/migrations/2026-08-19_permission_foundation_2A.sql"

echo
echo "2/4 PHP-Dateien installieren"

install -m 0644 "${PKG}/src/lib/auth.php" \
    "${TARGET}/src/lib/auth.php"

install -m 0644 "${PKG}/src/services/UserService.php" \
    "${TARGET}/src/services/UserService.php"

install -m 0644 "${PKG}/public/admin_user_create.php" \
    "${TARGET}/public/admin_user_create.php"

install -m 0644 "${PKG}/public/admin_user_edit.php" \
    "${TARGET}/public/admin_user_edit.php"

echo
echo "3/4 Syntaxprüfung"

php -l "${TARGET}/src/lib/auth.php"
php -l "${TARGET}/src/services/UserService.php"
php -l "${TARGET}/public/admin_user_create.php"
php -l "${TARGET}/public/admin_user_edit.php"

echo
echo "4/4 Datenbankprüfung"

cp "${PKG}/database/check_permission_foundation.php" \
   "${TARGET}/database_check_permission_foundation_2A.php"

php "${TARGET}/database_check_permission_foundation_2A.php"
rm -f "${TARGET}/database_check_permission_foundation_2A.php"

echo
echo "Installation abgeschlossen."
echo "Backup: ${BACKUP}"
echo
echo "Nächster Browser-Test:"
echo "  /admin_user_create.php"
echo "  /admin_user_edit.php?id=<USER-ID>"
