- Ajout sous-header total net à payer sur page virements-salaires
- Migration transfer_done_at pour tracking précis des virements
- Nouvelle page saisie tableau pour création factures en masse
- APIs bulk pour mise à jour dates signature et jours technicien
- API demande mandat SEPA avec email template
- Webhook DocuSeal pour signature contrats (mode TEST)
- Composants modaux détails et vérification PDF fiches de paie
- Upload/suppression/remplacement PDFs dans PayslipsGrid
- Amélioration affichage colonnes et filtres grilles contrats/paies
- Template email mandat SEPA avec sous-texte CTA
- APIs bulk facturation (création, update statut/date paiement)
- API clients sans facture pour période donnée
- Corrections calculs dates et montants avec auto-remplissage
- Programme de parrainage (referrals):
* Page /parrainage pour clients et staff
* API /api/referrals (GET, POST)
* Table referrals avec tracking complet
* Email template avec design orange/gradient
* Réductions: 30€ HT parrain, 20€ HT filleul
- Bannières promotionnelles (promo_banners):
* Page staff /staff/offres-promo pour gérer les bannières
* API /api/promo-banners (CRUD complet)
* Composant PromoBanner affiché en haut de l'espace
* Compte à rebours optionnel
* Customisation couleurs (gradient, texte, CTA)
- Déduplication des webhooks DocuSeal:
* Table webhook_events pour tracker les webhooks traités
* Helper checkAndMarkWebhookProcessed()
* Intégré dans docuseal-amendment et docuseal-amendment-completed
* Prévient les doublons d'emails
- Avenants signés:
* API GET /api/contrats/[id]/avenants
* Affichage des avenants signés dans DocumentsCard
* Génération d'URLs presignées S3
- Brouillons d'emails groupés:
* Table bulk_email_drafts pour sauvegarder les brouillons
* Template HTML bulk-email-template.html
- Améliorations ContractsGrid:
* Ajout filtre par production (dépendant de la structure)
* Tri par production
- Templates emails:
* referral-template.html (parrainage)
* bulk-email-template.html (emails groupés staff)
- Ajout bouton calculatrice avec gradient bleu-indigo
- Ajout bouton Minima avec gradient émeraude-teal et lien vers /minima-ccn
- Correction focus trap : autoriser liens target=_blank
- Ajout champs conditionnels panier repas (nombre, CCN, montant personnalisé)
- DatePickerCalendar : initialisation sur date de début contrat si pas de dates sélectionnées
- DatesQuantityModal : option 'Ne pas appliquer...' pour tous types (repré/répét/heures)
- DatesQuantityModal : adaptation texte selon type (représentations/répétitions/heures)
- DatesQuantityModal : champ 'Appliquer à toutes les dates' pour saisie rapide
- DatesQuantityModal : reset quantités quand option 'Ne pas appliquer' cochée
- DatesQuantityModal : aperçu sans détails quand option cochée
- Intégration durée répétitions dans formatage dates (3h ou 4h, avec 'chacun' si >1)
- Notification paiement salaires : nouvel email 'salary-transfer-payment-confirmation'
- Notification paiement salaires : API route /api/staff/virements-salaires/[id]/notify-payment-sent
- Notification paiement salaires : modal NotifyPaymentSentModal avec détails paiement
- Notification paiement salaires : tracking avec payment_notification_sent/sent_at
- Notification paiement salaires : affichage statut dans modal virements
- Template email : support detailsCardDisclaimer pour mentions légales
✨ Nouvelles fonctionnalités
- Page de gestion des avenants (/staff/avenants)
- Page de détail d'un avenant (/staff/avenants/[id])
- Création d'avenants (objet, durée, rémunération)
- Génération automatique de PDF d'avenant
- Signature électronique via DocuSeal (employeur puis salarié)
- Changement manuel du statut d'un avenant
- Suppression d'avenants
🔧 Routes API
- POST /api/staff/amendments/create - Créer un avenant
- POST /api/staff/amendments/generate-pdf - Générer le PDF
- POST /api/staff/amendments/[id]/send-signature - Envoyer en signature
- POST /api/staff/amendments/[id]/change-status - Changer le statut
- POST /api/webhooks/docuseal-amendment - Webhook après signature employeur
- GET /api/signatures-electroniques/avenants - Liste des avenants en signature
📧 Système email universel v2
- Migration vers le système universel v2 pour les emails d'avenants
- Template 'signature-request-employee-amendment' pour salariés
- Insertion automatique dans DynamoDB pour la Lambda
- Mise à jour automatique du statut dans Supabase
🗄️ Base de données
- Table 'avenants' avec tous les champs (objet, durée, rémunération)
- Colonnes de notification (last_employer_notification_at, last_employee_notification_at)
- Liaison avec cddu_contracts
🎨 Composants
- AvenantDetailPageClient - Détail complet d'un avenant
- ChangeStatusModal - Changement de statut manuel
- SendSignatureModal - Envoi en signature
- DeleteAvenantModal - Suppression avec confirmation
- AvenantSuccessModal - Confirmation de création
📚 Documentation
- AVENANT_EMAIL_SYSTEM_MIGRATION.md - Guide complet de migration
🐛 Corrections
- Fix parsing défensif dans Lambda AWS
- Fix récupération des données depuis DynamoDB
- Fix statut MFA !== 'verified' au lieu de === 'unverified'