NODE_01
Reputap
Collecte d'avis Google par NFC, multi-établissements, avec anti-abus.
En productionSurvoler l'interface pour suivre une donnée jusqu'à la base.
L0 · Interface

L1 · Routes et actions
- GET/s/[publicToken]résout le tag, crée la session de scan
- GET/r/[token]redirection courte imprimée sur la plaque
- POST/api/session/[sessionToken]/review-linkenregistre l'intention d'avis, ouvre Google
- POST/api/session/[sessionToken]/resulttirage serveur, émission du ticket
- GET/win/[campaignId]roue de gains, animation du résultat
- GET/api/merchant/dashboardchiffres de l'établissement
- GET/admin/campaigns/[id]règles anti-abus, roue et lots par campagne
- GET/admin/onboardingcréation du tenant et du premier établissement
- GET/api/admin/billing/overviewabonnements, factures
- GET/api/admin/system/healthlatence base, disque, journaux
L2 · Modèle de données
- Tenantidnameslugstatus
- EstablishmenttenantIdnamecitytimezonegoogleReviewUrl
- NfcTagestablishmentIdcampaignIdpublicTokenlastRotatedAt
- CampaignestablishmentIdtypestatusconfigJsonstartsAt
- ScanSessionnfcTagIdsessionTokendeviceIdipHashstatusexpiresAt
- ReviewIntentscanSessionIdprovidertargetUrl
- PrizewheelIdnameweightdailyCaptotalCap
- SpinscanSessionIdwheelIdprizeIdresultType
- ClaimspinIdclaimCodestatusexpiresAtredeemedByMembershipIdrejectionReason
L3 · Infrastructure
- Vercelhébergement, fonctions serveur
- PostgreSQL · Supabasebase de données, isolation par tenant
- Prismamodèle et migrations
- Auth.jssessions, rôles super_admin / owner / user
- Resendemails transactionnels
- Stripefacturation
