Skip to main content
Généralise le QR code équipement (voir Équipement (+ Qrcode)) à plusieurs types de cibles et introduit un provisioning par lot/plage attribué à une organisation, ainsi qu’une page de scan où l’utilisateur choisit l’association.

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)
Le type de cible détermine la page de destination au scan (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’organizationId est 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 :
  1. Non attribué / supprimé → page neutre (à configurer / indisponible).
  2. 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é.
  3. Associé → page de la cible (équipement, unité, plan…).
L’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.