#!/usr/bin/env bash
# Varumärkesvakt (beslut D-026): varumärkesnamn får ENDAST finnas i brand.config.json.
# Körs i CI och kan köras lokalt: ./scripts/brand-guard.sh
#
# Vaktar två saker:
#   1. Det gamla arbetsnamnet får aldrig återinträda någonstans.
#   2. Det AKTUELLA namnet i brand.config.json får inte hårdkodas i kod
#      (README/docs får nämna det; kod, seed och infrastruktur får det inte).
set -euo pipefail
cd "$(dirname "$0")/.."

FAIL=0

# 1. Historiska/förbjudna namn – uppdatera listan vid namnbyte.
FORBIDDEN=("matrivo")
for name in "${FORBIDDEN[@]}"; do
  HITS=$(grep -ril "$name" . \
    --exclude-dir=node_modules --exclude-dir=.git --exclude-dir=dist \
    --exclude-dir=.turbo --exclude-dir=.expo --exclude-dir=.data \
    --exclude=brand-guard.sh 2>/dev/null || true)
  if [ -n "$HITS" ]; then
    echo "FEL: förbjudet namn '$name' hittades i:"
    echo "$HITS"
    FAIL=1
  fi
done

# 2. Aktuellt namn utanför brand.config.json i kod/infrastruktur.
CURRENT=$(node -e "console.log(require('./brand.config.json').name)")
HITS=$(grep -rl "$CURRENT" apps packages infrastructure \
  --include="*.ts" --include="*.tsx" --include="*.sql" --include="*.yml" \
  --include="*.yaml" --include="Dockerfile*" \
  --exclude-dir=node_modules --exclude-dir=dist --exclude-dir=.turbo 2>/dev/null || true)
if [ -n "$HITS" ]; then
  echo "FEL: aktuella namnet '$CURRENT' är hårdkodat utanför brand.config.json i:"
  echo "$HITS"
  echo "Använd BRAND.name / {brand}-interpolation i stället."
  FAIL=1
fi

if [ "$FAIL" -eq 0 ]; then
  echo "Varumärkesvakt: OK – namnet lever endast i brand.config.json."
fi
exit $FAIL
