| id |
title |
type |
status |
version |
created_date |
updated_date |
source |
normativas |
| MGN-017-plans |
Modulo Plans - Planes y Feature Gating para Clinica Dental |
Module |
Draft |
1.0.0 |
2026-01-13 |
2026-01-13 |
erp-core/MGN-017-plans |
|
MGN-017: Modulo Plans - Planes y Feature Gating Dental
Descripcion
El modulo Plans gestiona la definicion de planes de suscripcion para clinicas dentales, feature gating por plan, y enforcement de limites y cuotas por consultorio. Controla acceso a funcionalidades especializadas como odontograma digital, radiografias, ortodoncia 3D y herramientas de IA.
Objetivos
- Definicion de Planes Dentales - Planes diferenciados por tipo de consultorio
- Feature Gating Odontologico - Control de acceso a funcionalidades dentales
- Limites por Sillon - Enforcar limites por numero de sillones
- Usage Tracking - Monitorear uso de funcionalidades
- Upgrade/Downgrade - Flujos para cambio de plan
Planes para Clinica Dental
| Plan |
Precio/mes |
Sillones |
Usuarios |
Storage |
Pacientes/mes |
| Consultorio |
$499 MXN |
1 |
3 |
5 GB |
100 |
| Clinica |
$1,499 MXN |
5 |
15 |
25 GB |
500 |
| Centro Dental |
$3,999 MXN |
Ilimitado |
Ilimitado |
100 GB |
Ilimitado |
Features por Plan
| Feature |
Consultorio |
Clinica |
Centro Dental |
| odontograma_basico |
Si |
Si |
Si |
| odontograma_digital |
No |
Si |
Si |
| radiografias_digitales |
No |
Si |
Si |
| ortodoncia_3d |
No |
No |
Si |
| presupuestos_dentales |
Si |
Si |
Si |
| reportes_basicos |
Si |
Si |
Si |
| reportes_avanzados |
No |
Si |
Si |
| whatsapp_business |
No |
No |
Si |
| asistente_ia |
No |
No |
Si |
| multi_sucursal |
No |
No |
Si |
| api_access |
No |
Si |
Si |
| exportar_datos |
Si |
Si |
Si |
| historial_auditoria |
7 dias |
30 dias |
365 dias |
Limites por Plan
| Limite |
Consultorio |
Clinica |
Centro Dental |
| Sillones |
1 |
5 |
Ilimitado |
| Usuarios |
3 |
15 |
Ilimitado |
| Pacientes/mes |
100 |
500 |
Ilimitado |
| Storage |
5 GB |
25 GB |
100 GB |
| Radiografias/mes |
50 |
250 |
Ilimitado |
| API calls/mes |
0 |
10,000 |
Ilimitado |
Alcance
| Caracteristica |
Incluido |
Notas |
| Plans CRUD |
Si |
Admin only |
| Limites por sillon |
Si |
Enforcement estricto |
| Feature flags dentales |
Si |
Boolean y limites |
| Quota enforcement |
Si |
Middleware |
| Usage tracking |
Si |
Snapshots diarios |
| Usage alerts |
Si |
80%, 90%, 100% |
| Overage billing |
No |
Fase posterior |
Arquitectura
Flujo de Quota Check
Request (ej: crear_radiografia)
|
v
+-------------------+
| QuotaMiddleware |-----> Permitido (si dentro de limite)
+-------------------+
|
v (check)
+-------------------+
| PlanLimitsService |
+-------------------+
|
v
+-------------------+
| Usage Tracking |
+-------------------+
|
v (excede limite)
QuotaExceededException -> "Limite de radiografias alcanzado"
Prioridad de Evaluacion
- Tenant Override - Maxima prioridad, excepciones manuales
- Plan Features - Features incluidas en plan de la clinica
- Global Flag - Valor default con soporte de rollout
Casos de Uso Odontologicos
Ejemplo: Verificar Feature Odontograma Digital
// Controller
@Get('odontograma/digital')
@FeatureGuard('odontograma_digital')
async getDigitalOdontograma(@Tenant() tenant: Tenant) {
// Solo accesible para planes Clinica y Centro
return this.odontogramaService.getDigital(tenant.id);
}
Ejemplo: Verificar Limite de Radiografias
// Antes de crear radiografia
const canCreate = await this.quotaService.checkLimit(
tenantId,
'radiografias_mes',
1 // cantidad a crear
);
if (!canCreate) {
throw new QuotaExceededException(
'Limite de radiografias mensuales alcanzado. ' +
'Actualiza a plan Clinica para mas radiografias.'
);
}
Contenido del Modulo
Dependencias
Modulos Requeridos
- MGN-001-tenants - Gestion de tenants (tenant_id)
- MGN-016-billing - Suscripciones y pagos (plan_id)
Modulos Dependientes
- Odontograma (feature gating)
- Radiografias (limites)
- Ortodoncia (feature gating)
- IA (feature gating)
- WhatsApp (feature gating)
Referencias
Modulo: MGN-017-plans | Clinica Dental
Propagado desde erp-core via erp-clinicas
Actualizado: 2026-01-13