✨ 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(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(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(admin.js): Ajoute le calculateur de commission Stripe.
✨ feat(add.twig): Affiche la commission Stripe estimée pour les tarifs.
✨ feat(view.twig): Affiche la commission Stripe estimée sur le total contrat et le solde.
```
✨ 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(admin): Enregistre et utilise SortableReorder.js
Ajoute SortableReorder.js pour permettre le tri des lignes de tableau par drag-and-drop. L'implémente dans la page des formules.
```
✨ feat(templates): Améliore la lisibilité et l'esthétique de l'interface
Ce commit met à jour les couleurs et les styles de texte dans plusieurs
templates pour améliorer la lisibilité et l'esthétique globale de
l'interface utilisateur. Les couleurs de texte secondaires sont
ajustées pour un meilleur contraste.
```
✨ feat(crm): Améliore l'interface et la recherche de produits/options
Ce commit modernise l'interface utilisateur pour la recherche et la sélection de produits et d'options. Il améliore l'apparence
visuelle, l'ergonomie et la réactivité, en utilisant des composants plus modernes et des animations plus fluides. Les
fonctionnalités de recherche ont été optimisées pour une meilleure expérience utilisateur. Ajout de nouvelles classes
'SearchProductDevis' et 'SearchOptionsDevis' pour la gestion des options dans Devis.
```
✨ feat(facture): Ajoute la gestion des factures et paiements (CRUD, export).
Cette commit ajoute la fonctionnalité de gestion des factures et des paiements,
incluant l'affichage, la recherche, l'export Excel et la pagination.
```
✨ feat(contrats): Ajoute gestion manuelle des paiements et états de caution
Ajoute la gestion manuelle des paiements (accompte, solde, caution) et permet la libération/encaissement de caution avec envoi de mail.
```
✨ feat(contrats): Ajoute détails option, actions paiements et style liste
Ajoute un champ détails pour les options de contrat, permet la validation
manuelle des paiements (accompte, caution, solde) et améliore le style
de la liste des contrats.
```
✨ 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.
```
✨ feat(Security/Listener): Utilise APP_ENV pour le mode dev.
✨ feat(assets/admin.js): Ajoute le composant PlaningLogestics.
✨ feat(assets/libs): Crée composant PlaningLogestics pour calendrier.
➕ feat(package.json): Ajoute les dépendances FullCalendar.
➕ feat(templates/base.twig): Ajoute lien vers le planing de réservation.
➕ feat(src/Controller): Crée controller Reservation pour le planning.
➕ feat(templates): Crée template pour le planning de réservation.
```
✨ 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(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(FormulesController): Gère l'ajout et la mise à jour des produits inclus.
Ajoute la logique pour ajouter et mettre à jour les produits inclus dans une formule, avec persistance en base de données. Affiche également les produits inclus existants.
✨ feat(admin.js): Enregistre le composant SearchProductFormule.
Enregistre le composant SearchProductFormule pour permettre son utilisation dans les templates.
✨ feat(config-pack.twig): Affiche et permet la gestion des produits inclus.
Affiche une liste des produits inclus dans une formule et permet leur ajout, modification et suppression via un formulaire.
✨ feat(SearchProductFormule.js): Crée un composant de recherche de produits.
Crée un composant web personnalisé pour rechercher et sélectionner des produits à ajouter à une formule.
```
✨ 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(Formules.php): Ajoute les champs description et isPublish à l'entité Formules.
✨ feat(add.twig): Ajoute le champ description au formulaire d'ajout de formules.
✨ feat(FormulesType.php): Ajoute le champ description au formulaire FormulesType.
✨ feat(Dashboard/FormulesController.php): Gère l'ajout, la suppression et la vue des formules.
✨ feat(view.twig): Crée la vue pour modifier les détails d'une formule.
✨ feat(formules.twig): Affiche la liste des formules avec actions et statut.
```
✨ 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(FormulesController): Ajoute la page et formulaire de création de formules
Ajoute la route, le controller et le formulaire pour créer des formules
(packs ou formules libres). Inclut la gestion de l'upload d'image.
```
//todo add seleted produit inclus and option pack if packmode selected, if free selected add line ("X structure") avec liste des produit allow in line
✨ feat(Product): Ajoute la relation avec l'entité FormulesProductInclus.
✨ feat(FormulesController): Crée le contrôleur pour gérer les formules.
✨ feat(templates): Ajoute le template pour afficher les formules dans le dashboard.
✨ feat(base.twig): Ajoute un lien vers la gestion des formules dans le menu.
⚙️ chore(vich_uploader): Configure vich uploader pour les images des formules.
```
✨ feat(ansible): Ajoute la mise à jour du journal client et permissions fichier
✨ feat(HomeController): Récupère et affiche le journal de bord client.
📦️ chore: Ajoute gemini-api-php/client et corrige des dépendances.
🐛 fix(docker): Supprime la configuration Xdebug obsolète.
```
✨ 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(devis): Améliore la sélection des produits et options avec modales de recherche
Supprime la relation Product->DevisLine, ajoute des composants de recherche modale pour produits/options dans les devis.
```
✨ 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(contrat): Améliore l'affichage des contrats et ajoute suivi des paiements.
Cette commit améliore l'affichage des contrats dans le dashboard,
ajoute le suivi des paiements et corrige des bugs mineurs.
```
✨ 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(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.