tristan
bd71caa289
fix(front+back) : suppression de la categorie du bloc adresse prestataire (ERP-193)
...
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 47s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 5m13s
La categorie portee par l'ADRESSE du prestataire (M2M provider_address_category)
est retiree de toutes les couches : champ + prop du bloc adresse, type/payload/
mapping front, entite ProviderAddress (M2M, Assert\Count, validateCategoryType,
accesseurs), fixtures, contexte de serialisation. Nouvelle migration de drop de la
table (namespace racine pour l'ordre post-creation). La categorie du PRESTATAIRE
lui-meme (provider_category, repertoire, filtre, formulaire principal) est conservee.
2026-06-22 09:44:44 +02:00
tristan
3d4ae391fe
feat(front) : onglet adresse prestataire (ERP-143) ( #105 )
...
Auto Tag Develop / tag (push) Successful in 7s
Empilée sur ERP-142 (#104 ).
## Périmètre ERP-143
Onglet **Adresse** de l'écran `/providers/new` — saisie multi-adresses (blocs ajoutables) via la sous-ressource addresses.
- **`ProviderAddressBlock.vue`** (miroir `SupplierAddressBlock` **simplifié**) : Sélecteur de sites (≥1, RG-3.05) / Catégories (PRESTATAIRE, RG-3.09) / Contact(s) rattaché(s) (depuis l'onglet Contact) / Pays (défaut France) / Code postal / Ville / Adresse (autocomplete BAN) / Complément. **Pas** de type d'adresse, **pas** de bennes, **pas** de triage (différence M2).
- **RG-3.06** : `useAddressAutocomplete()` **réutilisé tel quel** — CP → liste des villes (BAN) ; cas dégradé (API down) → ville/adresse en saisie libre + toast unique.
- **`useProviderForm`** étendu : `addresses`, `canAddAddress` (RG-3.05/3.09), `add/removeAddress`, `submitAddresses` (POST `/providers/{id}/addresses` + PATCH `/provider_addresses/{id}`, groupe `provider:write:addresses`), erreurs 422 **par ligne**.
- **`useProviderReferentials`** : ajout des pays (`/countries`) pour le select Pays.
- Helpers purs `utils/forms/providerAddress.ts` (`isProviderAddressValid`, `buildProviderAddressPayload` — relations en IRI, requis vides omis au POST).
- « + Nouvelle adresse » / Supprimer (modal) / « Valider ». i18n `technique.providers.form.address` + `confirmDelete.address`.
## Conformité
- `useApi()` only ; `Malio*` only ; aucun texte FR en dur ; `useAddressAutocomplete` non réécrit ; pas d'import inter-module (helpers ré-implémentés côté Technique, règle ABSOLUE n°1).
## Vérifications
- Vitest : 436/436 (18 nouveaux : helpers adresse, bloc — BAN dégradé/allow-create/mapping erreurs, workflow adresses POST/PATCH/422 par ligne).
- ESLint : OK.
- `nuxi typecheck` : 0 erreur sur les fichiers source du ticket.
- Golden path navigateur : page compile, onglet Contact OK. NB : l'onglet Adresse est gaté derrière la validation principal+contact (multiselect `Malio` non pilotable en a11y) — couvert par tests unitaires (montage + BAN + mapping) + typecheck.
Reviewed-on: #105
Co-authored-by: tristan <tristan@yuno.malio.fr >
Co-committed-by: tristan <tristan@yuno.malio.fr >
2026-06-15 09:12:50 +00:00