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

read -rp "Branch: " BRANCH
if [[ -z "${BRANCH}" ]]; then
  echo "Branch name is required. Aborting." >&2
  exit 1
fi

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
API_DIR="$SCRIPT_DIR/api"
WEB_DIR="$SCRIPT_DIR/web"
HTACCESS_SRC="$SCRIPT_DIR/htaccess/.htaccess"
DIST_DIR="$WEB_DIR/dist"

echo ">>> Fetching latest changes for branch '$BRANCH'"
cd "$SCRIPT_DIR"
git fetch --all --prune
git checkout "$BRANCH"
git pull --ff-only origin "$BRANCH"

echo ">>> Switching to Node 22"
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
# shellcheck disable=SC1091
. "$NVM_DIR/nvm.sh"
nvm use 22 || nvm install 22
node -v

echo ">>> Running composer in $API_DIR"
cd "$API_DIR"
composer update --no-interaction --optimize-autoloader
composer dump-autoload --optimize

echo ">>> Building frontend in $WEB_DIR"
cd "$WEB_DIR"
pnpm install --frozen-lockfile
pnpm run postinstall
pnpm run build

echo ">>> Copying htaccess into $DIST_DIR"
cp "$HTACCESS_SRC" "$DIST_DIR/.htaccess"
test -f "$DIST_DIR/.htaccess"

echo ">>> Deploy complete: branch=$BRANCH"
