Entite Contrat:
- Champ JSON services (service, quantity, priceHt)
- Catalogue SERVICE_CATALOG avec 11 services et prix
- getTotalHt() calcule le total
Controller:
- Formulaire accepte service_key[] et service_qty[] en repeater
- Associe les prix depuis le catalogue
Template index (modal creation):
- Repeater dynamique : select service + champ quantite + bouton X
- Bouton "+ Ajouter un service"
- JS avec nonce CSP
Template show:
- Tableau services inclus (service, quantite, prix unitaire, sous-total)
- Total HT en pied de tableau
PDF ContratMigrationSiteconseilPdf:
- Section "SERVICES INCLUS DANS LE CONTRAT" avec tableau
(service, qte, prix unitaire HT, sous-total HT)
- Total HT en bas
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>