Restauration complète du système d'estimation de livraison :
- Page publique /estimer-la-livraison + liens navigation
- Calcul automatique livraison dans FlowController (admin)
- Champs distance/prix + carte Leaflet dans la vue admin flow
- Estimation livraison dans la confirmation de réservation
- Ligne "Frais de livraison" sur les devis générés
Seules les modifications CGV (suppression section 7.2 rayon 30km) sont conservées.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Suppression complète du système de calcul de frais de livraison (rayon 30km depuis Danizy) :
- Route /estimer-la-livraison et template estimate_delivery.twig
- Calcul automatique livraison dans FlowController et ReserverController
- Champs distance/prix livraison dans la vue admin flow
- Ligne "Frais de livraison" sur les devis générés
- Section 7.2 (mise en relation + rayon 30km) dans les CGV (twig + PDF contrat/devis)
- Liens navigation "Estimer la livraison" (desktop + mobile)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
✨ feat(reservation/flow): Améliore le flux de réservation et ajoute des options.
Cette commit améliore le flux de réservation, ajoute une estimation des
frais de livraison et gère les options de produit et les paiements.
```
✨ feat(ReserverController): Gère les options de produits au panier et en session.
Ajoute la gestion des options de produits lors de l'ajout au panier et dans la session de réservation. Inclut des corrections pour les options orphelines.
```
✨ feat(Product.php): Ajoute la liaison ManyToMany avec l'entité Options
✨ feat(Devis.php): Ajoute la propriété isNotAddCaution pour masquer la caution
♻️ refactor(.env): Met à jour les URLs de SIGN, STRIPE et CONTRAT
✨ feat(workflow.twig): Adapte le workflow et supprime l'étape de caution
✨ feat(NewDevisType.php): Ajoute un champ pour gérer
✨ feat(ReserverController): Génère un devis PDF provisoire basé sur la session.
🎨 style(flow_confirmed.twig): Ajoute un lien pour télécharger le devis provisoire.
```
✨ feat(ReserverController): Ajoute route de confirmation de réservation.
✨ feat(FeedController): Crée un contrôleur pour les flux RSS.
✨ feat(templates): Ajoute un template pour les flux RSS.
✨ feat(templates): Ajoute des liens RSS dans la base du template.
```
✨ feat(revervation): [Ajoute la création de session de réservation et le flow]
🐛 fix(PurgeCommandTest): [Utilise addCommand au lieu de add pour les commandes]
📝 chore(deps): [Mise à jour des dépendances Composer et corrections]
🐛 fix(KeycloakAuthenticator): [Corrige le type nullable de l'exception start]
✨ feat(Customer): [Ajoute les sessions de commandes aux entités Customer]
♻️ refactor(AppLogger): [Refactorise l'AppLogger pour obtenir l'UserAgent]
✨ feat(FlowReserve): [Ajoute une action de validation du panier]
```
✨ feat(reservation): Ajoute le panier et sélection de date globale
Ajoute un composant de panier accessible depuis toutes les pages de réservation et un sélecteur de date global.
```
✨ feat(reservation): Ajoute le panier et sélection de date globale
Ajoute un composant de panier accessible depuis toutes les pages de réservation et un sélecteur de date global.
```
✨ feat(workflow.twig): Ajoute animations AOS pour un effet visuel amélioré.
✨ feat(app.js): Initialise la librairie AOS pour les animations.
➕ chore(package.json): Ajoute AOS comme dépendance.
✨ feat(reserve.js): Initialise AOS pour les animations.
✨ feat(formules.twig): Ajoute animations AOS pour améliorer l'UX.
✨ feat(catalogue.twig): Ajoute animations AOS pour une meilleure UX.
✨ feat(dashboard/base.twig): Améliore la mise en page du dashboard.
✨ feat(base.twig): Ajoute macros pour les liens de navigation.
✨ feat(home.twig): Ajoute animations AOS et macros pour la page d'accueil.
```
✨ feat(Product.php): Ajoute les entités ProductPhotos et ProductVideo.
✨ feat(Product): Ajoute les collections photos et vidéos au produit.
🆕 feat(ProductPhotosType): Crée le formulaire d'upload des photos.
🆕 feat(ProductVideoType): Crée le formulaire d'upload des vidéos.
🎨 refactor(add.twig): Ajoute les formulaires et affichage des photos/vidéos.
🎨 refactor(produit.twig): Affiche les photos et vidéos sur la page produit.
♻️ refactor(vich_uploader.yaml): Ajoute les mappings pour photos et vidéos.
🐛 fix(ProductController): Gère l'ajout/suppression des photos et vidéos.
```
✨ feat(ReserverController): Ordonne les formules par position
🎨 style(formule/show.twig): Simplifie le texte de tarification
♻️ refactor(FormulesController): Permet de réordonner les formules
🐛 fix(SortableReorder.js): Corrige l'attribut URL de tbody
✨ feat(formules/view.twig): Ajoute un sélecteur de type de formule
🐛 fix(formules.twig): Correction de l'ordre d'affichage
🐛 fix(revervation.twig): Correction de la description SEO
```
✨ feat(revervation/formule): Affiche détails et composition des formules
Partie gestion formules terminer
Affiche la composition des formules (pack ou personnalisable), avec
détails produits et options. Ajoute des sections dynamiques.
```
✨ feat(translations): Ajoute et met à jour les traductions françaises.
This commit adds new French translations for the catalog page, base SEO,
navigation, and footer. It also updates existing translations to be
more accurate and consistent.
```
🔥 refactor(translations): Supprime le fichier de traduction français obsolète.
🌐 feat(templates/revervation): Ajoute la prise en charge de l'internationalisation (i18n).
```
✨ feat(gitignore): Ajoute Catalogue.pdf aux fichiers ignorés.
🎨 style(templates): Ajoute un lien vers le catalogue PDF dans la page produits.
♻️ refactor(pwa): Met à jour l'URL du catalogue PDF dans le fichier PWA.
♻️ refactor(templates): Met à jour l'URL du catalogue PDF dans la base de réservation.
✨ feat(ProductController): Ajoute une route pour mettre à jour le catalogue PDF.
```
✨ feat(ReserverController): Affiche les formules publiées et leur détail.
✨ feat(formule/show.twig): Crée template pour afficher détails d'une formule.
🎨 style(formules.twig): Améliore l'affichage des formules disponibles.
```
✨ feat(admin.js): Ajoute CrmEditor pour l'édition WYSIWYG et l'initialise.
🎨 style(templates): Intègre CrmEditor pour la description des produits et formules.
```
✨ feat(Formules.php): Ajoute les propriétés de prix et la fonction slug.
✨ feat(ReserverController.php): Affiche les formules sur la page d'accueil.
♻️ refactor(Dashboard/FormulesController.php): Gère le statut et les prix.
✨ feat(templates/dashboard): Affiche les tarifs des formules.
```
✨ feat(SitePerformance): Ajoute la collecte des métriques web vitales.
🐛 fix(caddy): Corrige la redirection du script Trustpilot.
📦 chore: Ajoute web-vitals comme dépendance et adapte package.json.
```
✨ feat(UtmEvent): Ajoute le tracking Umami des utilisateurs connectés.
Ajoute l'identification des utilisateurs Umami et enregistre la session.
Implémente une bannière de consentement pour les cookies et gère l'état.
```