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)
- Implementar servicio
BillingServiceen backend - Crear controladores REST para gestión de suscripciones
- Integrar SDK de Stripe para pagos
- Crear portal de facturación en frontend
- 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