✨ 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): Ajoute la publication des produits et les périodes bloquées
Ajoute la possibilité de publier ou masquer un produit.
Permet de bloquer des périodes pour un produit.
Corrige des bugs liés à la suppression des produits du panier.
Mise à jour de l'affichage du calendrier pour les blocages.
```
✨ 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(ReserverController): Modifie la route de création de session.
🐛 fix(ErrorListener): Corrige l'envoi de mails d'erreur en prod.
♻️ refactor(FlowReserve): Simplifie la validation du panier de réservation.
✅ test(ErrorListener): Ajoute des tests pour la gestion des erreurs.
```
✨ 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(ReserverController): Ajoute vérification de disponibilité produit.
🛠️ refactor(BackupCommand): Utilise DatabaseDumper et ZipArchiver.
✨ feat(GitSyncLogCommand): Utilise Gemini pour messages plus clairs.
✨ feat(GenerateVideoThumbsCommand): Utilise VideoThumbnailer service.
✨ feat(AppWarmupImagesCommand): Utilise StorageInterface pour warmup.
🔒️ security(nelmio_security): Renforce la sécurité avec des en-têtes.
🔧 chore(caddy): Améliore la configuration de Caddy pour la performance.
🐛 fix(makefile): Corrige les commandes de test.
🧪 chore(.env.test): Supprime la ligne vide à la fin du fichier.
🔧 chore(doctrine): Active native_lazy_objects.
🔧 chore(cache): Ajoute un cache system.
```
✨ 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: fin de création des contrat dans crm fonctionel et valide
activation partie visiteur sur création et connexion compte visiteur valide et tester
```
✨ feat(DevisController): Améliore la gestion et l'édition des devis
Corrige des bugs et améliore la création/édition des devis, incluant options et lignes, et la gestion des signatures.
```
♻️ refactor(ReserverController): Déplace les routes de réservation à la racine.
♻️ refactor(RedirecListener): Corrige la redirection pour l'intranet.
♻️ refactor(HomeController): Met à jour les routes pour l'intranet.
♻️ refactor(KeycloakAuthenticator): Nettoie KeycloakAuthenticator.
♻️ refactor(security): Modifie les patterns de firewall pour l'intranet.
✨ feat(assets): Met à jour l'URL de web-vitals dans reserve.js.
✨ feat(pwa): Met à jour les URLs du catalogue et des formules dans pwa.yaml.
```
✨ 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(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(SitePerformanceRepository): Ajoute fonction moyenne stats et logique random.
🐛 fix(ReserverController): Corrige la date de création en DateTimeImmutable.
✨ feat(HomeController): Affiche les moyennes des Core Web Vitals.
🎨 style(home.twig): Améliore l'esthétique du tableau de bord et ajoute CWV.
⚡️ perf(reserve.js): Ajoute l'envoi des métriques LCP, INP et CLS.
```
✨ 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.
```
✨ feat(contrat): Affiche les détails du contrat et gère les paiements.
📝 chore(contrat/view): Traduit "ID Yousign" en "Numéro de signature".
🎨 style(reservation/search): Supprime une condition d'affichage des produits.
♻️ refactor(ContratController): Modifie les routes de paiement du contrat.
🐛 fix(Signature/Client): Corrige les valeurs par défaut des champs signature.
🎨 style(revervation/produit): Améliore l'affichage de l'image du produit.
```
✨ feat(reservation): Ajoute la gestion des contrats client et améliore l'authentification.
Corrige l'URL de retour, ajoute la gestion des contrats client et le logout client.
```
✨ feat(ReserverController): Ajoute des routes pour connexion, création de compte et recherche.
Crée les routes pour la connexion (`/reservation/connexion`), la création de compte
(`/reservation/creation-compte`), la gestion du mot de passe
(`/reservation/creation-compte`), et la recherche de produits
(`/reservation/recherche`). Intègre UploaderHelper et Client pour la recherche.
```
✨ feat(templates): Améliore le SEO et l'UX des pages avec des descriptions et titres plus précis.
🐛 fix(ReserverController): Corrige la route 'mentions-legal' en 'mentions-legales'.
➕ feat(templates): Ajoute la page de recherche 'search.twig'.
```
✨ feat(reservation/contrat): Ajoute lieu, identité et sections finances.
Ajoute lieu de l'événement, section identité, tableau des options,
et section finances avec gestion de l'acompte et du solde.
```
✨ feat(ReserverController): Ajoute une route pour afficher les options de réservation.
✨ feat(SiteMapListener): Ajoute les URLs des options au sitemap et utilise updatedAt.
✨ feat(Options): Ajoute la fonction slug pour générer un slug à partir de l'ID et du nom.
✨ feat(ReserverController): Ajoute la route et la vue pour le workflow de réservation.
✨ feat(SiteMapListener): Ajoute les URL du catalogue et workflow de réservation au sitemap.
✨ feat(templates): Crée le template pour la page "Comment réserver".
✨ feat(templates): Améliore les descriptions SEO des pages catalogue et contact.
```
🐛 fix(ReserverController): Corrige la route de la sitemap.
♻️ refactor(SiteMapListener): Génère les URLs des produits dans la sitemap.
🔧 chore(ansible): Ajoute le dossier seo aux dossiers à sauvegarder.
✨ feat(ReserverController): Ajoute les routes et vues pour le catalogue.
✨ feat(templates): Ajoute template catalogue et modifie base et contact.
✨ feat(assets): Ajoute loader turbo, filtre catalogue et améliore JS.
```