#!/usr/bin/env bash
set -Eeuo pipefail
umask 077

STATE_DIR="/opt/router-ops/state/local-plans/vm101-hmn-autonomous-egress-recovery"
STATE_ROOT="/opt/router-ops/state"

TOKEN="e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4"
PUBLIC_BASE="https://helena-background-beam-harry.trycloudflare.com/r/${TOKEN}"
PUBROOT="/opt/router-ops/public/r/${TOKEN}"

XS_MAP="${PUBLIC_BASE}/20260711-120734_xs_map_audit_repair_publish/"
GLOBAL_PLAN="${PUBLIC_BASE}/20260711-123348_global_project_plan_wg_paid/"

SOURCE_STEP="${1:-MANUAL_VM101_LOCAL_PLAN_REPUBLISH}"
CURRENT_REPORT="${2:-NOT_PROVIDED}"

PREVIOUS_PLAN="$(
  cat "$STATE_ROOT/current-local-architecture-plan-url.txt" \
    2>/dev/null ||
  true
)"

[ -n "$PREVIOUS_PLAN" ] ||
  PREVIOUS_PLAN="NONE"

TS="$(date -u +%Y%m%d-%H%M%S)"
SLUG="${TS}_local_architecture_plan_vm101_autonomous_hmn_recovery"
OUTPUT_DIR="${PUBROOT}/${SLUG}"
PLAN_URL="${PUBLIC_BASE}/${SLUG}/"

mkdir -p "$OUTPUT_DIR"

python3 "$STATE_DIR/render_plan.py" \
  --state-dir "$STATE_DIR" \
  --output-dir "$OUTPUT_DIR" \
  --generated-at "$TS" \
  --source-step "$SOURCE_STEP" \
  --current-report "$CURRENT_REPORT" \
  --architecture-plan "$PLAN_URL" \
  --xs-map "$XS_MAP" \
  --global-plan "$GLOBAL_PLAN" \
  --previous-plan "$PREVIOUS_PLAN"

find "$OUTPUT_DIR" \
  -type f \
  ! -name SHA256SUMS \
  -print0 |
  sort -z |
  xargs -0 sha256sum \
  > "$OUTPUT_DIR/SHA256SUMS"

printf '%s\n' \
  "$PLAN_URL" \
  > "$STATE_ROOT/current-local-architecture-plan-url.txt"

cat > "$STATE_ROOT/current-vm101-local-plan.env" <<EOF
UPDATED_AT_UTC=${TS}
SOURCE_STEP=${SOURCE_STEP}
ARCHITECTURE_PLAN=${PLAN_URL}
XS_MAP=${XS_MAP}
GLOBAL_PROJECT_PLAN=${GLOBAL_PLAN}
EOF

ln -sfn \
  "$SLUG" \
  "${PUBROOT}/LOCAL_ARCHITECTURE_PLAN_VM101_LATEST"

echo "ARCHITECTURE_PLAN=$PLAN_URL"
