Skip to content

Plataforma SaaS B2B multiservicio de tecnología e IA - #1

Draft
PyCHile wants to merge 1 commit into
mainfrom
claude/saas-multiservicio-b2b-hcetdo
Draft

Plataforma SaaS B2B multiservicio de tecnología e IA#1
PyCHile wants to merge 1 commit into
mainfrom
claude/saas-multiservicio-b2b-hcetdo

Conversation

@PyCHile

@PyCHile PyCHile commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Resumen

Implementa la plataforma SaaS B2B multiservicio completa descrita en la especificación: 20 servicios tecnológicos y de IA, cada uno con página pública, 3 planes comerciales, flujo de contratación, panel operativo y facturación, sobre una base multi-tenant real.

  • Stack: Next.js 14 (App Router, TS estricto), Tailwind CSS, Prisma + PostgreSQL (Supabase), Supabase Auth (email + Google OAuth + recuperación de contraseña), Stripe + MercadoPago, OpenAI, LinkedIn API v2.
  • Multi-tenancy real: guards centralizados en lib/auth/guards.ts (requireUser, requireOrganization, requireAdmin, assertOrganizationAccess) — el organizationId nunca se toma de un valor enviado por el navegador, siempre se deriva de la sesión + Membership.
  • Catálogo de 20 servicios (lib/services/catalog.ts) con planes Starter/Pro/Enterprise configurables en base de datos (sin precios hardcodeados en componentes), y un ServiceWorkflowRegistry (lib/services/workflows.ts) que declara el flujo operativo (pasos, campos, entregables) de cada servicio de forma data-driven — agregar/editar un servicio no requiere reescribir la plataforma.
  • Billing: Stripe Checkout + Customer Portal + webhooks verificados e idempotentes (WebhookEvent); MercadoPago Preference (pago único) y PreApproval (suscripción) con verificación de firma x-signature. La activación de servicios ocurre exclusivamente vía webhook, nunca desde parámetros de retorno del navegador.
  • Landing pública + SEO + Blog: /, /servicios, /servicios/[slug], /precios, /blog, /blog/[slug], /contacto, sitemap.xml, robots.txt, JSON-LD (Organization, Service, Product, FAQPage, BreadcrumbList, Article, SoftwareApplication), 5 artículos iniciales.
  • Dashboard de cliente: resumen de organización, servicios contratados/disponibles, consumo y créditos, facturación, tickets, notificaciones, integraciones (credenciales cifradas con AES-256-GCM), configuración y usuarios. Cada servicio tiene un panel dinámico (/dashboard/servicios/[slug]) que renderiza su wizard de solicitud real a partir del ServiceWorkflowRegistry.
  • Panel admin (/admin): dashboard ejecutivo (MRR/ARR/churn), CRUD de servicios y planes (reflejado automáticamente en la landing), organizaciones, solicitudes, ejecuciones, facturación, tickets, leads, blog, auditoría y webhooks fallidos.
  • Automatización de LinkedIn: adaptador desacoplado de LinkedIn API v2, generación de 3 variantes con OpenAI, cola de aprobación (LinkedInQueue) y cron protegido con CRON_SECRET que solo publica contenido ya aprobado (nunca contenido pendiente sin revisión humana).
  • Seguridad: Zod en toda entrada externa, sanitización, rate limiting, verificación de firmas de webhooks, cifrado de credenciales, AuditLog, políticas RLS de defensa en profundidad (prisma/rls-policies.sql).

Integraciones sin credenciales en este entorno

Donde una integración externa real (LinkedIn, WhatsApp Business API, OpenAI) no puede ejecutarse sin credenciales, se implementó la interfaz, persistencia, validaciones y adaptador completos, y falla explícitamente en vez de simular un resultado. Detalles de activación en el README.

Test plan

  • npm run typecheck — sin errores
  • npx eslint . — sin errores ni warnings
  • npm run build — build de producción exitoso (51 rutas)
  • npm run test — 38 tests unitarios/integración pasando (catálogo de 20 servicios, aislamiento multi-tenant, idempotencia de webhooks, cifrado, rate limiting, scheduler de LinkedIn, protección del cron)
  • npm run test:e2e — requiere Supabase + Stripe de prueba configurados (ver README §13); el flujo crítico completo está implementado en tests/e2e/critical-flow.spec.ts
  • Verificación manual de checkout Stripe/MercadoPago en modo test contra un proyecto Supabase real (pendiente de credenciales del entorno de destino)

Generated by Claude Code

Implementa la plataforma completa descrita en la especificación: Next.js 14
(App Router, TypeScript estricto), Prisma + PostgreSQL (Supabase), Supabase
Auth (email, Google OAuth, recuperación de contraseña), multi-tenancy real
con guards centralizados (requireUser/requireOrganization/requireAdmin/
assertOrganizationAccess), y los 20 servicios del catálogo con planes
Starter/Pro/Enterprise, flujos operativos data-driven vía
ServiceWorkflowRegistry, billing con Stripe + MercadoPago (checkout,
Customer Portal, webhooks verificados e idempotentes), landing pública +
SEO técnico (sitemap, robots, JSON-LD) + blog, dashboard de cliente y panel
administrativo con CRUD de servicios/planes, automatización de LinkedIn
(adaptador API v2 + generación con OpenAI + cola de aprobación + cron
protegido), seed con los 20 servicios y 5 artículos de blog, y pruebas
unitarias/integración (Vitest) + E2E crítico (Playwright).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HBavCJfCnFobnutdfAp7hs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants