Écrire dans la page API le contrat de GET /routes/:id et /timeline, et trancher la zone dans la 410 #393
Description
Contexte
Epic : #9
API › Découverte (public) · API › Conventions · Ecrans › E-05 · E-05 · D-013, D-014
Maquette : sans objet — contrat d'API ; E-05 est validée depuis le 2026-09-23.
Découverte de CODE pendant #37 (PR #390), Inbox, 2026-10-13. La page API ne donne que le résumé de la fiche ; la PR #390 a fixé la forme de la réponse dans packages/shared/src/schemas/route-detail.ts, côté app, alors que #36 (l'endpoint) n'est pas fait. Le contrat doit être écrit avant que #36 le tienne.
Comportement attendu (DESIGN)
Reporter dans API le contrat de GET /routes/:id et de GET /routes/:id/timeline, à partir du schéma de #390 (après sa fusion) :
- timeline du départ conseillé incluse dans la réponse (
timeline) ; ce qui reste à/timeline(autrestartsAt) ; 410 route_removedavecdetails.removedAt, ajouté à la liste des codes stables ;- étapes verrouillées
LockedStep(champs stricts d'un parcours Premium sans abonnement, D-014) ; - vérification
{ confirmations, lastConfirmedAt, reports }; - encart créateur
{ routesPublished, isCertified },sharedBy,reviews(3 au plus).
Question à trancher : la 410 ne porte pas la zone du parcours, donc « Voir des parcours proches » (Ecrans › E-05) ne peut pas recentrer l'accueil sur cette zone. Ajouter à la 410 un point de départ (coordonnées du départ, ou quartier) ? Si oui, préciser lequel, sachant qu'un parcours retiré ne doit rien exposer d'autre.
Critères d'acceptation
- API décrit la réponse complète de
GET /routes/:id(champs ci-dessus) et ce que fait/timeline -
route_removedfigure dans les codes stables, avecdetails.removedAt - La question de la zone dans la
410est tranchée et écrite, avec sa raison - MANAGER reporte le contrat dans Exposer GET /routes/:id et /routes/:id/timeline, stocker computed #36 (le critère sur la
410y est déjà, conditionnel à ce ticket)
Activity
PaulThiberville commentedon Oct 14, 2026
Proposition DESIGN en 🟡 Brouillon (2026-10-14), à valider par Ilan : API › Fiche parcours. Elle couvre l'accès par statut, lien et auteur, la réponse complète de
GET /routes/:id(schéma de #390 et ce que #36 doit y ajouter),/timeline?startsAt=, la410 route_removedavecdetails.removedAtetdetails.near(départ arrondi à environ 1 km), le cache et les limites. Onze questions à trancher, chacune avec une recommandation : Questions. Après validation : entrée D-xxx, puis report dans #36.IlanAMG commentedon Oct 15, 2026
Priorité : P2 → P0. Ce ticket bloque #36 (P0 de v0.3, Sprint 0), seul P0 encore ouvert du jalon ; un bloqueur ne peut pas être moins prioritaire que ce qu'il bloque. Il attend la validation par Ilan du brouillon DESIGN du 14/10 (API › Fiche parcours).
— Chef de projet (point quotidien du 15/10/2026)
IlanAMG commentedon Oct 16, 2026
Chef de projet (16/10/2026) : jalon v0.3 → v0.4, décision d'Ilan du 16/10 (v0.3 échoit le 17/10 sans ce ticket).
IlanAMG commentedon Oct 16, 2026
Chef de projet (16/10/2026, décisions d'Ilan en séance) : Ilan valide les 11 recommandations du brouillon API › Fiche parcours, dont
details.neararrondi à 0,01° dans la 410 etroutes.unpublished_atavec un texte neutre. Reste : DESIGN passe le brouillon en validé et écrit l'entrée D-xxx ; MANAGER reporte le contrat dans #36.PaulThiberville commentedon Oct 19, 2026
📋 MANAGER, 2026-10-19 — décision écrite par D-093 dans API › Fiche parcours (Choix tranchés 1 à 11). Critère MANAGER tenu : contrat reporté dans #36 (dépendance retirée,
status:ready, Sprint 1) ; tracégeometryreporté dans #154 ; lecture du site avec?trips=estimatedsignalée sur #240.needs-designretiré : la décision est écrite. Ticket laissé ouvert, sans étiquette de statut (aucune tâche de code, CODE ne le prend pas) : le harnais ne fait pas fermer un ticket de décision par MANAGER, et les précédents ont été fermés par le chef de projet. À fermer par Ilan ou Paul.IlanAMG commentedon Oct 19, 2026
Chef de projet (point du 19/10/2026) : la page du wiki est écrite et validée (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog#d-093--2026-10-16), poussée sur le wiki ce jour (commit 901ddaa, D-093 à D-097, restées non commitées depuis le 16/10). Ticket de spécification fermé selon le circuit design ; les tickets de code qui en dépendent sont libérés par l'action des étiquettes.