# Plan de Trabajo: Sistema de Suscripciones Escalable

## 📋 Objetivo General
Transformar el sistema actual de suscripciones y planes para que sea completamente compatible con el modelo híbrido de empresas (Holdings, Resellers, Subsidiarios) con capacidades avanzadas de gestión, comisiones automáticas y escalabilidad.

## 🎯 Estructura Actual Analizada

### Tablas Existentes
- ✅ `planes` - Estructura básica funcional
- ✅ `plan_modulos` - Relación planes-módulos
- ✅ `suscripciones` - **Ya incluye campos para comisiones**
- ✅ `suscripcion_modulos` - Módulos por suscripción
- ✅ `suscripcion_pagos` - Historial de pagos
- ✅ `suscripcion_modulos_historial` - Auditoría de cambios

### Campos Existentes en Suscripciones para Comisiones
- `vendida_por_empresa_id` - ID de la empresa vendedora
- `comision_aplicada` - Porcentaje de comisión aplicado
- `precio_venta` - Precio de venta al cliente
- `precio_costo` - Precio de costo interno

## 🚀 Extensiones Implementadas

### 1. Extensiones de Planes (`007_planes_extensiones.sql`)
**Campos Agregados:**
- `disponible_para_holdings` - Disponibilidad por tipo de empresa
- `disponible_para_resellers` - Disponibilidad para resellers
- `disponible_para_subsidiarios` - Disponibilidad para subsidiarios
- `permite_comisiones` - Si el plan genera comisiones
- `comision_base_porcentaje` - Porcentaje base de comisión
- `precio_holding` - Precio especial para holdings
- `precio_reseller` - Precio especial para resellers
- `precio_subsidiario` - Precio especial para subsidiarios
- `max_subsidiarios_permitidos` - Límite de subsidiarios
- `requiere_aprobacion_holding` - Requiere aprobación del holding
- `permite_facturacion_consolidada` - Facturación consolidada
- `categoria` - Categorización (estándar, premium, enterprise)
- `caracteristicas_json` - Características detalladas en JSON
- `restricciones_json` - Restricciones específicas en JSON

### 2. Configuraciones Granulares (`008_plan_configuraciones_empresa.sql`)
**Nueva Tabla:** `plan_configuraciones_empresa`
- Configuraciones específicas por tipo de empresa
- Precios diferenciados por tipo
- Límites personalizables (usuarios, productos, documentos)
- Configuración de comisiones específica
- Módulos incluidos/opcionales por tipo
- Control de disponibilidad y aprobaciones

### 3. Políticas de Cambio (`009_plan_politicas_cambio.sql`)
**Nueva Tabla:** `plan_politicas_cambio`
- Control de upgrades/downgrades entre planes
- Configuración de costos de cambio
- Prorrateo automático de diferencias
- Restricciones temporales y aprobaciones
- Configuración de migración de datos
- Notificaciones automáticas

### 4. Suscripciones Mejoradas (`010_suscripciones_extensiones.sql`)
**Campos Agregados a Suscripciones:**
- `holding_principal_id` - Holding que controla la suscripción
- `facturacion_consolidada` - Facturación consolidada habilitada
- `empresa_facturacion_id` - Empresa que recibe la factura
- `plan_anterior_id` - Plan anterior en cambios
- `estructura_comisiones` - Estructura detallada de comisiones (JSON)
- `comisiones_pausadas` - Control de pausa de comisiones
- `metodo_pago_preferido` - Método de pago preferido
- `auto_renovacion` - Renovación automática
- `limites_personalizados` - Límites que sobrescriben el plan (JSON)
- `uso_actual` - Uso actual de recursos (JSON)
- `modulos_bloqueados` - Módulos bloqueados (JSON)
- `origen_suscripcion` - Origen (manual, automático, migración)
- `referencia_externa` - Para integración con otros sistemas

### 5. Historial Completo (`011_suscripcion_historial_cambios.sql`)
**Nueva Tabla:** `suscripcion_historial_cambios`
- Auditoría detallada de todos los cambios
- Información de aprobaciones y usuarios
- Impacto en comisiones y facturación
- Trazabilidad completa con IP y user agent
- Datos adicionales en JSON para flexibilidad

## 🎯 Beneficios del Sistema

### Escalabilidad
- ✅ Configuraciones flexibles por tipo de empresa
- ✅ Fácil adición de nuevos tipos de empresa
- ✅ Políticas de cambio configurables
- ✅ Estructura modular y extensible

