# Story 4.6: Recherche autocomplete pour lier un parent à un élève

Status: ready-for-dev

## Story

As an administrateur,
I want to search for a parent by name or email when linking them to a student,
so that I don't need to know or copy-paste a UUID.

## Acceptance Criteria

1. **AC1 - Champ de recherche autocomplete** : Le champ "ID du parent" dans la modale "Ajouter un parent/tuteur" est remplacé par un champ de recherche avec autocomplete. L'admin tape au moins 2 caractères et voit une liste de suggestions de parents correspondants (nom, prénom, email).

2. **AC2 - Résultats de recherche** : Les suggestions affichent le prénom, nom et email de chaque parent trouvé. Seuls les utilisateurs ayant le rôle `ROLE_PARENT` du même tenant sont proposés.

3. **AC3 - Sélection** : L'admin clique sur une suggestion pour la sélectionner. Le parent sélectionné est affiché clairement dans le champ (nom + email). L'admin peut le désélectionner pour chercher à nouveau.

4. **AC4 - Debounce** : Les requêtes de recherche sont debounced (300ms minimum) pour éviter de surcharger l'API.

5. **AC5 - Feedback** : Un indicateur de chargement s'affiche pendant la recherche. Un message "Aucun parent trouvé" s'affiche si la recherche ne retourne aucun résultat.

## Tasks / Subtasks

- [ ] Task 1 - Backend : endpoint de recherche parents (AC: 1, 2)
  - [ ] Créer un endpoint GET `/api/parents/search?q={query}` qui retourne les utilisateurs ROLE_PARENT du tenant courant, filtrés par nom/prénom/email
  - [ ] Limiter les résultats à 10 suggestions maximum
  - [ ] Protéger l'endpoint avec les autorisations admin

- [ ] Task 2 - Frontend : composant autocomplete (AC: 1, 3, 4, 5)
  - [ ] Remplacer le champ UUID dans `GuardianList.svelte` par un composant de recherche autocomplete
  - [ ] Implémenter le debounce (300ms) sur la saisie
  - [ ] Afficher les résultats dans un dropdown avec prénom, nom, email
  - [ ] Permettre la sélection/désélection d'un parent
  - [ ] Afficher le loading et l'état vide

- [ ] Task 3 - Tests E2E (AC: 1-5)
  - [ ] Tester la recherche autocomplete sur la fiche élève
  - [ ] Tester la liaison parent-élève via le nouveau flux

## Dev Notes

### Composants existants à modifier

- `frontend/src/lib/components/organisms/GuardianList/GuardianList.svelte` : remplacer le champ `<input type="text" placeholder="UUID du compte parent">` par un composant autocomplete
- Backend : ajouter un provider/endpoint pour la recherche de parents

### Contexte

Actuellement, pour lier un parent à un élève depuis la fiche élève (`/admin/students/{id}`), l'admin doit saisir manuellement l'UUID du compte parent. C'est inutilisable en pratique car personne ne connait les UUID par coeur.

### Contraintes

- La recherche doit être scoped au tenant courant
- Seuls les utilisateurs avec `ROLE_PARENT` doivent être retournés
- Ne pas proposer les parents déjà liés à cet élève
