# SaaS Layer - ERP Suite ## Descripción Capa de servicios SaaS que gestiona multi-tenancy, billing, suscripciones y portal de clientes para todos los productos del ERP Suite. ## Componentes ``` saas/ ├── billing/ # Facturación y cobros ├── portal/ # Portal de clientes ├── admin/ # Administración multi-tenant ├── onboarding/ # Registro y configuración inicial ├── docs/ # Documentación └── orchestration/ # Sistema NEXUS ``` ## Billing Gestión de suscripciones y cobros. ### Funcionalidades - Planes de suscripción (POS Micro, ERP Básico, Verticales) - Cobro recurrente (mensual/anual) - Integración con Stripe/Conekta - Facturación automática (CFDI México) - Gestión de módulos opcionales ### Planes | Plan | Precio Base | Productos | |------|-------------|-----------| | POS Micro | 100 MXN/mes | pos-micro | | ERP Básico | 300 MXN/mes | erp-basico | | ERP Pro | 500 MXN/mes | erp-basico + módulos | | Vertical | 1,000+ MXN/mes | erp-core + vertical | ### Módulos Opcionales | Módulo | Precio | Disponible en | |--------|--------|---------------| | Contabilidad | +150 MXN/mes | ERP Básico, Verticales | | RRHH | +100 MXN/mes | ERP Básico, Verticales | | CFDI | +100 MXN/mes | Todos | | WhatsApp Bot | Por consumo | Todos | | Usuario extra | +50 MXN/mes | Todos | ## Portal Portal self-service para clientes. ### Funcionalidades - Dashboard de cuenta - Gestión de suscripción - Historial de facturas - Cambio de plan - Soporte/tickets - Configuración de módulos ## Admin Panel de administración para operadores. ### Funcionalidades - Gestión de tenants - Métricas de uso - Facturación manual - Soporte nivel 1 - Configuración global - Feature flags por tenant ## Onboarding Flujo de registro y configuración inicial. ### Flujo 1. **Registro** - Email o WhatsApp 2. **Selección de plan** - POS Micro, ERP Básico, etc. 3. **Datos de empresa** - RFC, dirección, giro 4. **Configuración inicial** - Productos, usuarios 5. **Pago** - Tarjeta o transferencia 6. **Activación** - Acceso inmediato ## Stack Tecnológico ```yaml backend: runtime: Node.js 20+ framework: NestJS language: TypeScript payments: Stripe + Conekta invoicing: PAC CFDI frontend: framework: React 18 bundler: Vite styling: Tailwind CSS database: engine: PostgreSQL 15+ schema: saas tables: ~15 ``` ## Base de Datos ### Schema: `saas` ```sql -- Gestión de tenants y suscripciones saas.tenants -- Empresas/clientes saas.subscriptions -- Suscripciones activas saas.plans -- Catálogo de planes saas.plan_features -- Features por plan saas.invoices -- Facturas emitidas saas.payments -- Pagos recibidos saas.payment_methods -- Métodos de pago guardados saas.usage_tracking -- Tracking de consumo saas.support_tickets -- Tickets de soporte saas.onboarding_sessions -- Sesiones de registro ``` ## Integración con Productos ``` ┌─────────────────────────────────────────────────────────────┐ │ SAAS LAYER │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ billing │ │ portal │ │ admin │ │onboarding│ │ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ │ │ │ │ │ └───────────┴───────────┴───────────┘ │ │ │ │ │ API Gateway │ │ │ │ └─────────────────────────┼───────────────────────────────────┘ │ ┌───────────────┼───────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ POS Micro│ │ERP Básico│ │Verticales│ └──────────┘ └──────────┘ └──────────┘ ``` ## Variables de Entorno ```env # Payments STRIPE_SECRET_KEY=sk_xxx STRIPE_WEBHOOK_SECRET=whsec_xxx CONEKTA_API_KEY=key_xxx # CFDI PAC_RFC=XXX PAC_API_KEY=xxx PAC_ENVIRONMENT=sandbox|production # Database DATABASE_URL=postgresql://... SAAS_SCHEMA=saas # General ONBOARDING_URL=https://registro.erp-suite.com PORTAL_URL=https://portal.erp-suite.com ``` ## Roadmap ### MVP (v1.0) - [ ] Modelo de datos billing - [ ] Integración Stripe básica - [ ] Portal mínimo (ver facturas) - [ ] Onboarding POS Micro - [ ] Admin básico ### v1.1 - [ ] Integración Conekta - [ ] CFDI automático - [ ] Onboarding ERP Básico - [ ] Métricas de uso ### v1.2 - [ ] Portal completo - [ ] Cambio de plan self-service - [ ] Soporte integrado - [ ] Referidos --- *SaaS Layer v1.0* *ERP Suite*