# Feature: Relance d'invitation auto-déclaration ## 📝 Description Cette fonctionnalité permet au staff de renvoyer l'email d'invitation à l'auto-déclaration à un salarié directement depuis la page `/staff/salaries`. ## 🎯 Objectif Permettre de relancer facilement un salarié qui : - N'a pas reçu l'email initial - N'a pas complété son profil - A besoin d'un nouveau lien (token expiré après 7 jours) - Doit mettre à jour ses documents ## 🔧 Fichiers créés/modifiés ### 1. `/components/staff/ResendInvitationModal.tsx` (NOUVEAU) Composant modal de confirmation avant envoi de la relance. **Fonctionnalités :** - Affichage des informations du salarié (nom, matricule, email) - Validation de la présence d'un email - Message explicatif du contenu de l'email - Confirmation visuelle avant envoi - Feedback pendant l'envoi (loader) - Notification de succès/erreur ### 2. `/components/staff/SalariesGridSimple.tsx` (MODIFIÉ) **Ajouts :** - Import de `ResendInvitationModal` - État `isResendInvitationOpen` pour gérer l'ouverture de la modale - Bouton "Envoyer une relance justifs" en gradient bleu/indigo - Intégration de la modale avec le salarié sélectionné **Emplacement du bouton :** - Au dessus de la card "Informations personnelles" - Pleine largeur avec icône mail - Design attrayant en gradient ### 3. API utilisée : `/api/auto-declaration/generate-token/route.ts` (EXISTANTE) L'API existante est réutilisée. Elle : - Génère un nouveau token sécurisé - Supprime les anciens tokens du salarié - Envoie l'email d'invitation avec le lien personnalisé - Retourne le statut d'envoi ## 🎨 Interface utilisateur ### Bouton de relance ``` ┌─────────────────────────────────────┐ │ 📧 Envoyer une relance justifs │ │ (Gradient bleu → indigo) │ └─────────────────────────────────────┘ ``` ### Modale de confirmation ``` ┌───────────────────────────────────────┐ │ 📧 Relancer le salarié ✕ │ ├───────────────────────────────────────┤ │ │ │ ✓ Email d'invitation à │ │ l'auto-déclaration │ │ │ │ Le salarié recevra un email avec │ │ un lien sécurisé... │ │ │ │ Salarié: Jean Dupont │ │ Matricule: MAT001 │ │ Email: jean.dupont@mail.com │ │ │ │ 💡 Contenu: Lien valide 7 jours... │ │ │ │ [Annuler] [Envoyer] 📧 │ └───────────────────────────────────────┘ ``` ## 📧 Contenu de l'email envoyé L'email envoyé est **exactement le même** que lors de la création du salarié : **Template :** `auto-declaration-invitation` **Contenu :** - Salutation personnalisée avec prénom - Nom de l'organisation employeur - Matricule du salarié - **Lien d'accès sécurisé** avec token unique - Instructions pour : - Compléter les informations personnelles - Uploader les justificatifs (CNI, attestation Sécu, RIB, etc.) - Accepter les conditions RGPD **Validité :** 7 jours ## 🔐 Sécurité - ✅ Vérification de l'authentification staff - ✅ Validation de la présence d'un email - ✅ Génération d'un nouveau token sécurisé (32 bytes hex) - ✅ Suppression automatique des anciens tokens - ✅ Token unique par salarié - ✅ Expiration automatique après 7 jours ## ⚙️ Comportement 1. **Clic sur le bouton** → Ouverture de la modale 2. **Vérification email** → Si absent, message d'erreur et bouton désactivé 3. **Confirmation** → Appel API pour générer token et envoyer email 4. **Pendant l'envoi** → Loader et désactivation des boutons 5. **Succès** → Toast de confirmation et fermeture de la modale 6. **Erreur** → Toast d'erreur avec message détaillé ## 📊 Cas d'usage ### ✅ Cas valides - Salarié avec email valide - Besoin de renvoyer l'invitation - Token expiré (> 7 jours) - Email initial non reçu - Salarié n'a pas complété son profil ### ❌ Cas bloqués - Salarié sans email → Bouton désactivé avec message d'erreur - Pendant l'envoi → Boutons désactivés - Erreur API → Toast d'erreur ## 🎯 Flow complet ``` Staff sélectionne salarié ↓ Clic "Envoyer une relance justifs" ↓ Modale s'ouvre avec infos salarié ↓ Validation email présent ↓ Staff confirme "Envoyer" ↓ API génère nouveau token ↓ Supprime anciens tokens ↓ Envoie email avec lien ↓ Toast succès + fermeture modale ↓ Salarié reçoit email ↓ Clique sur lien → /auto-declaration?token=... ↓ Complète son profil et upload documents ``` ## 💡 Avantages 1. **Simplicité** : Un seul clic depuis la fiche salarié 2. **Confirmation** : Modale explicative avant envoi 3. **Feedback** : Messages clairs de succès/erreur 4. **Sécurité** : Nouveau token à chaque envoi 5. **Traçabilité** : Logs des envois côté serveur 6. **UX** : Bouton visible et design attrayant ## ✅ Tests recommandés 1. **Envoi réussi** - Salarié avec email valide - Vérifier réception de l'email - Vérifier que le lien fonctionne - Vérifier expiration après 7 jours 2. **Salarié sans email** - Bouton doit être désactivé - Message d'erreur affiché - Pas d'appel API 3. **Erreur réseau** - Simuler échec API - Vérifier toast d'erreur - Modale reste ouverte 4. **Double envoi** - Envoyer 2 fois de suite - Vérifier que seul le dernier token est valide - Ancien token doit être supprimé 5. **Changement de salarié** - Ouvrir modale pour salarié A - Changer vers salarié B - Vérifier que la modale affiche les bonnes infos ## 🔄 Intégration avec l'existant - Utilise l'API `/api/auto-declaration/generate-token` existante - Utilise le service `autoDeclarationTokenService` existant - Utilise les templates d'email existants - Compatible avec le système d'auto-déclaration actuel - Pas de modification de la base de données nécessaire ## 📈 Prochaines améliorations possibles - [ ] Historique des relances envoyées - [ ] Indication de la dernière relance envoyée - [ ] Statistiques de complétion après relance - [ ] Envoi groupé à plusieurs salariés - [ ] Personnalisation du message - [ ] Rappel automatique après X jours --- **Date de création** : 12 octobre 2025 **Version** : 1.0.0