- Ajout du type 'contract-note-added' dans le système email universel v2 - Email automatique envoyé à paie@odentas.fr quand un client ajoute une note - Fonctionne pour tous les types de contrats (CDDU mono, multi, RG) - Email contient: organisation, code employeur, n° contrat, utilisateur, contenu note - Lien direct vers le contrat dans l'interface staff - Gestion des erreurs: note créée même si email échoue - Documentation complète dans NOTIFICATION_NOTES_CONTRAT.md
114 lines
3.5 KiB
Markdown
114 lines
3.5 KiB
Markdown
# 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`)
|