# 📧 Résumé : Migration Email Signature Salarié vers Système Universel v2

## 🎯 Objectif atteint

Au lieu que la Lambda `postDocuSealSalarie` envoie directement les emails via AWS SES, elle appelle maintenant une API de l'Espace Paie qui utilise le système universel v2. Tous les emails sont maintenant loggés dans la base de données.

---

## ✅ Ce qui a été fait

### 1. **Espace Paie - Système Email**

#### Fichier : `lib/emailTemplateService.ts`
- ✅ Ajout du type `'signature-request-salarie'` dans `EmailTypeV2`
- ✅ Ajout des champs `matricule` et `typecontrat` dans `EmailDataV2`
- ✅ Configuration complète du template avec :
  - Subject : `"Signez votre contrat {{organizationName}}"`
  - Carte info : employeur + matricule
  - Carte détails : référence, type contrat, dates, poste, production
  - Bouton CTA : "Signer le contrat"
  - Footer personnalisé pour les salariés

#### Fichier : `lib/cleanEnv.ts`
- ✅ Ajout de `LAMBDA_API_KEY` dans l'objet `ENV`

#### Fichier : `app/api/emails/signature-salarie/route.ts` ⭐ NOUVEAU
- ✅ Route POST protégée par API Key
- ✅ Validation des données entrantes
- ✅ Appel à `sendUniversalEmailV2()` avec le type `signature-request-salarie`
- ✅ Retour du messageId SES
- ✅ Logs automatiques dans `email_logs` (via le système universel)

### 2. **Lambda AWS**

#### Fichier : `LAMBDA_SIGNATURE_SALARIE_UPDATED.js` ⭐ CODE MIS À JOUR
Changements par rapport à l'ancien code :

**❌ Supprimé :**
- `sendSignatureEmail()` - Envoi direct via SES
- `uploadEmailToS3()` - Upload du HTML sur S3
- `logToAirtable()` - Journalisation Airtable
- `generateEmailHtml()` - Template HTML hardcodé
- Import de `ses` d'AWS SDK

**✅ Ajouté :**
- Appel POST vers `${ESPACE_PAIE_URL}/api/emails/signature-salarie`
- Header `X-API-Key` pour l'authentification
- Payload structuré avec tous les champs nécessaires
- Gestion d'erreur améliorée avec timeout

**📝 Variables d'environnement :**
- **Nouvelles** : `ESPACE_PAIE_URL`, `ESPACE_PAIE_API_KEY`
- **À supprimer** : `AWS_SES_FROM`, `S3_BUCKET_NAME_EMAILS`, `AIRTABLE_API_KEY`

### 3. **Documentation**

#### Fichier : `LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md` ⭐ NOUVEAU
Guide complet avec :
- Architecture du système
- Configuration AWS Lambda
- Configuration Espace Paie
- Déploiement pas à pas
- Debug & monitoring
- Sécurité
- Gestion des erreurs
- Checklist de déploiement

---

## 🔧 Configuration requise

### Variables d'environnement Espace Paie

```env
# .env.local (développement)
LAMBDA_API_KEY=<générer une clé de 64 caractères hex>

# Vercel (production)
# Ajouter via : vercel env add LAMBDA_API_KEY
```

### Variables d'environnement Lambda AWS

```env
# À AJOUTER
ESPACE_PAIE_URL=https://paie.odentas.fr
ESPACE_PAIE_API_KEY=<même clé que LAMBDA_API_KEY>

# À CONSERVER (pour Supabase, DocuSeal, Zapier)
DOCUSEAL_API_TOKEN=xxxxx
SUPABASE_URL=xxxxx
SUPABASE_SERVICE_ROLE=xxxxx
ZAPIER_WEBHOOK_URL=xxxxx

# À SUPPRIMER (optionnel mais recommandé)
AWS_SES_FROM=paie@odentas.fr
S3_BUCKET_NAME_EMAILS=odentas-emails
AIRTABLE_API_KEY=xxxxx
```

---

## 📊 Flux de données

### Avant (ancien système)

