#!/usr/bin/env bash
# Entry point for the onboarding-500 diagnostic toolkit.
# Run from the project root: bash scripts/debug/run-all.sh
# Writes a single artifact at storage/app/debug-onboarding-500-<ts>.txt

set -u  # NOT -e — we want every section to run even if one fails

cd "$(dirname "$0")/../.." || exit 1
PROJECT_ROOT="$(pwd)"
SCRIPT_DIR="$PROJECT_ROOT/scripts/debug"

if [[ ! -f "$PROJECT_ROOT/artisan" ]]; then
    echo "ERROR: not in a Laravel project root (no ./artisan found at $PROJECT_ROOT)"
    echo "cd to your deploy directory and re-run."
    exit 1
fi

TS=$(date -u +%Y-%m-%dT%H-%M-%SZ)
ARTIFACT="$PROJECT_ROOT/storage/app/debug-onboarding-500-${TS}.txt"
mkdir -p "$(dirname "$ARTIFACT")"

# Allow override via env vars (see README)
export DEBUG_SITE_ID="${DEBUG_SITE_ID:-1}"
export DEBUG_USER_EMAIL="${DEBUG_USER_EMAIL:-}"

{
    echo "================================================================"
    echo "  Onboarding 500 Diagnostic — $(date -u +%Y-%m-%dT%H:%M:%SZ)"
    echo "  Project root: $PROJECT_ROOT"
    echo "  Hostname:     $(hostname 2>/dev/null || echo unknown)"
    echo "  User:         $(whoami 2>/dev/null || echo unknown)"
    echo "  DEBUG_SITE_ID=$DEBUG_SITE_ID"
    echo "  DEBUG_USER_EMAIL=${DEBUG_USER_EMAIL:-<auto: site owner>}"
    echo "================================================================"
    echo ""

    echo "================================================================"
    echo "  [01] Environment snapshot"
    echo "================================================================"
    bash "$SCRIPT_DIR/01-env-snapshot.sh" 2>&1
    echo ""

    echo "================================================================"
    echo "  [02] Apache + PHP error logs"
    echo "================================================================"
    bash "$SCRIPT_DIR/02-find-logs.sh" 2>&1
    echo ""

    echo "================================================================"
    echo "  [03] Reproduce 500 in CLI (with auth)"
    echo "================================================================"
    php -d display_errors=1 -d error_reporting=E_ALL -d log_errors=1 \
        "$SCRIPT_DIR/03-repro-500.php" 2>&1
    echo ""

    echo "================================================================"
    echo "  [04] Probe each Inertia share() closure individually"
    echo "================================================================"
    php -d display_errors=1 -d error_reporting=E_ALL -d log_errors=1 \
        "$SCRIPT_DIR/04-probe-share-props.php" 2>&1
    echo ""

    echo "================================================================"
    echo "  Diagnostic complete: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
    echo "================================================================"
} | tee "$ARTIFACT"

echo ""
echo "================================================================"
echo "Artifact written to:"
echo "  $ARTIFACT"
echo ""
echo "Paste its contents back to identify the bug."
echo "================================================================"
