- 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
- Webhook avenant: utiliser les données du contrat depuis Supabase quand Lambda envoie 'Non spécifié'
- Ajout des types d'emails manquants dans EmailType (signature-request-employee-amendment, etc.)
- Les emails d'avenant seront maintenant loggés correctement dans email_logs
Note: Exécuter dans Supabase SQL:
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'signature-request-employee-amendment';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'signature-request-salarie';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'contribution-notification';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'support-reply';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'support-ticket-created';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'support-ticket-reply';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'contact-support';