Cibles possibles
Un QR code peut être associé à un seul élément parmi :- une unité (patrimoine / arborescence)
- un bâtiment
- un équipement
- un plan ou un élément de plan (plan-item)
endpointType).
Un QR code non encore associé pointe vers une page « à configurer ».
Provisioning (génération par lot)
Les QR codes sont pré-imprimés puis provisionnés : on génère un lot (QrCodeGeneration) de stock vierge numéroté, puis on attribue une plage de
numéros à une organisation (ex. les QR codes 2 à 120 pour l’organisation X).
Tant qu’ils ne sont pas attribués, ils n’appartiennent à aucune organisation.
- chaque QR code porte un numéro de série imprimé sur le sticker
- attribution d’une plage (
2..120) de QR codes à une organisation - l’
organizationIdest posé à l’attribution et reste la source de vérité (il n’est pas déduit de la cible et survit au détachement) - un QR code attribué mais non associé est « en attente d’association »
Scan & redirection
Le scan (GET /qrcodes/v1/scan/:slug, route publique) renvoie l’état du
QR code ; le front affiche la page correspondante :
- Non attribué / supprimé → page neutre (à configurer / indisponible).
- Attribué mais sans cible → page de choix d’association : l’org est déjà connue (via l’attribution), donc la liste des cibles proposées est scopée à cette org. La consultation peut être authentifiée ou non, mais l’association elle-même exige un utilisateur authentifié.
- Associé → page de la cible (équipement, unité, plan…).
endpointType est dérivé côté backend de la cible choisie ;
l’organizationId vient de l’attribution, jamais reçu du front.
Cycle de vie
activatedAt/firstAssociationAt: activation à la première association.- association modifiable (réaffectation d’une cible à une autre) ; le détachement conserve l’org attribuée.
- soft-delete (retrait d’un QR code).
Piste future : gestion RFID en alternative au QR code.