'use strict' /** * signup.js — portail self-service d'abonnement (STAGING, servi par le hub). * Parcours épuré type e-commerce : Forfait → Coordonnées → Récap → Confirmation. * Réutilise /api/catalog (existant). PAS publié sur Lovable tant que non validé. * * Routes publiques : * GET /signup → page (stepper) * POST /signup/submit → crée un Lead ERPNext + retourne la confirmation */ const { json, parseBody, erpFetch } = require('./helpers') async function createLead (body) { const name = [body.first_name, body.last_name].filter(Boolean).join(' ').trim() || 'Client web' const payload = { lead_name: name, email_id: body.email || '', mobile_no: body.phone || '', status: 'Lead', // résumé de la demande dans le titre de la requête pour le suivi staff request_type: 'Product Enquiry', } try { const r = await erpFetch('/api/resource/Lead', { method: 'POST', body: JSON.stringify(payload) }) if (r.status === 200 && r.data?.data) return r.data.data.name } catch (e) { /* best-effort */ } return null } const PAGE = `