Files
Starseed/docs/specs/M1-clients/refonte-contact/M2-amendement-tickets.md
T
Matthieu 83508d0c5a
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m39s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m5s
docs(commercial) : refonte contact — suppression du contact inline (specs M1 + M2)
Le contact principal inline (firstName/lastName/phonePrimary/phoneSecondary/email)
est retiré des entités tiers : il vit désormais uniquement dans ClientContact /
SupplierContact (onglet Contacts).

- M1 (spec-back / spec-front / cahier-test) : contact inline retiré du modèle Client ;
  RG-1.01 et RG-1.02 marquées supprimées (équivalent RG-1.05 / RG-1.14) ; décisions
  D1 (recherche) et D2 (export) décrites ; version V1.
- M2 (spec-back / spec-front) : contact inline retiré du modèle Supplier dès la
  conception ; RG-2.01 et RG-2.02 supprimées (équivalent RG-2.04 / RG-2.13) ; version
  V0.2. Fichiers M2 introduits ici car non encore versionnés sur develop.
- docs/specs/M1-clients/refonte-contact/ : décision (README) + tickets (M1 back/front/
  specs, M2 specs) + prompts d'implémentation + amendement des tickets M2 existants.
2026-06-03 15:11:45 +02:00

3.5 KiB
Raw Blame History

Amendement des tickets M2 existants — suppression du contact inline du Supplier

Les 14 tickets M2 (n° 8497, 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 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 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 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).