Repository navigation
Aligner API, Orchestration, Modele-de-Donnees et Compte-et-Monetisation sur l'édition livrée par #48 #436
Copy link
Copy link
Open
Labels
area:apiapps/apiapps/apineeds-designQuestion ou maquette à produire en mode DESIGNQuestion ou maquette à produire en mode DESIGNprio:P2NormaleNormaletype:choreOutillage, infra, processOutillage, infra, process
Description
Contexte
Epic : #7
API › Création · Orchestration › Règles de cohérence · Modele-de-Donnees › route_revisions · Compte-et-Monetisation
Après la PR #420 (#48), le code a fixé des choix que le wiki ne porte pas (Inbox, 2026-10-14). Le wiki doit redevenir le miroir du produit réel, ou dire ce qu'il veut autrement (un écart devient alors un ticket de code).
Comportement attendu (DESIGN)
- API › Création : route
GET /me/routes/:id(le parcours tel que l'éditeur l'affiche, sa révision s'il est publié) ; toutes les routes de l'éditeur répondent le même objet (OwnRoutedepackages/shared), aveccomputed,warnings,errors; 422coherence_blockedavec la liste dansdetails.errors; 409conflictpour un déplacement refusé ou une édition impossible ;GET /me/routespaginé par curseur. - Orchestration › Règles de cohérence : code bloquant
missing_title(un brouillon sans titre ne se soumet pas). - Bornes choisies par CODE faute de valeur au wiki, à valider ou corriger : description du parcours 2 000 caractères, titre d'étape 60, 30 étapes enregistrées au plus (soumission bloquée au-delà de 10), durée d'étape de 1 à 1 440 min à l'enregistrement, coût de 0 à 10 000 €.
- Modele-de-Donnees › route_revisions : colonnes livrées (
route_id,author_id,statusdraft, pending, changes_requested, rejected, published,snapshot,submitted_at,decided_at, une révision ouverte par parcours) ; la révision est la copie de travail créée à la première modification, pas un instantané pris à la soumission. - Compte-et-Monetisation :
max_pending_routescompte aussi une révision en attente de relecture (commitf35f232) ; c'est la question ouverte de Documenter le 429 pending_routes et décider si une révision compte dans max_pending_routes #414, à clore avec ce ticket ou avec Documenter le 429 pending_routes et décider si une révision compte dans max_pending_routes #414. needs_fix(PR feat(api): créer, modifier et soumettre un parcours depuis l'éditeur #420, choix 5 et 7) : un parcoursneeds_fixse corrige en place, sans révision (needs_fix → pending), et sa resoumission le retire du public jusqu'à la décision ;published → needs_fixle retire aussi des profils, alors que la page dit qu'un parcours à corriger reste visible de tous. À confirmer ou corriger.- Dépublication par l'auteur (choix 8) : elle abandonne (supprime) la révision ouverte.
Critères d'acceptation
- Les quatre pages citées décrivent le contrat livré par feat(api): créer, modifier et soumettre un parcours depuis l'éditeur #420, ou un écart voulu est consigné et ticketé
- Les bornes sont validées ou corrigées, avec leur valeur au wiki
- Entrée
D-xxxau Design-Changelog
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:apiapps/apiapps/apineeds-designQuestion ou maquette à produire en mode DESIGNQuestion ou maquette à produire en mode DESIGNprio:P2NormaleNormaletype:choreOutillage, infra, processOutillage, infra, process
Activity
PaulThiberville commentedon Oct 14, 2026
Ajout au périmètre (découverte de CODE pendant #176, PR #458, Inbox, 2026-10-14) : dans API › Création,
PATCH /routes/:idliste encore « transport » parmi les champs modifiables. Depuis D-048, le transport est dérivé des trajets (mode qui couvre le plus de distance) ; l'API le refuse (corps strict, 422), et c'est voulu. La ligne est à corriger, et elle peut citer les champs livrés par #176 :suggestedStart,tips,tipsHiddensur le parcours ;bookingNote,bookingIsAffiliate,endsOnsur les étapes.PaulThiberville commentedon Oct 15, 2026
📋 MANAGER, 2026-10-15 — point à ajouter à l'alignement (découverte de CODE pendant #180, PR #482) : Modele-de-Donnees ne décrit pas
routes.computed.access, écrit depuis #180 :{ station, lines: [{ mode: 'metro'|'rer'|'tram', line }], distance_m }ounull(aucune station à moins de 1,5 km, distance à pied estimée × 1,3, D-088). Il est réécrit à chaque enregistrement de l'éditeur ; la réponse de l'éditeur (OwnRoute.computed, E-11 « Calculé pour vous ») ne le porte pas encore. Rafraîchissement et recalcul hors éditeur : #486.