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.