Feature #92
closedFeature #82: Améliorer la génération de PDF pour les contrats avec design professionnel et signatures configurables
Backend — numéro de contrat unique + enregistrement/téléchargement/envoi email
0%
Description
Parent : #82. Dépend du moteur de rendu (#82-rendu).
Numéro de contrat unique auto-incrémenté (CONTRAT-AAAA-NNN) via **séquence Postgres atomique**, affiché en pied de page. Après contre-signature : enregistrer le PDF (`internal_signed_pdf_url`), le rendre téléchargeable et l'envoyer par email via l'EmailPort Resend.
## Acceptance criteria
- [ ] Numéro unique auto-incrémenté persisté ; **deux contrats générés en concurrence ne partagent jamais un numéro**.
- [ ] Numéro affiché en pied de page.
- [ ] Après contre-signature : PDF enregistré (URL persistée), téléchargeable, envoyé par email via Resend.
- [ ] Tests backend (TDD) + lint/typecheck verts.
RA Updated by Redmine Admin about 2 months ago
RA Updated by Redmine Admin about 2 months ago
- Status changed from In development to QA
- pr_url set to https://github.com/Scobby-organisation/scobby/pull/14
PR #14 ouverte vers `dev` (rebasée sur dev, app.module.ts réconcilié avec #89). In development → QA. Numéro unique atomique + délivrance : 5 unit + 4 e2e (concurrence), server 84/84, lint/build verts.
RA Updated by Redmine Admin about 2 months ago
- Status changed from QA to Preprod
Déployé en préprod (https://preprod-scobby.omdev.tech). Passage QA → Preprod.
RA Updated by Redmine Admin about 1 month ago
- Status changed from Preprod to Ready to ship
Livré sur master (dev = preprod = master). Commit `b2aaa9bd` (PR #14) — feat(contracts): numéro de contrat unique + délivrance. Passage en **Ready to ship** — *Shipped* après confirmation du gate prod manuel (Jenkins) sur scobby.fr.
RA Updated by Redmine Admin about 1 month ago
- Status changed from Ready to ship to Shipped
- deploy_status set to deployed
- deployed_at set to 06/23/2026
Déploiement PROD confirmé live sur scobby.fr (gate manuel Jenkins approuvé le 2026-06-23). Passage en **Shipped**.