```
DocuSeal → Lambda → AWS SES → Salarié
                  ↓
                 S3 (HTML)
                  ↓
               Airtable (logs)
```

### Après (nouveau système) ⭐

```
DocuSeal → Lambda → API Espace Paie → Système Email v2 → AWS SES → Salarié
                                            ↓
                                    Supabase email_logs
                                            ↓
                                    Interface /staff/email-logs
```

---

## 🎁 Avantages

| Aspect | Avant | Après |
|--------|-------|-------|
| **Templates** | HTML hardcodé dans Lambda | Template universel v2 centralisé |
| **Logs** | Airtable (externe) | Supabase `email_logs` (intégré) |
| **Debugging** | CloudWatch uniquement | CloudWatch + Interface Staff + DB |
| **Cohérence** | Email différent des autres | Même style que tous les emails |
| **Maintenance** | 4 fichiers à maintenir | 1 configuration template |
| **HTML Storage** | S3 manuel | Automatique dans logs |

---

## 🚀 Pour déployer

### 1. Générer l'API Key

```bash
openssl rand -hex 32
# Copier la clé générée
```

### 2. Espace Paie

```bash
# Local
echo "LAMBDA_API_KEY=<clé_générée>" >> .env.local

# Vercel
vercel env add LAMBDA_API_KEY
# Coller la clé
# Puis redéployer
vercel --prod
```

### 3. Lambda AWS

1. Aller dans AWS Console → Lambda → `postDocuSealSalarie`
2. Configuration → Environment variables
3. Ajouter :
   - `ESPACE_PAIE_URL` = `https://paie.odentas.fr`
   - `ESPACE_PAIE_API_KEY` = `<clé_générée>` (la même)
4. Code → Remplacer par `LAMBDA_SIGNATURE_SALARIE_UPDATED.js`
5. Deploy

### 4. Tester

1. Déclencher un webhook DocuSeal
2. Vérifier CloudWatch logs
3. Vérifier `/staff/email-logs`
4. Vérifier la réception de l'email

---

## 🔍 Vérifications

### ✅ L'API fonctionne

```bash
curl -X POST https://paie.odentas.fr/api/emails/signature-salarie \
  -H "X-API-Key: votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "employeeEmail": "test@example.com",
    "signatureLink": "https://test.com",
    "reference": "TEST-001",
    "organizationName": "Test Org"
  }'
```

Réponse attendue :
```json
{
  "success": true,
  "messageId": "01000192...",
  "recipient": "test@example.com",
  "reference": "TEST-001"
}
```

### ✅ Les logs apparaissent

1. Interface : `/staff/email-logs`
2. Filtrer par type : `signature-request-salarie`
3. Vérifier le statut `sent`
4. Cliquer pour voir le HTML

---

## 📁 Fichiers du projet

```
Espace Paie/
├── app/api/emails/signature-salarie/
│   └── route.ts                                    ⭐ NOUVEAU
├── lib/
│   ├── emailTemplateService.ts                     ✏️ MODIFIÉ
│   └── cleanEnv.ts                                 ✏️ MODIFIÉ
├── LAMBDA_SIGNATURE_SALARIE_UPDATED.js             ⭐ NOUVEAU (à copier dans Lambda)
├── LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md         ⭐ NOUVEAU
└── LAMBDA_EMAIL_SIGNATURE_SALARIE_SUMMARY.md       ⭐ CE FICHIER
```

---

## 🆘 Support

En cas de problème :

1. **Logs Lambda** : CloudWatch Logs
2. **Logs API** : Console serveur Next.js (Vercel logs)
3. **Logs email** : `/staff/email-logs` dans l'interface
4. **Documentation** : `LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md`

---

## 📝 Notes

- ✅ Compatible avec l'ancien système (possibilité de rollback)
- ✅ Pas d'impact sur les autres emails
- ✅ Le template peut être modifié dans `emailTemplateService.ts`
- ✅ L'API peut être réutilisée pour d'autres webhooks Lambda

---

*Implémentation réalisée le 15 octobre 2025*  
*Système Email Universel v2 - Odentas Espace Paie*
