Files
Starseed/docs/specs/M1-clients/refonte-contact/M2-amendement-tickets.md
T
matthieu 8fae987e15
Auto Tag Develop / tag (push) Successful in 6s
docs(commercial) : refonte contact — suppression du contact inline (specs M1 + M2) (#54)
Acte la décision refonte-contact dans les specs : le contact principal inline (firstName/lastName/phonePrimary/phoneSecondary/email) est retiré des entités tiers (Client, Supplier). Les contacts vivent uniquement dans ClientContact / SupplierContact (onglet Contacts). Garantie « >=1 contact nommé » préservée par RG-1.05/1.14 (M1) et RG-2.04/2.13 (M2).

- M1 (spec-back/spec-front/cahier) : modèle Client sans contact inline ; RG-1.01/1.02 supprimées ; D1 (recherche) / D2 (export) décrites ; version V1.
- M2 (spec-back/spec-front) : FICHIERS NOUVEAUX (non versionnés sur develop), introduits déjà corrigés (Supplier sans contact inline, RG-2.01/2.02 supprimées) ; version V0.2.
- docs/specs/M1-clients/refonte-contact/ : décision (README) + tickets (M1 back/front/specs, M2 specs) + prompts + amendement des tickets M2.

Lesstime : tâches #103 (M1 back), #104 (M1 front), #105 (M1 specs), #106 (M2 specs) ; tickets M2 #85-#97 amendés.
---------

Co-authored-by: Matthieu <contact@malio.fr>
Reviewed-on: #54
Co-authored-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
Co-committed-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
2026-06-03 13:16:11 +00: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).