# 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*
