# Amendement des tickets M2 existants — suppression du contact inline du `Supplier` Les 14 tickets M2 (n° 84–97, groupe Lesstime « M2 — Répertoire fournisseurs ») ont été rédigés sur le modèle initial **avec** contact inline. La décision `refonte-contact` les amende : `Supplier` ne porte **plus** les 5 champs `firstName/lastName/phonePrimary/ phoneSecondary/email` ; les contacts vivent uniquement dans `SupplierContact` (onglet Contacts). Comme M2 n'est pas codé, il suffit de **ne jamais créer** ces colonnes/champs. ## Bandeau injecté en tête des tickets impactés > ⚠️ **AMENDEMENT 2026-06-03 — refonte-contact.** Le contact principal inline est > **supprimé** du `Supplier` : ne pas créer/saisir les colonnes ni les champs `firstName`, > `lastName`, `phonePrimary`, `phoneSecondary`, `email` sur l'entité/le formulaire > `Supplier`. Les contacts sont gérés **uniquement** via `SupplierContact` (onglet > Contacts). RG-2.01 et RG-2.02 sont supprimées (équivalent assuré par RG-2.04 / RG-2.13). > RG-2.12 ne s'applique qu'à `companyName` + `SupplierContact`. Décisions transverses > recherche (D1) et export (D2) : cf. `docs/specs/M1-clients/refonte-contact/README.md`. ## Tickets à amender ### Back | Ticket | n° | Impact | |---|---|---| | migration BDD M2 (supplier + sous-collections) | #85 | Retirer `first_name/last_name/phone_primary/phone_secondary/email` du `CREATE TABLE supplier` et leurs `COMMENT ON COLUMN`. `supplier_contact` inchangé. | | entités + repositories M2 | #86 | `Supplier` : retirer les 5 props + `Assert\Callback` RG-2.01. `SupplierContact` inchangé. | | SupplierProvider + SupplierProcessor | #87 | Retirer la validation RG-2.01, la normalisation des champs inline, leur présence dans `MAIN_FIELDS` / changedFields. Recherche selon D1. | | export XLSX fournisseurs | #91 | Colonnes contact selon D2 (depuis le contact principal, ou supprimées). | | tests PHPUnit M2 | #92 | RG-2.01/2.02 testées sur `SupplierContact` (pas `Supplier`) ; contrat de sérialisation sans les 5 champs inline sur le supplier. | ### Front | Ticket | n° | Impact | |---|---|---| | page Ajouter un fournisseur (`/suppliers/new`) + `useSupplierForm` | #94 | Retirer le bloc contact principal du formulaire + le pré-remplissage du 1er contact. Saisie des coordonnées dans l'onglet Contacts. | | page Consultation fournisseur (`/suppliers/{id}`) | #95 | Retirer l'affichage du bloc contact principal. | | page Modification fournisseur (`/suppliers/{id}/edit`) | #96 | Retirer les 5 champs du bloc principal ; payload `supplier:write:main` sans ces champs. | ### Léger | Ticket | n° | Impact | |---|---|---| | page Répertoire fournisseurs + datatable | #93 | Recherche « nom / contact / email » selon D1. Datatable : colonnes inchangées (pas de contact inline en colonne). | | i18n + sidebar fournisseurs | #97 | Ne pas créer les clés i18n `form.main.firstName/lastName/email/phone*` (garder `form.contact.*`). | ## Tickets NON impactés - #84 (taxonomie FOURNISSEUR), #88 (sous-ressources contacts/adresses/ribs — `SupplierContact` est la cible, inchangé), #89 (validators Information Commerciale / catégorie / RG-2.07-2.08), #90 (RBAC fournisseurs). ## Méthode d'amendement Pour chaque ticket impacté : **préfixer** la description existante du bandeau ci-dessus (sans rien supprimer du contenu d'origine), via `mcp__lesstime__update-task` (`description` = bandeau + description actuelle). La méthode préserve l'historique et reste réversible (retirer le bandeau).