Reorganiza el routing multi-tenant: funnel por slug, B2B en raíz

- / y /b2b sirven la landing B2B estática (rewrites beforeFiles)
- /{slug} resuelve el funnel del reformista (app/[slug]/page.tsx) con
  branding propio (TenantBrand) y atribución de leads por tenant
- crearLead(slug) y páginas /solicitud usan el tenant del lead
- Panel: edición del slug del funnel + URL pública en /panel/empresa
- Helper de slugs reservados para evitar colisiones con rutas reales

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-06-01 11:09:44 +02:00
parent e26e6be38b
commit 1a1caaf0df
15 changed files with 268 additions and 86 deletions

View File

@@ -4,10 +4,17 @@ const nextConfig: NextConfig = {
// @react-pdf/renderer usa módulos nativos/wasm (yoga, fontkit) que no deben bundlearse.
serverExternalPackages: ['@react-pdf/renderer'],
async rewrites() {
return [
// Landing B2B estática (mvp/b2b) servida en /b2b. El fichero vive en public/b2b.html.
{ source: "/b2b", destination: "/b2b.html" },
];
// beforeFiles: estas reglas ganan a las rutas del filesystem (incluida [slug]).
// La raíz y /b2b sirven la landing B2B estática (public/b2b.html); cada reformista
// tiene su funnel en /{slug} vía app/[slug]/page.tsx.
return {
beforeFiles: [
{ source: "/", destination: "/b2b.html" },
{ source: "/b2b", destination: "/b2b.html" },
],
afterFiles: [],
fallback: [],
};
},
};