#!/usr/bin/env bash
#
# chercher_issue.sh — cherche un sujet dans le CONTENU des issues, pas leur titre.
#
# POURQUOI CE SCRIPT EXISTE
# La règle « vérifier qu'une issue n'existe pas déjà » a été enfreinte trois fois
# (#382/#350 le 13/08, puis #401/#398 le 14/08). À chaque fois pour la même
# raison : `gh issue list` n'affiche que les TITRES, et un sujet vit dans le CA
# ou dans un commentaire. Une issue intitulée « L'API ne sert pas à l'apprenant
# de quoi reprendre » couvrait la dernière activité — invisible depuis la liste.
#
# Une règle qu'on doit se rappeler d'appliquer finit par ne plus l'être. Celle-ci
# devient une commande.
#
# USAGE
#   scripts/chercher_issue.sh "last_activity|dernière activité"   # dépôt courant
#   scripts/chercher_issue.sh "échéance" AAZTEKDEV/EFEKTIVACADEMIE-FRONT
#
# À LANCER AVANT TOUT `gh issue create`. Sans exception.

set -euo pipefail

MOTIF="${1:-}"
DEPOT="${2:-$(gh repo view --json nameWithOwner --jq .nameWithOwner)}"

if [ -z "$MOTIF" ]; then
  echo "usage: $0 \"motif|autre motif\" [proprietaire/depot]" >&2
  exit 2
fi

echo "Recherche de « $MOTIF » dans le CONTENU des issues de $DEPOT"
echo "(titre + corps + tous les commentaires, ouvertes ET fermées)"
echo

TROUVE=0
for etat in open closed; do
  for n in $(gh issue list -R "$DEPOT" --state "$etat" --limit 300 --json number --jq '.[].number'); do
    corps=$(gh issue view "$n" -R "$DEPOT" \
      --json title,body,comments \
      --jq '.title + "\n" + .body + "\n" + ([.comments[].body] | join("\n"))' 2>/dev/null || true)

    if printf '%s' "$corps" | grep -qiE "$MOTIF"; then
      titre=$(printf '%s' "$corps" | head -1 | cut -c1-78)
      echo "  #$n [$etat] $titre"
      # La ligne qui correspond : c'est elle qui dit si le sujet est vraiment couvert.
      printf '%s' "$corps" | grep -iE -m2 "$MOTIF" | sed 's/^/        ┆ /' | cut -c1-110
      echo
      TROUVE=$((TROUVE + 1))
    fi
  done
done

if [ "$TROUVE" -eq 0 ]; then
  echo "  Aucune issue ne mentionne ce sujet. Création légitime."
else
  echo "  $TROUVE issue(s) mentionnent déjà ce sujet."
  echo "  ⚠️  LIRE CHACUNE avant de créer. Enrichir une issue existante vaut"
  echo "      toujours mieux qu'en ouvrir une deuxième sur le même sujet :"
  echo "      deux issues sur un sujet, c'est une décision prise deux fois."
fi
