✨ feat(liip_imagine): Ajoute un filtre pour l'image de couverture de la vidéo.
🐛 fix(home.twig): Détecte les bots et sert une image au lieu d'une vidéo.
➕ feat(composer): Ajoute jaybizzle/crawler-detect pour détecter les bots.
🎨 style(revervation/base.twig): Améliore l'effet de survol du logo.
```
✨ feat(templates/base.twig): Améliore l'accessibilité et le SEO
Corrige les métadonnées viewport et ajoute une description par défaut. Améliore le contraste des couleurs et ajoute des rôles ARIA pour la navigation. Optimise le chargement des vidéos.
```
✨ feat(cloudflare): Ajoute la commande pour purger le cache Cloudflare.
🐛 fix(maintenance): Décommente le listener de maintenance.
⚙️ chore(workflows): Ajoute la purge de cache Cloudflare au workflow.
```
✨ feat(error/500): Ajoute une page d'erreur 500 personnalisée.
🐛 fix(ErrorListener): Gère les erreurs 404 et 500 et les affiche.
📝 chore(security/maintenance): Ajoute meta robots à maintenance.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(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.
```
✨ feat(contrats/add.twig): Ajoute le détail des options au formulaire
✨ feat(SearchProduct.js): Implémente la recherche et la sélection d'options
🐛 fix(DevisController.php): Corrige la création/édition de devis et supprime un devis
✨ feat(admin.js): Enregistre les custom elements SearchOptions
✨ feat(templates/dashboard/devis): Permet l'édition et la suppression d'un devis
```
✨ feat(Devis): Ajoute options, dates début/fin et améliore affichage PDF
Ajoute les champs date de début et fin au devis. Permet l'ajout d'options au devis. Améliore l'affichage du PDF.
```
✨ 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(Devis.php): Ajoute liaison Options <-> Devis et méthode get/set.
✨ feat(options/add.twig): Ajoute template création/édition des options.
♻️ refactor(.env): Met à jour les URLs ngrok pour la synchro Stripe.
🐛 fix(StripeCommand.php): Corrige et améliore la synchro Stripe.
✨ feat(products.twig): Ajoute gestion et affichage des options.
✨ feat(Client.php): Ajoute gestion des options (CRUD) pour Stripe.
✨ feat(vich_uploader.yaml): Ajoute configuration pour upload images options.
✨ feat(ProductController.php): Gère les options (CRUD) dans le contrôleur.
✨ feat(OptionsType.php): Ajoute formulaire pour la gestion des options.
```
✨ feat(dashboard/contrats): Ajoute le formulaire de création de contrat
Ajoute le formulaire de création de contrat avec gestion des adresses, des détails techniques et des prestations.
```
➕ feat(contrats): Ajoute le formulaire de création de contrats.
📝 feat(Contrats): Crée le type de formulaire ContratsType.
✨ feat(Customer): Ajoute la relation one-to-many avec Contrats.
➕ feat(contrats): Ajoute la vue de création de contrats.
✨ 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.
```