# Changelog

Les anciens fichiers `README_WTL*.md` restent des archives historiques. Ce fichier recense les évolutions courantes à partir du chantier de consolidation métier.

## Non publié — 2026-09-20

### Bilans de représentation

- Ajout d'un assistant responsive en six étapes reprenant le bilan complet du Google Form, sans variante rapide ni import historique.
- Garantie d'un seul bilan par représentation, limité au projet de la date, avec consultation et modification selon la permission dédiée.
- Conservation de l'auteur et de la date de création, traçage de la dernière modification et suppression réservée au super-admin.
- Ajout d'une liste filtrable et triable, de cartes mobiles, d'indicateurs synthétiques et d'un export Excel à une feuille reproduisant les 48 colonnes historiques dans leur ordre exact.
- Ajout d'actions contextuelles depuis les dates et prospections ; lorsqu'un bilan existe, ces actions ouvrent sa consultation ou sa modification au lieu d'en créer un second.
- Blocage explicite de la suppression d'une date, de sa prospection ou du lieu parent tant qu'un bilan existe, renforcé par une clé étrangère `ON DELETE RESTRICT`.
- Ajout de la migration additive `Version20260920140000` et de tests ciblant le questionnaire, l'export et les protections de suppression.
- Ajout de la migration corrective additive `Version20260920143000` pour aligner les noms des index du bilan avec le mapping Doctrine, avec précontrôle complet avant l'unique opération DDL.
- Toutes les réponses du questionnaire deviennent facultatives ; les valeurs absentes restent vides dans le détail, les statistiques et l'export, grâce à la migration additive `Version20260921100000`.
- Affichage du bilan directement en bas de la prospection et consultation à la demande depuis le planning des dates, sans quitter la page.

## Non publié — 2026-09-19

### Navigation tactile du dashboard

- Remplacement sur smartphone des tableaux Analytics, factures à encaisser et suggestions de prospection par des cartes adaptées au tactile.
- Présentation des répartitions statistiques sous forme de listes mobiles sans défilement horizontal.
- Conservation des tableaux desktop, des informations, des permissions et des actions existantes.

### Modales longues sur smartphone

- Uniformisation du défilement des modales du back-office, quelle que soit la structure de leur formulaire.
- En-tête et boutons d'annulation/validation maintenus dans la zone visible tandis que seul le contenu central défile.
- Prise en compte de la hauteur dynamique du viewport et de la zone de sécurité inférieure des smartphones.

## Non publié — 2026-09-17

### Refonte ergonomique — lots 7 à 10

- Simulateur tarifaire relié au dossier de prospection, résultat prioritaire sur mobile et retour contextuel sécurisé.
- Parcours commercial clarifié par la séquence **Générer → Envoyer → Facturer**, présélection du devis dans l'e-mail et composant de paiement partagé.
- Listes de devis, factures et conventions transformées en cartes métier sur smartphone, avec accès explicite aux archives de conventions.
- Séparation visuelle des documents techniques et de leur configuration, association rapide d'une fiche standard, wizard avancé responsive et transitions d'état accessibles sans boîte de dialogue navigateur.
- Éditeur de plan rendu réellement tactile, avec paysage/tablette/desktop recommandés pour les ajustements précis.
- Bibliothèques documentaire et comptable, dépenses, recettes, merchandising, contrats, mouvements et comptes financiers adaptés aux petits écrans sans scroll horizontal de page.
- Formulaires comptables longs rendus défilants, protégés contre la double soumission et progressifs lorsque les options sont facultatives.
- Administration des utilisateurs en cartes mobiles, matrice de permissions remplacée sur smartphone par une vue par groupe et ajout d'une aide contextuelle réutilisable.
- Aucun changement de règle métier, d'entité Doctrine, de migration, de site public ou de média artistique.

### Refonte ergonomique — point de stabilisation lots 0 à 6

