♻️ refactor(FlowReserve.js): Utilise sessionStorage au lieu de localStorage.
✨ feat(FlowAddToCart.js): Utilise sessionStorage pour les dates de réservation.
✨ feat(FlowDatePicker.js): Utilise sessionStorage pour conserver les dates.
```
✨ 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): 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(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(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(Product.php): Ajoute ProductDoc pour gérer les documents.
✨ feat(Contrats.php): Gère les fichiers du contrat via VichUploader.
✨ feat(templates): Crée template mail signature contrat.
✨ feat(SignatureController): Ajoute la signature du contrat.
✨ feat(ContratsController): Crée contrat depuis devis et liste contrats.
✨ feat(Client): Crée soumission contrat Docuseal.
✨ feat(DevisPdfService): Corrige l'assurance RC Pro.
✨ feat(.env): Ajoute CONTRAT_BASEURL.
✨ feat(ProductDocType): Crée formulaire pour les documents produit.
✨ feat(contrats/list.twig): Liste et actions pour les contrats.
✨ feat(UtmEvent.js): Track click document produit.
✨ feat(ContratEvent.php): Crée event pour envoi contrat.
✨ feat(admin.js): Initialise la recherche dynamique des contrats.
✨ feat(ContratPdfService): Génère le PDF du contrat DocuSeal.
✨ feat(products/add.twig): Ajoute gestion des documents produits.
✨ feat(ContratController): Crée controlleur contrat.
✨ feat(ContratSubscriber.php): Envoi du contrat par email.
✨ feat(reservation/produit.twig): Affiche les documents produit.
✨ feat(ProductController.php): Refactorisation et ajout des documents.
```