### Modelo Híbrido Completo
- ✅ Holdings pueden vender directo (100% margen)
- ✅ Resellers con comisiones automáticas (15-25%)
- ✅ Subsidiarios con precios diferenciados
- ✅ Facturación consolidada opcional
- ✅ Jerarquía de aprobaciones

### Control de Negocio
- ✅ Aprobaciones por jerarquía empresarial
- ✅ Límites personalizables por suscripción
- ✅ Auditoría completa de cambios
- ✅ Políticas de cambio flexibles
- ✅ Control de comisiones granular

### Integración
- ✅ Compatible con sistema de comisiones existente
- ✅ Referencias externas para otros sistemas
- ✅ Sincronización con facturación
- ✅ APIs RESTful para integración

## 📝 Fases de Implementación

### ✅ Fase 1: Análisis y Diseño (COMPLETADA)
- Análisis de estructura actual
- Diseño de extensiones
- Creación de migraciones SQL
- Documentación del plan

### 🔄 Fase 2: Migración de Base de Datos (EN PROGRESO)
- Ejecutar migraciones 007-011
- Actualizar schema.prisma
- Verificar integridad de datos
- Crear script de migración consolidado

### ⏳ Fase 3: Servicios Backend (PENDIENTE)
- Crear PlanesService con lógica de negocio
- Crear SuscripcionesService mejorado
- Implementar lógica de cambios de plan
- Servicios de configuración por tipo de empresa

### ⏳ Fase 4: APIs REST (PENDIENTE)
- PlanesController con endpoints completos
- SuscripcionesController mejorado
- APIs de configuración y políticas
- Documentación Swagger

### ⏳ Fase 5: Frontend de Administración (PENDIENTE)
- Panel de administración de planes
- Gestión de suscripciones avanzada
- Dashboard de métricas y reportes
- Interfaz de configuración de políticas

### ⏳ Fase 6: Testing y Optimización (PENDIENTE)
- Testing unitario e integración
- Optimización de consultas
- Validación de reglas de negocio
- Testing de rendimiento

## 🔧 Casos de Uso Principales

### Para Holdings
1. **Venta Directa:** Crear suscripciones para subsidiarios con 100% margen
2. **Gestión de Resellers:** Configurar comisiones y límites para resellers
3. **Facturación Consolidada:** Recibir facturas de múltiples subsidiarios
4. **Control de Políticas:** Definir reglas de cambio de planes
5. **Dashboard Ejecutivo:** Métricas de toda la red empresarial

### Para Resellers
1. **Venta con Comisiones:** Vender suscripciones con comisiones automáticas
2. **Gestión de Cartera:** Administrar subsidiarios asignados
3. **Dashboard de Comisiones:** Ver comisiones pendientes y pagadas
4. **Límites Personalizados:** Configurar límites específicos por cliente
5. **Reportes de Ventas:** Métricas de rendimiento comercial

### Para Subsidiarios
1. **Suscripción Directa:** Contratar planes según disponibilidad
2. **Cambios de Plan:** Upgrades/downgrades según políticas
3. **Gestión de Módulos:** Activar/desactivar módulos opcionales
4. **Historial de Cambios:** Ver auditoría de modificaciones
5. **Soporte Integrado:** Comunicación con holding/reseller

## 📊 Métricas y KPIs

### Métricas de Negocio
- Ingresos por tipo de empresa
- Comisiones generadas y pagadas
- Tasa de conversión por canal
- Retención por tipo de plan
- Crecimiento de la red empresarial

### Métricas Operativas
- Tiempo promedio de activación
- Tasa de cambios de plan
- Uso de recursos por suscripción
- Eficiencia de facturación consolidada
- Satisfacción por tipo de usuario

## 🔒 Consideraciones de Seguridad

### Control de Acceso
- Autenticación JWT por tipo de empresa
- Autorización basada en jerarquía
- Auditoría de accesos y cambios
- Encriptación de datos sensibles

### Integridad de Datos
- Validaciones de reglas de negocio
- Transacciones atómicas
- Backup automático de cambios críticos
- Recuperación ante fallos

## 🚀 Roadmap Futuro

### Funcionalidades Avanzadas
- IA para recomendación de planes
- Predicción de churn por tipo de empresa
- Optimización automática de comisiones
- Integración con sistemas de CRM
- Marketplace de módulos adicionales

### Escalabilidad Técnica
- Microservicios especializados
- Cache distribuido
- Procesamiento asíncrono
- APIs GraphQL
- Monitoreo avanzado

---

**Fecha de Creación:** Febrero 2026  
**Versión:** 1.0  
**Estado:** Fase 2 - Migración de Base de Datos  
**Próxima Revisión:** Post-implementación Fase 3
