gigafibre-fsm/services/targo-hub/templates
louispaulb feeae6eb40 feat(campaigns/templates): visible wrapper-expiry date in the email
Two new template variables are auto-derived from r.gift_expires_at at
render time (separately by the worker and the /view fallback to keep
them consistent):

  {{expires_at_date}}  locale-formatted FR/EN long date — "21 août 2026"
                       / "August 21, 2026". Empty when no wrapper token.
  {{expires_in_days}}  remaining days as string (rounded up). Useful
                       for tight deadlines where a date is too distant
                       to convey urgency.

Templates: a small centered badge appears between the CTA button and
the prorata disclaimer, wrapped in a Mustache section so it disappears
cleanly on campaigns that pre-date the wrapper feature.

   Cadeau valide jusqu'au <strong>21 août 2026</strong>
   Gift valid until <strong>August 21, 2026</strong>

Editor merge-tag panel updated so authors can drop these into custom
copy without remembering the exact variable names. The legacy
{{expiry}} field stays — it's still the right tool for promotion-end
dates that don't track the gift link's own deadline.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 10:47:58 -04:00
..
contract-residential.html feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2 2026-04-22 10:44:17 -04:00
gift-email-en.html feat(campaigns/templates): visible wrapper-expiry date in the email 2026-05-22 10:47:58 -04:00
gift-email-en.json feat(campaigns/templates): visible wrapper-expiry date in the email 2026-05-22 10:47:58 -04:00
gift-email-fr.html feat(campaigns/templates): visible wrapper-expiry date in the email 2026-05-22 10:47:58 -04:00
gift-email-fr.json feat(campaigns/templates): visible wrapper-expiry date in the email 2026-05-22 10:47:58 -04:00
gift-email-fr.legacy-rich.html.bak feat(campaigns): MJML canonical templates + test-send button 2026-05-21 22:36:35 -04:00