Aller au contenu principal

Flux et diagrammes de séquence

1. Activation du mode consigne​

L'opérateur active l'interrupteur dans Configuration → Consignes sur l'écran du node. Le mode est persisté dans SQLite (consigne_settings.enabled), un événement d'état est journalisé et une synchronisation immédiate est déclenchée.

2. Création d'un colis (dépôt)​

:::info Unicité des casiers PostgreSQL protège contre un double dépôt avec un index unique partiel : UNIQUE (node_id, locker) WHERE status = 'deposited'. Le node refuse aussi un casier déjà occupied. :::

3. Reprise des livraisons échouées​

Si le node est hors ligne au moment du dépôt, le colis est créé avec node_delivery = failed. Une goroutine Saturn le renvoie périodiquement.

Le dépôt est idempotent côté node : un colis déjà connu renvoie {"ok":true,"duplicate":true}.

4. Retrait par scan QR​

Le lecteur QR est un clavier HID : il « tape » le code puis Entrée dans un champ caché de la page Consigne.

5. Synchronisation périodique et logs d'état​

Quand le mode est désactivé, une dernière synchronisation est envoyée avec enabled=false pour que Saturn et Venus reflètent l'état, puis la synchronisation s'arrête.