✨ feat(contrats): Améliore la gestion des contrats et des paiements.
- Rend le champ details non obligatoire dans add.twig
- Ajoute une valeur par défaut pour isSigned et type dans les entités.
- Corrige l'ajout des lignes et options au contrat.
- Ajoute la création automatique du client Stripe.
```
✨ feat(env): Met à jour les URLs ngrok pour l'environnement.
✨ feat(Prestaire): Ajoute contrainte d'unicité email et relations Contrats/OrderSession.
✨ feat(OrderSession): Ajoute une relation ManyToOne vers Prestaire.
✨ feat(Contrats): Ajoute une relation ManyToOne vers Prestaire.
🐛 fix(SignatureController): Corrige la création de contrat à partir du devis signé.
✨ feat(FlowController): Ajoute un sélecteur de prestataire à la session.
✨ feat(devis/list.twig): Ajoute une légende des actions dans la liste des devis.
✨ feat(ContratsController): Ajoute le prestataire au contrat lors de la génération.
✨ feat(SearchController): Ajoute la recherche de prestataires.
🐛 fix(SignatureClient): Corrige le stockage de l'ID de signature du devis.
✨ feat(base.twig): Ajoute un lien vers la liste des prestataires dans le menu.
✨ feat(PrestataireRepository): Ajoute une méthode de recherche par nom et email.
```
🔧 chore(ansible): Met à jour la version de PHP pour les tâches cron et commandes.
✨ feat(flow/view): Ajoute la gestion de la livraison et réorganise le formulaire de paiement.
```
✨ 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