Skip to content

Unifier la ville d'une position et la détection des doublons de lieux entre l'admin et l'éditeur #616

Open

Description

@PaulThiberville

Contexte

Epic : #5
Admin-Web › A-04 (import CSV, doublons) · Admin-Web › Villes · API › Lieux · A-04 · E-13 · D-049 · D-085
Maquette : sans objet — unification de code de l'API, aucun écran ne change

Relecture MANAGER de la pile admin du 2026-10-21 (récapitulatif, ligne F7) : deux écrivains de lieux suivent deux règles.

Bloqué par #46 : à faire une fois #594 fusionnée.

Comportement attendu

  • Une seule fonction de ville d'une position, dans un module des lieux partagé par l'admin et l'éditeur, et une seule réponse pour une position hors de toute ville (422 validation_error avec outside_service_area, comme un corps invalide selon D-071), jusqu'à ce que Ouvrir la création à toutes les villes : ville déduite de la position, recherche sans filtre de ville #340 crée la ville.
  • Une seule détection de doublon (rayon et similarité de packages/shared), utilisée par POST /places, la création d'un lieu dans A-04 et l'aperçu de l'import CSV ; « même nom à moins de 50 m » de l'import devient un cas de la règle commune.
  • La modification d'un lieu par un membre de l'équipe écrit admin_actions (avant, après), qu'elle vienne de A-04 ou de PATCH /places/:id.

Critères d'acceptation

  • findCityId et cityHolding ne font plus qu'un ; une position hors ville répond pareil dans l'admin et dans l'éditeur ; tests
  • L'import CSV et POST /places signalent les mêmes doublons pour le même fichier de cas (tests)
  • PATCH /places/:id par un modérateur écrit une ligne admin_actions ; test
  • Aucun changement de comportement pour l'app hors de ces trois points (tests existants verts)

Notes techniques

Si la règle de doublon de l'import change (similarité au lieu du nom exact), le préciser dans la PR : DESIGN alignera A-04. Niveau 1 ou 2 selon le diff (le journal touche la journalisation).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions