# Contexto del Proyecto: SaaS Layer

## Identificación

| Campo | Valor |
|-------|-------|
| **Nombre** | SaaS Layer |
| **Tipo** | Infraestructura |
| **Nivel** | 2B.1 (Core de Suite) |
| **Suite** | erp-suite |
| **Ruta Base** | `projects/erp-suite/apps/saas/` |
| **Estado** | En Planificación |

## Descripción

Capa de servicios compartidos para gestión de multi-tenancy, billing, suscripciones y portal de clientes.

## Responsabilidades

1. **Billing** - Cobros, suscripciones, facturación
2. **Portal** - Self-service para clientes
3. **Admin** - Gestión de tenants
4. **Onboarding** - Registro de nuevos clientes

## Stack Tecnológico

```yaml
backend:
  runtime: Node.js 20+
  framework: NestJS
  language: TypeScript 5.3+

frontend:
  framework: React 18
  bundler: Vite
  styling: Tailwind CSS

database:
  engine: PostgreSQL 15+
  schema: saas

integrations:
  payments: Stripe, Conekta
  invoicing: PAC CFDI (México)
  notifications: Email, WhatsApp
```

## Variables del Proyecto

```yaml
PROJECT_NAME: saas-layer
PROJECT_CODE: SAAS
SUITE: erp-suite

# Paths
BILLING_ROOT: apps/saas/billing
PORTAL_ROOT: apps/saas/portal
ADMIN_ROOT: apps/saas/admin
ONBOARDING_ROOT: apps/saas/onboarding

# Database
DB_SCHEMA: saas
MAX_TABLES: 15
```

## Módulos

| Módulo | Descripción | Prioridad |
|--------|-------------|-----------|
| billing | Suscripciones y cobros | P0 |
| portal | Portal de clientes | P1 |
| admin | Panel de administración | P1 |
| onboarding | Registro de clientes | P0 |

## Planes de Suscripción

| ID | Plan | Precio | Target |
|----|------|--------|--------|
| pos-micro | POS Micro | 100 MXN/mes | Mercado informal |
| erp-basic | ERP Básico | 300 MXN/mes | PyMEs |
| erp-pro | ERP Pro | 500 MXN/mes | PyMEs+ |
| vertical-x | Vertical | 1,000+ MXN/mes | Industrias específicas |

## Dependencias

### Productos que dependen de SaaS Layer

- `products/pos-micro` - Billing, onboarding
- `products/erp-basico` - Billing, portal, onboarding
- `verticales/*` - Billing, portal, admin

### Servicios externos

- Stripe - Pagos internacionales
- Conekta - Pagos México
- PAC CFDI - Facturación electrónica
- SendGrid - Email transaccional
- WhatsApp Business API - Notificaciones

## Roadmap

### Sprint 1: Billing MVP
- [ ] Modelo de datos
- [ ] Integración Stripe básica
- [ ] Webhook de pagos
- [ ] API de suscripciones

### Sprint 2: Onboarding
- [ ] Flujo de registro
- [ ] Selección de plan
- [ ] Configuración inicial
- [ ] Activación automática

### Sprint 3: Portal
- [ ] Dashboard cliente
- [ ] Ver facturas
- [ ] Cambiar plan
- [ ] Soporte básico

---

*Última actualización: 2025-12-08*
