#!/bin/bash
BETA_DIR="/var/www/vhosts/landscapesusa.net/html"
DB_USER="postgres"
DB_NAME="scapetime_beta"
DB_PASS="ba02n01c98k93"
REMOTE_URL="https://ericLUSA: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@github.com/ChrisLUSA/scapetime.git"
DB_CONFIG_BACKUP="/root/database.php.server"

BRANCH=""
SKIP_DB=false
while [[ $# -gt 0 ]]; do
    case $1 in
        --branch) BRANCH="$2"; shift 2 ;;
        --skip-db) SKIP_DB=true; shift ;;
        *) shift ;;
    esac
done

if [ "$SKIP_DB" = false ]; then
    TODAY=$(date +%Y%m%d)
    DUMP_DIR=$(ls -d /sandbox/var/spool/holland/zojin/${TODAY}_* 2>/dev/null | tail -1)
    DUMP_FILE="$DUMP_DIR/data/scapetime.dump"
    if [ ! -f "$DUMP_FILE" ]; then echo "ERROR: No dump found for today ($TODAY)"; exit 1; fi
    PGPASSWORD=$DB_PASS psql -U $DB_USER -c "DROP DATABASE IF EXISTS $DB_NAME;" -q
    PGPASSWORD=$DB_PASS psql -U $DB_USER -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;" -q
    PGPASSWORD=$DB_PASS pg_restore -U $DB_USER -d $DB_NAME -Fc "$DUMP_FILE"
    echo "DB restored: $DB_NAME"
fi

if [ ! -d "$BETA_DIR/.git" ]; then
    echo "--- Init fresh git repo"
    mkdir -p "$BETA_DIR"
    git -C "$BETA_DIR" init
    git -C "$BETA_DIR" config core.symlinks false
    git -C "$BETA_DIR" remote add origin "$REMOTE_URL"
    git -C "$BETA_DIR" fetch origin
else
    echo "--- Fetching origin"
    git -C "$BETA_DIR" fetch origin
fi

echo "--- Applying main"
git -C "$BETA_DIR" checkout origin/main -- .

if [ -n "$BRANCH" ]; then
    echo "--- Applying branch: $BRANCH"
    git -C "$BETA_DIR" checkout origin/$BRANCH -- .
fi

echo "--- Applying environment-php8"
git -C "$BETA_DIR" checkout origin/environment-php8 -- .

echo "--- Applying environment-all"
git -C "$BETA_DIR" checkout origin/environment-all -- .

if [ -f "$DB_CONFIG_BACKUP" ]; then
    echo "--- Restoring database.php"
    cp "$DB_CONFIG_BACKUP" "$BETA_DIR/modules/database/config/database.php"
else
    echo "WARNING: No database.php backup at $DB_CONFIG_BACKUP"
fi

git -C "$BETA_DIR" restore --staged . 2>/dev/null || true

echo "--- Creating required dirs"
mkdir -p "$BETA_DIR/application/logs"
mkdir -p "$BETA_DIR/application/cache"
mkdir -p "$BETA_DIR/sandbox/cache/proposaljobcost"
chmod 777 "$BETA_DIR/application/logs"
chmod 777 "$BETA_DIR/application/cache"
chmod 777 "$BETA_DIR/sandbox/cache/proposaljobcost"

echo ""
echo "--- Verifying key files"
for f in .htaccess index.php modules/database/config/database.php application/bootstrap.php application/classes/domainmgr.php images/website/inside_headers/manage.jpg; do
    [ -f "$BETA_DIR/$f" ] && echo "  OK: $f" || echo "  MISSING: $f"
done

echo ""
echo "=== build-beta complete ==="
[ -n "$BRANCH" ] && echo "  Branch: main + $BRANCH" || echo "  Branch: main"
[ "$SKIP_DB" = false ] && echo "  DB:     $DB_NAME restored"
echo "  URL:    https://landscapesusa.net"