- Ajout de fondations accessibles et tactiles : focus visible, lien d'évitement, messages annoncés, zones tactiles et composants responsives communs.
- Réorganisation de la navigation desktop et ajout d'une barre mobile stable **Accueil · À traiter · Saisir · Prospections · Plus**, filtrée par permissions sans substitution dynamique.
- Ajout du parcours **Nouveau contact terrain** réutilisant les lieux, contacts et prospections existants, avec trois intentions explicites, détection graduée des doublons et conservation de la saisie en cas d'échec réseau.
- Priorisation des actions quotidiennes sur l'accueil et transformation de **À traiter** en cartes actionnables sur smartphone.
- Simplification des listes et fiches de prospections, lieux et contacts : cartes mobiles, actions contextuelles, options avancées progressives et chargement différé des contenus lourds.
- Simplification des dates : création sur une page dédiée sans modale imbriquée, options avancées repliées, cartes mobiles, menus d'actions et annulation accessible.
- Remplacement dans la navigation du terme « GED » par **Documents** et **Documents comptables** ; le vocabulaire technique interne reste inchangé.
- Ajout d'une matrice de recette intermédiaire aux formats desktop, tablette, 390×844 et 360×800.
- Correction de la fermeture du menu latéral responsive sur smartphone.
- Correction de la création terrain d'une prospection avec un lieu nouvellement créé et encore sans identifiant Doctrine.
- Correction du fond, du défilement et du pied des modales longues, notamment le wizard de fiche technique sur smartphone.
- Ajout d'une installation PWA du back-office avec manifeste et service worker strictement réseau, sans cache de données métier ni mode hors ligne.

### Sécurité et multi-projets

- Centralisation des politiques d'accès aux documents et aux données comptables, y compris pour les URL directes, téléchargements, codes GED, pièces jointes et identifiants soumis par formulaire.
- Restriction des factures, paiements, mouvements nominatifs, contrats et pièces aux projets autorisés ; maintien des écritures associatives sans projet et de la vision globale du super-admin.
- Refus de `/admin` pour un compte back-office non super-admin sans projet, sans modifier le circuit presse autonome.
- Configuration reCAPTCHA du login rendue globale via `LOGIN_RECAPTCHA_SITE_KEY` et `LOGIN_RECAPTCHA_SECRET_KEY`.

### Prospection et dates

- Ajout de codes techniques uniques aux statuts avec reprise déterministe des statuts connus et conservation des inconnus sous `LEGACY_<id>`.
- Séparation entre accord commercial (`AGREEMENT_CONFIRMED`) et date programmée (`DATE_SCHEDULED`) ; ajout de `agreementDate` et `agreementBy` sans backfill historique inventé.
- Ajout de l'annulation après confirmation, de son motif/auteur et de l'action explicite de reprogrammation.
- Garantie d'une seule prospection active par projet et lieu, avec précontrôle bloquant en migration.
- Progression monotone des statuts après e-mail réussi et consommation du report uniquement par une action métier réellement accomplie.
- Synchronisation immédiate de `confirmedDate`, de la prochaine action, de l'historique et de Google Calendar lors d'un changement de date.
- Distinction des statistiques de tunnel historique et de stock courant.
- Publication claire des dates annulées, retour des dates reportées puis jouées dans les archives et confidentialité centralisée du lieu public.
- Suppression des prospections réservée au super-admin, avec orchestration des dépendances et trace des échecs de nettoyage Calendar lors d'une suppression locale forcée.

### Documents commerciaux et techniques

- Séparation de la génération et de l'envoi réel d'un devis ; traçage de la version envoyée par `sentAt` / `sentBy`.
- Garantie transactionnelle et SQL d'une facture maximum par devis, après précontrôle bloquant des doublons historiques.
- Archivage/restauration des conventions, suppression physique réservée au super-admin et unicité de la convention active par devis.
- Cycle des fiches techniques explicite : générée, envoyée, validée, refusée ou remplacée, avec historique des transitions et suppression limitée à l'état généré.

### Comptabilité, relevés et Analytics

- Validation serveur de tous les projets soumis dans les écritures comptables.
- Calcul des relevés manquants selon les dates réelles d'ouverture et de fermeture, même après désactivation du compte.
- Retrait Analytics effectif sur la page courante avec Consent Mode, `ga-disable-*`, arrêt de collecte et suppression raisonnable des cookies `_ga*` ; réacceptation sans double initialisation ni double page vue.

### Données et migrations

- Ajout exclusif de migrations additionnelles : `Version20260916180000`, `Version20260916183000`, `Version20260916184500`, `Version20260916190000` et `Version20260916193000`.
- Ajout d'un socle PHPUnit ciblant les invariants métier, l'isolation projet, les workflows et les périodes de relevés.
