Skip to content

Clore automatiquement les sorties à 4:00 et envoyer la notification du matin #140

Open

Description

@IlanAMG

Contexte

Epic : #14
Maquette : E-07, E-15 · validée le 2026-09-25
Ecrans › E-07 · Ecrans › E-15 · Modele-de-Donnees · E-07, E-15 · D-033
Une sortie restée ouverte se clôt seule le lendemain, et une notification invite à la noter (D-033). Aucun ticket ne portait ces envois : #44 pose l'infrastructure push, pour les rappels J-1 et H-1 seulement.

Comportement attendu

  • Tâche planifiée, Cloud Scheduler vers un endpoint interne : à 4:00, heure de Paris, toute sortie encore en cours de la veille passe à completed, avec completed_at et closed_by = auto.
  • À 10:00 le même matin : notification go_closed, « Comment était « {titre} » ? », « Votre sortie d'hier est close. Une note aide les prochains visiteurs. », qui ouvre E-15. Envoyée seulement si la note est possible, c'est-à-dire la moitié des étapes faites, et pas encore donnée.
  • Chaque envoi est enregistré dans notifications (kind = go_closed) et part par le canal push de Envoyer les rappels push des parcours programmés (veille 18:00 et H-1) #44, dans le respect des préférences de notification.

Critères d'acceptation

  • Tests, horloge injectée : une sortie ouverte la veille est close à 4:00 avec closed_by = auto ; une sortie terminée par l'utilisateur n'est pas touchée
  • Tests : la notification de 10:00 ne part que si la note est possible et pas encore donnée, et une seule fois
  • Heures en heure de Paris ; deux passages de suite ne closent ni ne notifient deux fois
  • Émet côté serveur go_completed avec route_id, duration_actual_min, steps_done_ratio et closed_by: auto pour chaque sortie close à 4:00 (typé dans packages/shared/src/analytics.ts depuis Instrumenter les événements analytics de la découverte #33)

Notes techniques

Activity

  1. added this to the v0.4 milestone on Sep 25, 2026
  2. added
    status:readySpec complète, prêt à coder
    and removed
    needs-designQuestion ou maquette à produire en mode DESIGN
    on Sep 25, 2026
  3. IlanAMG commented on Sep 25, 2026

    @IlanAMG
    MemberAuthor

    D-038 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : le job de 4:00 pose aussi le statut missed sur les sorties programmées de la veille jamais lancées.

  4. PaulThiberville commented on Sep 25, 2026

    @PaulThiberville
    Collaborator

    📋 MANAGER — événement D-038 à émettre côté serveur par le job de 4:00 : plan_missed (route_id), selon Analytics › Action. Il n'est pas encore dans le catalogue packages/shared/src/analytics.ts (Inbox #4, découverte de #33) : l'y ajouter pour que client et serveur partagent le même schéma.

  5. added
    status:blockedBloqué, voir commentaire ⛔
    and removed
    status:readySpec complète, prêt à coder
    on Sep 29, 2026
  6. PaulThiberville commented on Sep 29, 2026

    @PaulThiberville
    Collaborator

    📋 MANAGER — critère venu de #33 : la PR #159 a typé et testé ces événements dans le catalogue strict packages/shared/src/analytics.ts, sans les émettre, faute d'écran. L'émission revient au ticket qui construit l'écran : critère ajouté au corps de ce ticket.

    • go_completed avec closed_by: auto (D-029, D-033). Seule la clôture automatique de 4:00 produit cette valeur, donc l'émission se fait côté serveur, comme plan_missed (commentaire du 25/09 plus haut). closed_by: user reste à Construire le parcours en cours et le lien Google Maps (E-07) #42.
    • Point ouvert : la page Analytics ne dit pas quelle valeur donner à duration_actual_min pour une sortie close automatiquement (jusqu'à 4:00, ou jusqu'à la dernière étape faite). Remonté pour DESIGN avant l'implémentation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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