# Patch — Contacts WhatsApp multiples par tuteur

## Objectif

Ce patch ajoute une table de contacts WhatsApp multiples pour les parents/tuteurs.
Toutes les notifications envoyées à un tuteur sont maintenant diffusées à tous ses numéros WhatsApp actifs.

Providers compatibles :

- `WHATSAPP_PROVIDER=swg`
- `WHATSAPP_PROVIDER=wasender`
- `WHATSAPP_PROVIDER=techsoft`
- `WHATSAPP_PROVIDER=greenapi` / `green_api`

Les providers existants ne sont pas supprimés.

## Nouveaux fichiers principaux

- `src/Entity/TuteurWhatsappContact.php`
- `src/Repository/TuteurWhatsappContactRepository.php`
- `src/Service/Whatsapp/TuteurWhatsappResolver.php`
- `src/Command/MigrateTuteurWhatsappContactsCommand.php`
- `src/Controller/School/TuteurWhatsappContactController.php`
- `src/Form/School/TuteurWhatsappContactType.php`
- `templates/school/tuteur_whatsapp_contact/*`
- `migrations/Version20260609124500.php`

## Installation

```bash
unzip -o salsabil_madrassas_patch_tuteur_multi_whatsapp.zip

APP_ENV=prod APP_DEBUG=0 php bin/console doctrine:migrations:migrate --no-interaction
APP_ENV=prod APP_DEBUG=0 php bin/console app:tuteurs:migrate-whatsapp-contacts
APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear
APP_ENV=prod APP_DEBUG=0 php bin/console cache:warmup
```

## Fonctionnement

Chaque tuteur peut avoir plusieurs contacts WhatsApp :

- libellé du contact ;
- relation / précision ;
- numéro WhatsApp ;
- principal ou secondaire ;
- actif ou inactif ;
- ordre d’affichage.

La fiche tuteur contient un nouveau bloc **Contacts WhatsApp**.

## Migration des anciens numéros

La commande :

```bash
APP_ENV=prod APP_DEBUG=0 php bin/console app:tuteurs:migrate-whatsapp-contacts
```

crée automatiquement des contacts depuis :

- `telephoneWhatsapp`
- `telephonePrincipal`

Elle ignore les doublons.

## Notifications impactées

Les notifications suivantes utilisent désormais tous les numéros actifs du tuteur :

- lien d’activation parent ;
- accès portail parent ;
- mot de passe oublié ;
- inscription reçue ;
- inscription validée ;
- inscription rejetée ;
- fiche PDF d’inscription ;
- invitations groupes WhatsApp ;
- activités publiées ;
- suivi journalier ;
- rapports de suivi PDF.

## Compatibilité

Si la table de contacts n’est pas encore renseignée, les anciens champs du tuteur continuent d’être utilisés.
Cela permet un déploiement progressif.

## Tests conseillés

1. Ouvrir une fiche tuteur.
2. Vérifier le bloc **Contacts WhatsApp**.
3. Ajouter un second numéro.
4. Envoyer le lien d’activation.
5. Vérifier que les deux numéros reçoivent le message.
6. Désactiver le second numéro.
7. Renvoyer un message.
8. Vérifier qu’un seul numéro reçoit la notification.
9. Tester avec `WHATSAPP_PROVIDER=swg`, puis `wasender` si besoin.

## Retour arrière

Pour revenir au comportement avant patch :

1. Garder les anciens champs `telephoneWhatsapp` / `telephonePrincipal`.
2. Ne plus utiliser les contacts multiples.
3. En dernier recours, rollback de migration :

```bash
APP_ENV=prod APP_DEBUG=0 php bin/console doctrine:migrations:migrate prev
```

Attention : le rollback supprime la table des contacts multiples.
