✨ feat(Prestaire.php): Implémente UserInterface et PasswordAuthenticatedUserInterface.
✨ feat(security): Ajoute firewall et authentificateur pour ETL.
✨ feat(EtlController.php): Ajoute contrôleur et routes pour ETL.
✨ feat(RedirecListener.php): Ajoute redirection pour etl.ludikevent.fr.
✏️ chore(caddy): Ajoute etl.ludikevent.fr à la configuration Caddy.
```
✨ 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.
```
🗑️ remove(Security/RedirecListener.php): Supprime le listener de redirection obsolète.
✨ feat(ansible/templates/caddy.j2): Ajoute la gestion du rewrite invisible pour la réservation.
🐛 fix(config/packages/pwa.yaml): Corrige la hauteur de l'image PWA pour l'accueil.
```
✨ feat(cron/data): Ajoute une tâche cron pour nettoyer les données de performance et de suivi.
📝 feat(command): Crée une commande pour nettoyer les données de performance et de suivi obsolètes.
```
✨ 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(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.
```
🐛 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(caddy): Ajoute l'exclusion d'indexation pour certains hôtes et améliore les headers.
➕ feat(security): Crée un listener pour rediriger la racine de reservation.ludikevent.fr.
```
✨ feat(.env): Met à jour les URLs de signature et Stripe pour Ngrok
✨ feat(SignatureController): Ajoute le contrôleur de signature
✨ feat(DevisController): Intègre DocuSeal et la gestion des adresses client
🐛 fix(DevisManager.js): Corrige la sélection et la synchronisation des adresses
✨ feat(vich_uploader.yaml): Configure le stockage des fichiers PDF
✨ feat(initTomSelect.js): Améliore la gestion des prix des produits
✨ feat(DevisPdfService): Intègre la signature DocuSeal et améliore le pied de page
✨ feat(Client.php): Crée une soumission Docuseal pour les devis
✨ feat(signature): Ajoute le service client pour l'intégration de signature électronique.
🐛 fix(env): Corrige les URL et la clé API pour l'environnement de signature.
⬆️ chore(deps): Met à jour la dépendance docusealco/docuseal-php.
```
Ce commit ajoute la gestion des images pour les produits, l'indexation des produits pour la recherche et la synchronisation avec Stripe. Ajoute un formulaire de création/édition de produits avec gestion de l'image, l'indexation pour la recherche, et la synchronisation des produits avec Stripe. Gère les uploads d'images.
📝 style(templates): Crée un template de mail pour notifications de sauvegarde
🐛 fix(.gitignore): Exclut les fichiers de sauvegarde .zip
🎨 style(dashboard): Crée une page pour la gestion des sauvegardes
✨ feat(command): Implémente la commande de sauvegarde avec notification et rétention
🎨 style(dashboard): Améliore l'interface de recherche avec des effets visuels
✨ feat(dashboard): Ajoute une page pour la gestion des sauvegardes
✅ test(controller): Ajoute la logique de téléchargement et suppression des sauvegardes
✨ feat(ansible/caddy): Supprime CSP statique et Permissions-Policy obsolète
🐛 fix(assets/admin): Corrige la gestion du menu admin et des flashs
✨ feat(Twig/ViteAssetExtension): Ajoute CSP nonce et gère les favicons
🐛 fix(Entity/AuditLog): Corrige la relation ManyToOne avec Account
➕ feat: Ajoute NelmioSecurityBundle pour gérer la sécurité CSP
```
✨ feat(caddy): Améliore la sécurité avec CSP et headers standards
✨ feat(templates): Met à jour le logo sur la page d'inscription réussie
✨ feat(knp_paginator): Ajoute la configuration pour le style Tailwind
✨ feat(audit_logs): Crée la page de traçabilité des actions
✨ feat(logs): Ajoute le contrôleur pour gérer les logs d'audit
✨ feat(AppLogger): Enregistre l'user agent dans les logs d'audit
✨ feat(AccountController): Supprime l'appel inutile de l'EventAdminCreate
✨ feat(AuditLogRepository): Récupère les logs en excluant les ROOT
✨ feat(base): Ajoute la structure de base pour le dashboard
```
✨ feat(ansible/caddy): Ajoute le domaine signature.ludikevent.fr à la configuration Caddy.
✨ feat(src/Service/Mailer): Améliore l'envoi d'emails avec désinscription et Message-ID.
✨ feat(templates/mails): Met à jour le logo de l'email pour LudikEvent.
```
✨ feat(Security): Active l'authentification à deux facteurs (2FA).
✨ feat(Account): Ajoute une entité et un formulaire pour les administrateurs.
🐛 fix(Security): Corrige la redirection après la connexion.
✨ feat(CRM): Ajoute une page d'administration des comptes administrateurs.
✨ feat(security): Ajoute l'authentification Keycloak SSO et migre les commandes
Supprime la commande AccountCommand, la migration et ajoute l'authentification
Keycloak SSO. Crée les vues de base pour le tableau de bord.
```