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

# Verzeichnis deines Inventar-Repos (lokal auf Falkenstein!)
INVENTORY_DIR="/opt/hx-ki/repos/hxki-inventory"

REPORT_DIR="/opt/hx-ki/reports"
mkdir -p "$REPORT_DIR"

TS="$(date +"%Y-%m-%d_%H%M%S")"
OUT="${REPORT_DIR}/HXKI_System_BirthCertificate_${TS}.txt"

{
  echo "=== HXKI SYSTEM GEBURTSURKUNDE ==="
  echo "Quelle:  $INVENTORY_DIR"
  echo "Zeitpunkt: $(date)"
  echo

  echo "1) Gesamtübersicht"
  echo "------------------"
  echo -n "Gesamtgröße des Tresors: "
  du -sh "$INVENTORY_DIR" | awk '{print $1}'
  echo -n "Anzahl Dateien gesamt:  "
  find "$INVENTORY_DIR" -type f | wc -l
  echo

  echo "2) Verzeichnisstruktur (Top-Level, Tiefe 2)"
  echo "------------------------------------------"
  find "$INVENTORY_DIR" -maxdepth 2 -type d | sed "s|$INVENTORY_DIR|.|"
  echo

  echo "3) Größte 20 Dateien im Tresor"
  echo "------------------------------"
  # benötigt GNU find (auf Ubuntu Standard)
  find "$INVENTORY_DIR" -type f -printf '%s %p\n' \
    | sort -nr \
    | head -20 \
    | awk '{printf "%10.1f MB  %s\n", $1/1024/1024, $2}'
  echo

  echo "4) Inventar- und Log-Dateien (Auszug)"
  echo "-------------------------------------"
  INVENT_FILES=$(find "$INVENTORY_DIR" -type f \( -iname "*inventory*" -o -iname "*inventar*" -o -iname "*.log" \) | head -10)
  if [ -z "$INVENT_FILES" ]; then
    echo "Keine Inventar-/Log-Dateien gefunden."
  else
    for f in $INVENT_FILES; do
      echo
      echo "--- Datei: ${f#$INVENTORY_DIR/} ---"
      echo "(erste 40 Zeilen)"
      echo
      sed -n '1,40p' "$f"
      echo
    done
  fi

  echo
  echo "5) Zusammenfassung"
  echo "------------------"
  echo "Diese Geburtsurkunde beschreibt den Zustand des HX-KI Tresors"
  echo "auf Falkenstein zum angegebenen Zeitpunkt (Größe, Struktur,"
  echo "wichtigste Dateien und Inventarauszüge)."
  echo
} > "$OUT"

echo "$OUT"
