espace-paie-odentas/scripts
odentas 26132f38ce feat: Ajouter script migration PDF avenants Airtable → S3
- Téléchargement des PDF depuis URLs Airtable
- Upload vers S3 avec pattern avenants/{reference}_avenant_{timestamp}.pdf
- Mise à jour de pdf_s3_key et pdf_url dans Supabase
- 91 PDF migrés avec succès
2025-11-05 19:32:25 +01:00
..
check-columns.mjs Initial commit - TypeScript errors fixed, build working 2025-10-07 14:51:56 +02:00
check-feminisations-table.mjs Initial commit 2025-10-12 17:05:46 +02:00
clear-sign-positions.ts feat: Consolidation système Odentas Sign + améliorations interface staff 2025-10-29 17:55:24 +01:00
extract-pdf-text.js feat: Consolidation système Odentas Sign + améliorations interface staff 2025-10-29 17:55:24 +01:00
fix-rls-contribution-notifications.sql Sécurité Virements et Cotisations 2025-10-16 17:42:00 +02:00
fix-rls-organization-details.sql Minima 2025-10-17 13:02:39 +02:00
migrate-avenants-from-airtable.ts feat: Amélioration de la page staff/avenants avec pagination et filtres 2025-11-05 18:28:40 +01:00
migrate-avenants-pdf-from-airtable.ts feat: Ajouter script migration PDF avenants Airtable → S3 2025-11-05 19:32:25 +01:00
migrate-employee-docuseal-slugs.ts feat: Stocker et utiliser employee_docuseal_slug pour signature-salarie 2025-10-22 17:35:50 +02:00
migrate-feminisations.mjs Initial commit 2025-10-12 17:05:46 +02:00
README.md Initial commit - TypeScript errors fixed, build working 2025-10-07 14:51:56 +02:00
render-email.js Initial commit - TypeScript errors fixed, build working 2025-10-07 14:51:56 +02:00
send-test-email.js Initial commit - TypeScript errors fixed, build working 2025-10-07 14:51:56 +02:00
test-demo-domains.sh Initial commit 2025-10-12 17:05:46 +02:00
test-pdfium-extraction.ts feat: Consolidation système Odentas Sign + améliorations interface staff 2025-10-29 17:55:24 +01:00
verify-contracts-before-migration.ts feat: Amélioration de la page staff/avenants avec pagination et filtres 2025-11-05 18:28:40 +01:00
verify-pdfmonkey-data.js Initial commit - TypeScript errors fixed, build working 2025-10-07 14:51:56 +02:00
verify-rls-facturation-informations.sql Minima 2025-10-17 13:02:39 +02:00
verify-rls-policies.sql Améliorations sécurité pages contrats 2025-10-16 16:49:05 +02:00
verify-rls-virements-cotisations.sql Sécurité Virements et Cotisations 2025-10-16 17:42:00 +02:00

Système d'Email Universel - Guide Développeur

État actuel du système

PRÊT À L'EMPLOI - Le système universel avec template centralisé et textes configurables est maintenant activé en production.

Fonctionnement

Quand tu annules/modifies/crées un CDDU :

  1. Template utilisé : templates-mails/universal-template.html (Handlebars)
  2. Textes : Fusion entre templates-mails/texts.json et templates intégrés
  3. Rendu : Handlebars + conversion data-attributes → inline CSS
  4. Envoi : SES via sendUniversalEmailV2()

Flux d'emails CDDU

  • Création : contract-createdsendContractNotifications()
  • Modification : contract-updatedsendContractUpdateNotifications()
  • Annulation : contract-cancelledsendContractCancellationNotifications()

Tests en développement

1. Preview local (dry-run)

# Prévisualiser l'email d'annulation
node scripts/send-test-email.js --template universal-template.html --sample annulation

# Ouvrir tmp/send-preview.html dans le navigateur

2. Envoi réel SES

# Configuration environnement (exemple)
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret
export AWS_REGION=eu-west-3
export FROM_EMAIL=paie@odentas.fr

# Envoi test
node scripts/send-test-email.js --template universal-template.html --sample annulation --to dev@example.com --send

3. Données personnalisées

# Créer data.json avec vos données
echo '{"employeeName":"Test User","contractReference":"TEST-123"}' > data.json

# Utiliser le fichier de données
node scripts/send-test-email.js --data data.json --sample annulation --to dev@example.com --send

Personnalisation

Modifier les textes

Éditer templates-mails/texts.json :

{
  "contract-cancelled": {
    "subject": "CDDU annulé - {{employeeName}}",
    "title": "Contrat CDDU annulé",
    "mainMessage": "Votre contrat a été annulé."
  }
}

Modifier le design

Éditer templates-mails/universal-template.html :

  • Couleurs : utiliser data-attributes (ex: data-button-color="{{buttonColor}}")
  • Structure : HTML + Handlebars ({{#if}}, {{#each}})

Production vs Ancien système

Aspect Ancien Nouveau (actuel)
Templates Individuels (annulationCDDU.html, etc) Universel (universal-template.html)
Textes Hard-codés dans templates Centralisés (texts.json)
Logique Regex string replace Handlebars
Styles CSS statique Data-attributes → inline CSS
Maintenance 3+ fichiers à synchroniser 1 template + 1 fichier textes

Notes importantes

  • ⚠️ SES Sandbox : Vérifier les adresses destinataires si le compte est en sandbox
  • ⚠️ FROM_EMAIL : Doit être une adresse vérifiée dans SES
  • TypeScript : Le système compile sans erreurs
  • Backward compatible : L'ancien sendEmail() reste disponible pour d'autres usages

Dépannage

Email non reçu

  1. Vérifier les logs de la console pour les erreurs SES
  2. Vérifier que FROM_EMAIL est vérifié dans AWS SES
  3. Vérifier que le destinataire est vérifié (si sandbox)

Template cassé

  1. Tester avec scripts/send-test-email.js en dry-run
  2. Vérifier la syntaxe Handlebars dans universal-template.html
  3. Vérifier que texts.json est un JSON valide

Styles incorrects

  1. Les couleurs dynamiques doivent utiliser data-attributes
  2. Éviter les placeholders {{...}} dans les blocs <style>
  3. Le service convertit automatiquement data-* → style inline