Add Keycloak authentication for ETL users.
Configure ETL routes and login/logout functionality.
Integrate ETL with Keycloak SSO.
Update vite.config.js to include etl.js.
Create EtlController with home, login, and logout routes.
Implement EtlAuthenticator for email/password login.
Configure security.yaml for ETL firewall and providers.
Add etl.js and etl.scss for ETL frontend.
Add Keycloak client configuration for ETL.
Update PrestaireController to use absolute URL for login.
✨ 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.
```
✨ feat(contrat): Ajoute des labels d'accessibilité et améliore l'UX.
✨ feat(password): Ajoute des labels d'accessibilité pour une meilleure UX.
🗑️ feat(adresses): Ajoute un label d'accessibilité au bouton de suppression.
```
♻️ 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.
```
🔧 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.
```