erp-core/docs/02-definicion-modulos/gaps/GAP-ANALYSIS-MGN-015.md

3.5 KiB

GAP ANALYSIS: MGN-015 - Billing y Suscripciones SaaS

Módulo: MGN-015 Nombre: Billing y Suscripciones SaaS Fecha: 2025-12-06 Estado: IMPLEMENTADO


Resumen Ejecutivo

El módulo MGN-015 proporciona la funcionalidad completa de billing y suscripciones para operar el ERP como una plataforma SaaS multi-tenant. Este módulo fue diseñado e implementado como parte del sistema base y no presenta gaps.


Alcance del Módulo

Funcionalidades Implementadas

Funcionalidad Estado Tabla(s) BD
Planes de suscripción billing.subscription_plans
Gestión de suscripciones billing.subscriptions
Historial de cambios billing.subscription_history
Propietarios de tenant billing.tenant_owners
Métodos de pago billing.payment_methods
Facturación SaaS billing.invoices, billing.invoice_lines
Pagos y cobros billing.payments
Cupones y descuentos billing.coupons, billing.coupon_redemptions
Registros de uso billing.usage_records

Planes Predefinidos

Plan Precio/Mes Usuarios Features
Free/Trial $0 3 Inventario, Ventas básico
Básico $499 5 + Financiero, Compras
Profesional $999 15 + CRM, Proyectos, Reportes avanzados, API
Enterprise $2,499 Ilimitado + White label, Soporte prioritario
Single Tenant $0 Ilimitado On-premise, todo habilitado

Análisis de Gaps

Gaps Identificados: NINGUNO

El módulo está completamente implementado a nivel de base de datos. Todas las tablas, índices, triggers y funciones necesarias están presentes.


Funciones de Negocio Implementadas

1. get_tenant_plan(p_tenant_id UUID)

Obtiene información del plan actual de un tenant.

Retorna:

  • plan_code
  • plan_name
  • max_users
  • max_companies
  • features (JSONB)
  • subscription_status
  • days_until_renewal

2. can_add_user(p_tenant_id UUID)

Verifica si el tenant puede agregar más usuarios según su plan.

Retorna: BOOLEAN

3. has_feature(p_tenant_id UUID, p_feature VARCHAR)

Verifica si una feature específica está habilitada para el tenant.

Retorna: BOOLEAN


Integraciones Previstas

Integración Estado Notas
Stripe Payments 🔲 Pendiente Campos stripe_* preparados
CFDI México 🔲 Pendiente Campos cfdi_* preparados
Webhooks 🔲 Pendiente Backend pendiente

Dependencias

Depende de:

  • MGN-001 (auth.tenants, auth.users)
  • MGN-003 (core.currencies)

Es requerido por:

  • Ningún módulo (independiente)

Características de Seguridad

  • RLS: Tablas con tenant_id tienen políticas de aislamiento
  • Soft Delete: payment_methods soporta deleted_at
  • Validaciones: Constraints en precios, descuentos, fechas

Próximos Pasos (Backend/Frontend)

  1. Implementar servicio BillingService en backend
  2. Crear controladores REST para gestión de suscripciones
  3. Integrar SDK de Stripe para pagos
  4. Crear portal de facturación en frontend
  5. Implementar webhooks para eventos de pago

Conclusión

Estado del Gap Analysis: SIN GAPS

El módulo MGN-015 está completamente implementado a nivel de base de datos y listo para desarrollo de backend y frontend.


Generado por: Requirements-Analyst Fecha: 2025-12-06