# Notification Email - Ajout de Notes sur Contrats ## Vue d'ensemble Lorsqu'un client ajoute une note depuis la page d'un contrat (CDDU mono, multi ou RG), un email de notification est automatiquement envoyé à `paie@odentas.fr`. ## Pages concernées - `/contrats/[id]` - Contrats CDDU mono-mois - `/contrats-multi/[id]` - Contrats CDDU multi-mois - `/contrats-rg/[id]` - Contrats Régime Général ## Fonctionnement ### 1. Ajout d'une note Lorsqu'un utilisateur ajoute une note via le composant `NotesSection` : - La note est enregistrée dans la table `notes` de Supabase - Un email est automatiquement envoyé à l'équipe paie ### 2. API Route **Route** : `POST /api/contrats/[id]/notes` **Processus** : 1. Validation du contenu de la note 2. Récupération des informations du contrat (org_id, numéro) 3. Insertion de la note dans la base de données 4. Récupération des informations de l'organisation (nom, code employeur) 5. Envoi de l'email de notification via le système universel v2 ### 3. Email de notification **Type d'email** : `contract-note-added` **Destinataire** : `paie@odentas.fr` **Informations incluses** : - Nom de l'organisation - Code employeur - Numéro du contrat - Nom de l'utilisateur qui a ajouté la note - Contenu de la note - Lien direct vers le contrat dans l'interface staff **Template** : Utilise le système d'email universel v2 avec : - Carte d'information (organisation, code employeur, contrat, utilisateur) - Carte de détails (contenu de la note) - Bouton CTA vers le contrat dans l'interface staff ## Configuration ### Type d'email ajouté Dans `lib/emailTemplateService.ts` : ```typescript export type EmailTypeV2 = // ... | 'contract-note-added' // Notification interne : note ajoutée à un contrat // ... ``` ### Champs de données ajoutés Dans `EmailDataV2` : ```typescript export interface EmailDataV2 { // ... noteContent?: string; contractId?: string; contractNumber?: string; noteAuthor?: string; // ... } ``` ### Configuration du template ```typescript 'contract-note-added': { subject: '[CONTRAT] Nouvelle note ajoutée - {{contractNumber}}', title: '📝 Nouvelle note sur un contrat', greeting: 'Équipe Paie', mainMessage: 'Un client a ajouté une note sur un contrat.', ctaText: 'Voir le contrat', // ... } ``` ## Gestion des erreurs - Si l'organisation n'est pas trouvée, l'email n'est pas envoyé mais la note est quand même créée - Si l'envoi de l'email échoue, l'erreur est loguée mais la requête ne retourne pas d'erreur (la note est bien créée) - Cela garantit que l'ajout de note fonctionne même si le système d'email rencontre un problème ## Logs Les logs suivants sont générés : - ✅ Email de notification envoyé pour la note ajoutée au contrat: [id] - ⚠️ Impossible de récupérer les informations de l'organisation pour l'email de notification - ❌ Erreur lors de l'envoi de l'email de notification: [error] ## Fichiers modifiés 1. `lib/emailTemplateService.ts` - Ajout du type et de la configuration du template 2. `app/api/contrats/[id]/notes/route.ts` - Ajout de la logique d'envoi d'email 3. `app/api/send-email-v2/route.ts` - Ajout du type dans la liste des types valides ## Notes techniques - Le système utilise le **système d'email universel v2** du projet - L'email est envoyé de manière asynchrone et n'affecte pas la performance de l'ajout de note - Le lien CTA pointe vers l'interface staff : `https://espace-paie.odentas.fr/staff/contrats/[id]` - Le nom de l'utilisateur est récupéré depuis les headers HTTP (`x-user-name` ou `x-company-name`)