Plataforma SaaS B2B multiservicio de tecnología e IA - #1
Draft
PyCHile wants to merge 1 commit into
Draft
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
lib/auth/guards.ts(requireUser,requireOrganization,requireAdmin,assertOrganizationAccess) — elorganizationIdnunca se toma de un valor enviado por el navegador, siempre se deriva de la sesión +Membership.lib/services/catalog.ts) con planes Starter/Pro/Enterprise configurables en base de datos (sin precios hardcodeados en componentes), y unServiceWorkflowRegistry(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.WebhookEvent); MercadoPago Preference (pago único) y PreApproval (suscripción) con verificación de firmax-signature. La activación de servicios ocurre exclusivamente vía webhook, nunca desde parámetros de retorno del navegador./,/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/servicios/[slug]) que renderiza su wizard de solicitud real a partir delServiceWorkflowRegistry./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.LinkedInQueue) y cron protegido conCRON_SECRETque solo publica contenido ya aprobado (nunca contenido pendiente sin revisión humana).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 erroresnpx eslint .— sin errores ni warningsnpm 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 entests/e2e/critical-flow.spec.tsGenerated by Claude Code