83508d0c5a
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.
56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# M2 · Ticket Specs — Retirer le contact inline du `Supplier` dans les specs M2
|
|
|
|
## 1. Objectif
|
|
|
|
Mettre à jour les specs **M2 Fournisseurs** déjà rédigées pour **ne plus inclure** le contact
|
|
principal inline sur le `Supplier`. M2 est le jumeau strict de M1 (`Supplier` /
|
|
`SupplierContact` / `SupplierAddress` / `SupplierRib`) et n'est **pas encore codé** : il faut
|
|
donc corriger la conception **en amont**, pour que les 14 tickets M2 « prêts à dev » soient
|
|
implémentés directement sans les 5 colonnes inline.
|
|
|
|
> Pendant de M1 ticket 3/3, mais côté M2 : **aucune migration de suppression ni backfill** —
|
|
> on retire simplement le contact inline du modèle cible. Contexte : `README.md` du dossier
|
|
> `refonte-contact`.
|
|
|
|
## 2. Fichiers à modifier
|
|
|
|
| Fichier | Sections concernées |
|
|
|---|---|
|
|
| `docs/specs/M2-suppliers/spec-back.md` | § 3.1 diagramme E-R (l.175-179 : retirer les 5 colonnes du bloc `supplier`) ; § 3.2 `CREATE TABLE supplier` (l.227-231) ; § 3.4 squelette entité `Supplier` (l.496-517 : props + `Assert\Callback` RG-2.01) ; § 4 exemples payload POST/GET (l.782-805, 867-871) ; recherche `?search=` (l.847 : refléter D1) ; export (refléter D2) ; § contrat de sérialisation (l.725, 729) ; § 7 RG (voir § 3). |
|
|
| `docs/specs/M2-suppliers/spec-front.md` | « Formulaire principal » (l.105-117 : retirer Nom/Prénom/Téléphone/Téléphone 2/Email) ; onglet « Contact » (l.140-157 : retirer la phrase de pré-remplissage depuis le formulaire principal, l.142) ; écrans Consultation/Modification ; règles de formatage (l.283-285) ; recherche (l.76 : refléter D1). |
|
|
|
|
## 3. Traitement des règles de gestion M2
|
|
|
|
- **RG-2.01** (firstName OU lastName obligatoire sur Supplier) → **supprimée** : remplacée
|
|
par RG-2.04 (≥ 1 contact valide) + RG-2.13 (≥ 1 bloc Contact). Le contact inline n'existe
|
|
plus sur `Supplier`.
|
|
- **RG-2.02** (max 2 téléphones sur Supplier) → **supprimée du Supplier** (reste sur
|
|
`SupplierContact`).
|
|
- **RG-2.12** (normalisation Capitalize / chiffres / lowercase) → restreindre le scope :
|
|
s'applique à `companyName` (UPPERCASE) et aux champs de `SupplierContact` ; **plus** aux
|
|
champs inline du `Supplier` (qui disparaissent).
|
|
- Ne pas renuméroter les RG : marquer « supprimée / requalifiée » en place, avec date.
|
|
|
|
## 4. Forme
|
|
|
|
- Bumper la version des deux specs M2 + entrée d'historique datée (2026-06-03, motif
|
|
« Suppression du contact inline du Supplier — alignement refonte-contact M1 »).
|
|
- Encadré « Décision » renvoyant au `README.md` du dossier `refonte-contact`.
|
|
- Garder le style des specs M2.
|
|
|
|
## 5. Lien avec les tickets M2 existants
|
|
|
|
La mise à jour des specs doit être cohérente avec l'**amendement des tickets M2** (voir
|
|
`M2-amendement-tickets.md`) : tickets back #85/#86/#87/#91/#92 et front #94/#95/#96 (+ #93/#97
|
|
légers). Specs et tickets décrivent le **même** modèle cible (sans contact inline).
|
|
|
|
## 6. Critères d'acceptation (DoD)
|
|
|
|
- [ ] `spec-back.md` M2 : aucune mention des 5 colonnes inline dans le modèle `supplier`
|
|
(E-R + SQL + entité + payloads + sérialisation) ; RG-2.01/2.02 marquées supprimées ;
|
|
D1/D2 décrites.
|
|
- [ ] `spec-front.md` M2 : formulaire principal sans champs de contact ; onglet Contact
|
|
présenté comme seul lieu de saisie (sans pré-remplissage depuis le principal).
|
|
- [ ] Versions bumpées + historique daté.
|
|
- [ ] Cohérence avec l'amendement des tickets M2.
|