# Especificación funcional del sistema

Documento de requerimientos organizado por módulos. Cliente: **ECIM BUSINESS SOLUTIONS EIRL**.

## Índiceaaa
1. [Usuarios, roles y permisos](#1-usuarios-roles-y-permisos)
2. [Registro del alumno y documentación](#2-registro-del-alumno-y-documentación)
3. [Planes, pagos, cuotas y vencimientos](#3-planes-pagos-cuotas-y-vencimientos)
4. [Aprobación de pagos y habilitación de la alumna](#4-aprobación-de-pagos-y-habilitación-de-la-alumna)
5. [Contrato y firma del alumno](#5-contrato-y-firma-del-alumno)
6. [Membresía](#6-membresía)
7. [Cohortes, capacidad y jornada de las asesoras](#7-cohortes-capacidad-y-jornada-de-las-asesoras)
8. [Asignación de alumnas a asesoras y preferencia horaria](#8-asignación-de-alumnas-a-asesoras-y-preferencia-horaria)
9. [Calendario, disponibilidad y reservas](#9-calendario-disponibilidad-y-reservas-de-asesorías)
10. [Asesoría académica y temario de 12 clases mensuales](#10-asesoría-académica-y-temario-pautado-de-12-clases-mensuales)
11. [Sesiones, asistencia y bitácora](#11-sesiones-asistencia-y-bitácora)
12. [Control de horas y consolidado mensual](#12-control-de-horas-de-las-asesoras-y-consolidado-mensual)
13. [Liquidación mensual de asesoras](#13-liquidación-mensual-de-asesoras)
14. [Formación (15 módulos)](#14-formación-15-módulos)
15. [Seguimiento real de actividad académica](#15-seguimiento-real-de-actividad-académica)
16. [Beneficios y recompensas](#16-beneficios-y-recompensas)
17. [Fase de ventas (Camila → Jasmin)](#17-fase-de-ventas-camila--jasmin)
18. [Cobranza y comisiones](#18-cobranza-y-comisiones)
19. [Servicio Premium](#19-servicio-premium)
20. [Constancia digital y código QR](#20-constancia-digital-y-código-qr)
21. [Notificaciones automáticas](#21-notificaciones-automáticas)
22. [Paneles por rol](#22-paneles-por-rol)
23. [Reportes](#23-reportes)
24. [Configuración administrativa](#24-configuración-administrativa)
25. [Seguridad, privacidad y auditoría](#25-seguridad-privacidad-y-auditoría)
26. [Condiciones generales de desarrollo](#26-condiciones-generales-de-desarrollo)
27. [Diagramas de funcionamiento](#27-diagramas-de-funcionamiento)

---

## 1. Usuarios, roles y permisos

**Objetivo:** gestionar los usuarios y controlar el acceso según el rol, garantizando que cada usuario vea y opere solo la información que le corresponde.

### Funcionalidades

- Autenticación de usuarios (inicio y cierre de sesión seguro).
- Registro, visualización y modificación de los datos de los usuarios.
- Gestión de roles y permisos (**RBAC con permisos finos**).
- Separación de datos por rol.

### Roles

| Rol | Qué puede hacer | Restricciones |
|---|---|---|
| **Superadmin / Dueña** | Acceso total a configuración, alumnos, pagos, cohortes, asesoras, horarios, horas, liquidaciones, temario, Premium, reportes, auditoría y permisos. | Sus acciones críticas quedan auditadas. |
| **Administración** | Gestión de alumnos, pagos, comprobantes, cuotas, contratos, membresías, formación y reportes autorizados. | No aprueba cambios de permisos críticos salvo autorización. |
| **Asesora educativa** | Mis alumnos, calendario, disponibilidad, sesiones, asistencia, progreso, bitácora, horas, temario de cada alumna y estado de cuota (solo lectura). | Solo accede a sus alumnas asignadas. No puede aprobar, rechazar ni modificar pagos. |
| **Asesora comercial** | Prospectos y alumnos asignados, pagos aprobados, cuotas, vencimientos, cobranza, comisión, capacidad y horarios de asesoras. | No puede aprobar ni rechazar pagos. |
| **Alumno** | Perfil, formación, progreso, beneficios, pagos, asesorías, notificaciones y constancia. | Solo accede a sus propios datos y servicios. |
| **Cliente Premium** | Objetivos, métricas, agenda, sesiones y seguimiento Premium. | Solo accede a su información. |

---

## 2. Registro del alumno y documentación

**Objetivo:** que el alumno registre sus datos personales, su programa y su pago inicial, adjuntando los documentos de sustento.

### Funcionalidades

- **Formulario de registro** con:
  - Nombres y apellidos completos
  - DNI o Carné de Extranjería
  - Nacionalidad
  - Correo electrónico (preferentemente Gmail)
  - WhatsApp
  - País y ciudad
  - Programa y plan
  - Tipo de pago
  - Monto pagado
  - Método de pago (Yape, Plin, transferencia, depósito u otro)
  - Comprobante de pago
  - Documento de identidad (solo lado frontal)
- Al enviar el registro, el alumno queda en estado **"Pago pendiente de validación"**.
- Almacenamiento privado de documentos, visibles únicamente para los roles autorizados.

---

## 3. Planes, pagos, cuotas y vencimientos

**Objetivo:** configurar los planes comerciales y registrar la situación financiera de cada alumno.

**Planes de referencia actuales** (parámetros configurables, **no** valores fijos en el código):

| Plan | Precio |
|---|---|
| 6 meses | S/ 1,700 |
| 1 año | S/ 2,500 |

### Funcionalidades

- **Configuración de cada plan:** precio total, monto de reserva, número de cuotas, monto de cada cuota, fechas o reglas de vencimiento, duración de membresía, regla *Pago → módulos*, regla *Pago → recompensas*, regla *Pago → habilitación para programar asesorías* y condiciones de servicio.
- **Registro de nuevos pagos** por el alumno desde "Mis pagos" con el botón **REGISTRAR NUEVO PAGO**; al adjuntar el comprobante queda como "Pago pendiente de validación".
- Control de total pagado, saldo, cuotas y vencimientos de cada alumno.
- **Reglas Pago → módulos** configurables por Administración, sin establecer en el código que una cuota equivale a un módulo.

### Ejemplo (modificable sin cambiar código)

| Pago | Módulos desbloqueados |
|---|---|
| Reserva S/ 200 | Módulo 1 |
| Cuota 1 | Módulos 2–3 |
| Cuota 2 | Módulos 4–5 |
| Cuota 3 | Módulos 6–8 |
| Cuota 4 | Módulos 9–15 |
| Pago total | Todos los módulos |

---

## 4. Aprobación de pagos y habilitación de la alumna

**Objetivo:** gestionar la aprobación de pagos como evento crítico y conectar los pagos con la habilitación de la alumna y la programación de asesorías.

> **Lógica central:** pago aprobado → alumna habilitada → asesoría programable.

### Funcionalidades

- **Aprobación o rechazo** únicamente por la Dueña/Superadmin o Administración autorizada. Ni la asesora comercial ni la educativa pueden aprobar, rechazar o modificar un pago.
- **Al aprobar un pago**, el sistema ejecuta automáticamente y **en este orden**:
  1. Registrar el pago aprobado
  2. Actualizar total pagado
  3. Actualizar saldo
  4. Actualizar cuota y vencimiento
  5. Aplicar la regla de módulos desbloqueados
  6. Desbloquear recompensas aplicables
  7. Actualizar membresía
  8. Cambiar el estado de la alumna a **HABILITADA** y liberar la programación de asesorías según su plan
  9. Calcular la comisión comercial
  10. Actualizar dashboards
  11. Activar el flujo de asignación/asesoría si corresponde
  12. Notificar a la asesora educativa asignada que la alumna está habilitada
  13. Enviar notificaciones al alumno y a la comercial
  14. Registrar la auditoría
- **Rechazo** con motivo obligatorio; un pago rechazado no desbloquea beneficios ni habilita la programación.
- **Reversión o devolución** mediante un ajuste/reversión, sin eliminar el histórico.
- **Bloqueo de nuevas reservas** mientras la cuota no esté aprobada, con mensaje claro y registro del intento. Solo se puede programar a una alumna no habilitada con **autorización expresa de la Dueña**, la cual queda auditada.
- **Detección automática de cuota vencida:** la alumna pasa a no habilitada, se bloquean nuevas reservas según la política, semáforo rojo en el perfil, notificación a la Dueña, la comercial y la asesora, y registro de auditoría.
- **Política configurable** ante una cuota que vence cuando ya hay clases reservadas (mantener, suspender o cancelar esas reservas, y periodo de gracia). **Por defecto** se bloquea la creación de nuevas reservas y se conservan las ya creadas con un aviso visible.

### Semáforo de estado de cuota

Visible en **solo lectura** en el perfil de cada alumna asignada a la asesora educativa.

| Color | Estado | Significado |
|---|---|---|
| 🟢 Verde | Pagada y aprobada | La cuota fue validada por la Dueña/Administración; la alumna está habilitada y se pueden programar sus clases. |
| 🟡 Amarillo | Pendiente de validación | La alumna registró el pago y adjuntó comprobante, pero falta la aprobación; no habilita por sí sola y el sistema muestra un aviso. |
| 🔴 Rojo | Pendiente o vencida | No existe pago registrado o la cuota venció; la programación queda bloqueada según la política configurada. |

---

## 5. Contrato y firma del alumno

**Objetivo:** generar automáticamente el contrato con los datos del registro y gestionar su aceptación y firma.

### Funcionalidades

- **Generación automática** del contrato con: ECIM BUSINESS SOLUTIONS EIRL, nombre, DNI/CE, nacionalidad, email, WhatsApp, programa, plan, precio total, pago inicial, saldo, cuotas, vencimientos y términos.
- **Flujo de firma:** revisar contrato → aceptar términos → **FIRMAR CONTRATO** → guardar fecha/hora, usuario, versión y evidencia.
- El alumno revisa el contrato antes de firmar; una vez firmado **no** se muestra una sección permanente "Mi contrato".
- **Histórico** de contratos firmados: búsqueda, visualización y descarga por Superadmin/Administración.

> ⚠️ **Nota legal:** la validez jurídica depende del mecanismo de firma seleccionado y de la normativa aplicable. Una firma dibujada no equivale automáticamente a una firma digital certificada.

---

## 6. Membresía

**Objetivo:** controlar la vigencia del servicio contratado por cada alumno.

### Funcionalidades

- Registro de fecha de inicio, fecha de expiración, plan y estado (**Activa / Expirada**).
- Historial de renovaciones.
- Reglas de duración configurables (ejemplo: inicio 17/09/2026 → vencimiento 17/09/2027 para un plan de un año).

---

## 7. Cohortes, capacidad y jornada de las asesoras

**Objetivo:** organizar el crecimiento mediante cohortes y controlar la capacidad mensual de las asesoras educativas.

### Metas y cifras de diseño

| Parámetro | Valor |
|---|---|
| Meta de alumnos nuevos por mes | 30 |
| Máximo de alumnos nuevos por asesora y cohorte | 10 |
| Duración del acompañamiento por cohorte | 3 meses |
| Asesoras por cohorte | 3 |
| Asesoras en régimen estable | 9 |

**Rotación de ejemplo:**

| Cohorte | Asesoras |
|---|---|
| Octubre | A / B / C |
| Noviembre | D / E / F |
| Diciembre | G / H / I |
| Enero | A / B / C vuelven a recibir alumnos (el ciclo se repite) |

### Funcionalidades

- **Cohorte como entidad propia** con: fecha de inicio y fin, meta de alumnos, capacidad máxima por asesora, asesoras asignadas, alumnos asignados, horas comprometidas, estado (*planificada, abierta, en atención, cierre, finalizada*) y reglas de liberación y reutilización.
- **Regla de capacidad:** máximo inicial de 10 alumnos nuevos por asesora y cohorte. Una asesora en 10/10 no recibe otro alumno de esa cohorte salvo **override autorizado por la Dueña/Superadmin**, registrando quién, cuándo y por qué.
- **Regla de liberación:** al terminar los tres meses, el sistema cambia automáticamente a la asesora a "Disponible para nueva cohorte", siempre que no haya otra asignación incompatible, con registro de auditoría.
- **Cierre de cohorte:** cerrar periodo → impedir nuevas asignaciones → finalizar cohorte → liberar asesora → recalcular capacidad → permitir nueva cohorte → auditar.
- **Cálculo automático** de cuántas asesoras se requieren cuando cambie la meta mensual de alumnos.

### Jornada de cada asesora educativa

- 5 horas diarias, lunes a sábado → **30 h semanales / 120 h mensuales** (4 semanas de cálculo).
- Cada alumna recibe **3 horas por semana (12 h al mes)**, en 12 clases de 1 hora (3 por semana).
- Con 10 alumnas se completan las 120 h mensuales de la asesora.
- El sistema conserva las **fechas reales de calendario** sin asumir que todos los meses tienen cuatro semanas; el parámetro de cálculo es configurable.

### Turnos iniciales

| Asesora | Horario |
|---|---|
| A | 2:00 p. m. – 7:00 p. m. |
| B y C | 5:00 p. m. – 10:00 p. m. |
| D a I | Configurables según contratación |

- Todas de lunes a sábado, con 10 alumnos nuevos por cohorte por defecto.
- Configurables: duración de cada slot, capacidad por slot, días de atención, vacaciones, feriados y bloqueos.
- El turno de cinco horas es una **ventana de disponibilidad**; no implica cinco reservas obligatorias.

---

## 8. Asignación de alumnas a asesoras y preferencia horaria

**Objetivo:** que la asesora comercial asigne cada alumno nuevo a una asesora educativa con cupo y horario compatible.

### Funcionalidades

- **Vista de disponibilidad** para la comercial: asesora, asignados (X/10), máximo, cupos restantes, turno y estado (*Disponible / Sin cupos*).
- **Contador mensual y por cohorte** en tiempo real: al asignar, el contador aumenta; al llegar a 10/10 el estado cambia a "Sin cupos".
- **Filtros** por cohorte, turno y disponibilidad.
- **Preferencia horaria** del alumno durante el proceso comercial. No es una reserva; sirve para encontrar una asesora compatible (ej.: si María puede conectarse a las 7:00 p. m., Melissa identifica una asesora de su cohorte cuyo turno cubra ese horario).
- **Proceso de asignación:** validar cohorte → validar capacidad → validar periodo/horario → asignar alumno ↔ asesora → incrementar contador → recalcular cupos → guardar preferencia → asignar la malla de temas vigente → notificar → auditar.
- El alumno queda **pendiente de programación definitiva**; la reserva concreta se crea después.
- **Separación en base de datos** de tres conceptos:

| Concepto | Qué representa |
|---|---|
| Asignación | Quién atiende al alumno |
| Preferencia | Cuándo puede el alumno |
| Booking | Sesión concreta con fecha y hora |

---

## 9. Calendario, disponibilidad y reservas de asesorías

**Objetivo:** gestionar la agenda de las asesoras y la programación de asesorías, con **una única reserva compartida** entre alumno y asesora (sin registros desconectados que puedan desincronizarse).

### Funcionalidades

- **Primera asesoría y programación del horario:** con la alumna asignada y cuota aprobada, la asesora consulta la disponibilidad de la alumna y sus propios slots, se acuerdan días y horas, la asesora crea la pauta semanal/recurrente y el sistema genera las reservas individuales asignándoles su tema del temario vigente. Las reservas aparecen para ambas y cada cambio queda auditado.
- **Reservas recurrentes:** serie semanal con fecha inicial y final; en cada fecha se valida turno y disponibilidad, cuota de sesiones, habilitación por pago aprobado y slot libre. Cada sesión es un registro individual; se puede reprogramar una sesión sin alterar la serie; se registran excepciones y cambios; ambos calendarios se actualizan automáticamente.
- **Prevención de doble booking:** no se permiten dos reservas confirmadas en el mismo slot; cada reserva se crea con una operación **transaccional/atómica**.
- **Proceso de reserva:** validar alumno/asesora/etapa → validar habilitación por cuota aprobada → cuota de sesiones → fecha/hora → turno → slot libre → crear booking atómico → asignar tema de la malla → ocupar slot → actualizar agendas → notificar → auditar.
- **Calendario de asesoras** (diario, semanal y mensual) con: turno de trabajo, slots ocupados/libres, sesiones confirmadas/pendientes/reprogramadas/canceladas, bloqueos y vacaciones, disponibilidad para nuevas asignaciones, filtros por cohorte y etapa, y el **tema previsto** de cada clase.
- La alumna ve solo los horarios permitidos de su asesora; la asesora ve solo a sus alumnas.

---

## 10. Asesoría académica y temario pautado de 12 clases mensuales

**Objetivo:** organizar la etapa académica: **3 meses**, **12 clases de 1 hora por mes** (3 por semana), **36 clases** en total. Cada clase está pautada por tema para que la asesora no improvise. Cantidad de clases, duración y clases por semana son configurables.

### Funcionalidades

- **Control por alumna** de sesiones asignadas, utilizadas, restantes, realizadas, reprogramadas, no realizadas y asistencia. Cada alumna pertenece a una cohorte, tiene asesora asignada y debe estar habilitada por pago aprobado. Cada sesión tiene estado, duración y tema, y alimenta el historial y el control de horas.
- **Malla de temas por etapa** (académica, ventas y futuras), definida por Administración. Cada tema contiene: número de orden, nombre, objetivo, contenidos, material de apoyo, entregable/tarea esperada y duración prevista (por defecto 1 hora). La etapa académica contempla 36 temas (configurable).
- **Malla versionada:** si se modifica, las alumnas en curso conservan la versión con la que iniciaron, salvo que la Dueña decida migrarlas.
- **Vista de solo lectura** de la malla para la asesora educativa.
- **Asignación automática del tema:** al crear la pauta semanal se generan las 12 reservas del mes y cada una recibe el siguiente tema pendiente, en orden. Antes de la clase, la asesora ve tema, objetivo, contenidos y material.
- **Avance del temario:**
  - Clase realizada → tema marcado como trabajado y avanza el puntero.
  - Clase reprogramada o inasistencia → el tema **no** se consume y se re-secuencian las clases siguientes.
- **Cambio de orden de temas** propuesto por la asesora, con justificación y auditoría.
- **Política ante inasistencia** (configurable): reponer el tema al final del mes, desplazar toda la secuencia o perder el tema. **Por defecto:** desplazamiento de la secuencia sin pérdida del tema.
- **Seguimiento por tema:**
  - Ficha de la alumna con los 36 temas y su estado (*trabajado, pendiente, en curso o con dificultad*).
  - Indicador del tema actual y del retraso respecto de la malla.
  - Comparación entre clases previstas y realizadas en el mes.
  - Reporte transversal de los temas que generan más dificultad.
  - Filtros por asesora, cohorte, etapa, mes y tema.

> 📌 **Dependencia de negocio:** la carga de la malla de la etapa académica (36 temas con objetivo, contenidos y material) la proporciona el cliente. Sin ese insumo, el sistema se entrega con la estructura configurable vacía y la malla se carga después desde administración.

---

## 11. Sesiones, asistencia y bitácora

**Objetivo:** que la asesora registre el resultado de cada clase y el seguimiento de la alumna.

### Estados de la sesión y sus efectos

| Estado | Efecto |
|---|---|
| **Realizada** | La sesión fue dictada; alimenta las horas realizadas/reconocidas según regla y consume el tema de la malla. |
| **Alumna no asistió** | Se registra la inasistencia; el tema no se consume; el tratamiento posterior es configurable. |
| **Reprogramada** | Cambia de fecha; no se reconoce como dictada hasta realizarse (salvo regla explícita); el tema se desplaza. |
| **Cancelada** | No se considera realizada por defecto. |

### Campos de registro de cada clase

- Estado de la clase
- Tema trabajado (el previsto por la malla; editable con justificación)
- Observaciones (texto libre)
- Avances (qué logró la alumna)
- Dificultades (qué no logró o le costó; opción de marcar el tema como "con dificultad")
- Tarea (encargo para la siguiente clase y su cumplimiento)
- Siguiente tema (propuesto y precargado por el sistema)
- Duración efectiva
- Asistencia, métricas y progreso
- Fecha/hora
- Trazabilidad del usuario que registró o modificó

### Flujos

**Al marcar una sesión como realizada:**
registrar asistencia/duración → actualizar horas → actualizar cuota de sesiones → marcar tema como trabajado y avanzar puntero → bitácora (avances, dificultades, tarea, siguiente tema) → actividad → reportes → liquidación.

**Al reprogramar o registrar inasistencia:**
registrar estado y motivo → no consumir el tema → re-secuenciar clases siguientes → actualizar horas reprogramadas/no realizadas → notificar a alumna y asesora → reflejar en consolidado y liquidación → auditar.

---

## 12. Control de horas de las asesoras y consolidado mensual

**Objetivo:** que la Dueña sepa cuántas alumnas tiene cada asesora, cuántas horas tiene programadas, cuántas realizó y cuáles fueron reprogramadas o no realizadas, con el consolidado necesario para pagar correctamente.

### Funcionalidades

- **Indicadores por asesora y por mes:** alumnas asignadas, capacidad mensual, horas comprometidas, programadas, realizadas, reprogramadas, no realizadas, reconocidas para pago, tarifa por hora y total a pagar.
- Cálculo con la **duración efectiva/reconocida** de las sesiones (con la malla vigente cada clase dura 1 hora, configurable) y la **tarifa vigente** de cada asesora.
- **Consolidado mensual por asesora** listo para el pago.
- Separación clara de horas: comprometidas, programadas, realizadas, reprogramadas, no realizadas y reconocidas.

### Ejemplo ilustrativo

| Indicador | Valor |
|---|---|
| Alumnas | 10 |
| Capacidad | 120 h |
| Horas comprometidas | 120 h |
| Horas programadas | 118 h |
| Horas realizadas | 112 h |
| Horas reprogramadas | 4 h |
| Horas no realizadas | 2 h |
| Horas reconocidas | 112 h |
| Tarifa | S/ 30 |
| **Total a pagar** | **S/ 3,360** |

---

## 13. Liquidación mensual de asesoras

**Objetivo:** seleccionar periodo, asesora y cohorte y generar un detalle auditable del pago mensual.

### Detalle de la liquidación

- Asesora (nombre/ID), periodo y cohorte atendida
- Alumnas atendidas
- Clases programadas (cantidad y horas)
- Sesiones realizadas
- Sesiones reprogramadas (cantidad y horas; pendientes hasta realizarse)
- Sesiones no realizadas (inasistencias y cancelaciones, con su tratamiento según regla)
- Horas dictadas y horas reconocidas
- Tarifa vigente
- **Monto = horas reconocidas × tarifa**
- Estado: *generada / pendiente / pagada / ajustada*
- Datos del pago (fecha, responsable y observación)
- Auditoría (usuario y fecha de generación/modificación)

### Reglas

- Solo las sesiones con estado reconocible alimentan el pago; una reserva futura no se paga como realizada y una reprogramada queda pendiente hasta realizarse.
- Se registra el **mes programado** y el **mes dictado** para sesiones reprogramadas al mes siguiente, según la regla definida.
- Las liquidaciones históricas **no se eliminan; se ajustan**.
- Tarifa por hora configurable con fecha de vigencia.

---

## 14. Formación (15 módulos)

**Objetivo:** contenidos formativos del programa, con 15 módulos. Confirmado: **Módulo 1: Creación de tienda**. Los nombres y contenidos de los demás son editables desde administración.

### Funcionalidades

- Gestión por módulo de: videos/clases, PDFs y materiales, descargables, actividades, evaluaciones, tareas y recursos adicionales.
- Estados de módulo: **Bloqueado, En progreso, Completado**, con desbloqueo según las reglas Pago → módulos.

---

## 15. Seguimiento real de actividad académica

**Objetivo:** que la Dueña sepa si los alumnos realmente consumen la formación, más allá del porcentaje de módulos completados.

### Registro por niveles

| Nivel | Qué se registra |
|---|---|
| Cuenta | Último login y sesiones |
| Clase/video | Play, pausas, porcentaje visto, finalización |
| Actividad | Inicio, avance y finalización |
| Módulo | Progreso, fecha de inicio y finalización |
| Tiempo | Tiempo de actividad, cuando sea técnicamente medible |
| Historial | Línea de tiempo de eventos |

- El reproductor envía eventos medibles; **abrir la página de una clase no cuenta automáticamente como "vista"**.
- La precisión depende del proveedor de video/reproductor elegido.

---

## 16. Beneficios y recompensas

**Objetivo:** gestionar la sección **"Mis beneficios"** del alumno.

### Funcionalidades

- Desbloqueo de recompensas por pago, avance de fase, módulo, hitos o pago total.
- **Tipos de recompensa:** portadas para tiendas, banners, plantillas, guías, checklists, e-books, masterclasses, clases bonus, recursos exclusivos y nuevos recursos futuros.
- **Reglas configurables** (ejemplo): reserva → bienvenida; cuota 1 → portadas; cuota 2 → plantillas; cuota 3 → guía; pago total → bonus final.

---

## 17. Fase de ventas (Camila → Jasmin)

**Objetivo:** gestionar la fase de ventas: **3 meses, 4 sesiones mensuales, 1 sesión por semana**, con su propia malla de temas.

### Funcionalidades

- **Etapa de inicio** a cargo de **Camila** (implementación y acompañamiento), activa desde el inicio de la fase.
- **Etapa de revisión/escala** a cargo de **Jasmin Meléndez** (campañas, métricas, optimización, estrategia y escalamiento), que se habilita tras la transferencia.
- Opción **"TRASLADAR A ALUMNA"**, usada por la Dueña cuando corresponda. No hay elección aleatoria entre Camila y Jasmin; Camila aparece primero.
- La transferencia **conserva las sesiones restantes** del periodo (ej.: si ya se usaron 3 de 4, Jasmin dispone de la restante); el sistema no añade otras 4 automáticamente.

---

## 18. Cobranza y comisiones

**Objetivo:** seguimiento de la cobranza a cargo de la asesora comercial y cálculo de sus comisiones.

### Cobranza

- **Indicadores:** alumnos asignados, total contratado, total cobrado, saldo pendiente y vencido.
- **Filtros:** todos, pagados, pendientes, vencidos, vence hoy, vence en los próximos 7 días, parciales, totalmente pagados, y por alumno, plan, fecha y estado.
- **Historial de cobranza:** alumno, cuota, monto, fecha, canal (WhatsApp, llamada, email u otro), resultado y notas.

### Comisiones

- Porcentaje de referencia: **12%** para la asesora comercial, configurable y con fecha de vigencia.
- Base de cálculo: **pagos aprobados** (ej.: pago aprobado de S/ 500 → comisión de S/ 60).
- Estados: *generada / pendiente / pagada / ajustada*.
- Liquidación con periodo, pagos, porcentaje, monto, fecha y responsable.
- Ante devolución o anulación, se crea un **ajuste/reversión** conservando el histórico.

---

## 19. Servicio Premium

**Objetivo:** servicio separado para clientes que ya venden y tienen operación, y requieren acompañamiento en estrategia, campañas, métricas, rentabilidad, conversión, optimización y escalamiento, a cargo de la coach **Jasmin Meléndez**.

### Parámetros del servicio

| Parámetro | Valor |
|---|---|
| Duración | 3 meses |
| Sesiones mensuales | 8 |
| Sesiones totales | 24 |
| Capacidad | Configurable |
| Lista de espera | Sí |

Cuando se completa la capacidad se muestra **"CUPOS COMPLETOS"** y la opción **"INGRESAR A LISTA DE ESPERA"**.

### Panel Premium de Jasmin

- **Inicio:** clientes, sesiones y capacidad
- **Clientes Premium:** fichas y seguimiento
- **Mi calendario:** Premium + fase de ventas + bloqueos
- **Mis sesiones:** historial y pendientes
- **Mi disponibilidad:** slots y bloqueos
- **Seguimiento:** objetivos y métricas
- **Notificaciones:** agenda y cambios
- **Mi perfil**

### Ficha Premium

- Inicio, vencimiento, estado
- Sesiones: Mes 1 x/8, Mes 2 x/8, Mes 3 x/8, total x/24
- Situación inicial, objetivo, ventas actuales, meta
- Campañas, métricas, problemas, acciones, tareas y resultados

### Calendario general unificado de Jasmin

Incluye clientes Premium, alumnos en fase de ventas, bloqueos personales/operativos, futuros servicios, disponibilidad y conflictos de horario, con filtros por tipo de servicio.

---

## 20. Constancia digital y código QR

**Objetivo:** emitir la constancia digital cuando se cumplen las condiciones configuradas. **Por defecto:** 100% pagado + 15 módulos completados.

### Funcionalidades

- **Constancia** con: ECIM BUSINESS SOLUTIONS EIRL, nombre completo, DNI/CE, programa, fecha de emisión, código único (ej.: `ECIM-2026-000001`), firma autorizada y código QR.
- **Página de verificación** que muestra: **CONSTANCIA VÁLIDA**, nombre, programa, código, fecha y estado, sin mostrar datos personales innecesarios.

---

## 21. Notificaciones automáticas

**Objetivo:** enviar avisos automáticos a cada tipo de usuario según los eventos ocurridos.

| Destinatario | Notificaciones |
|---|---|
| **Alumno** | Registro; pago pendiente/aprobado/rechazado; contrato; módulo; recompensa; asesoría; recordatorio de clase con su tema; transferencia; constancia; vencimiento. |
| **Asesora educativa** | Nueva asignación; nueva sesión; cambio; reprogramación; cancelación; recordatorio; capacidad; cuota de una alumna aprobada y alumna habilitada para continuar; cuota vencida de una alumna asignada. |
| **Asesora comercial** | Alumno listo; cupos de asesoras; asesora llena; asignación confirmada. |
| **Dueña** | Nuevo alumno; pago; rechazo; inactividad; reserva; vencimientos; Premium; capacidad; horas y liquidaciones; alumnas atrasadas respecto del temario. |

---

## 22. Paneles por rol

**Objetivo:** reunir las vistas principales de cada tipo de usuario.

### Panel del alumno

- **Inicio:** resumen, progreso, próxima asesoría, estado de pago y membresía
- **Mi formación:** 15 módulos, clases, materiales y actividades
- **Mi progreso:** avance general, módulos y actividad
- **Mis beneficios:** recompensas desbloqueadas y pendientes
- **Mis asesorías:** próximas sesiones, historial, reprogramaciones y tema de cada clase
- **Mis pagos:** plan, cuotas, pagado, saldo, vencimientos y comprobantes
- **Mi constancia:** acceso cuando se cumplan los requisitos
- **Mi perfil**, notificaciones y cerrar sesión

### Panel de la asesora educativa

- **Inicio:** alumnas, sesiones del día, pendientes y capacidad
- **Mi calendario:** agenda, reservas y tema previsto de cada clase
- **Mis alumnas:** asignadas, progreso, próxima sesión y estado de cuota (solo lectura)
- **Temario de la alumna:** los 36 temas, trabajados, tema actual y temas con dificultad
- **Mis sesiones:** historial, asistencia y bitácora
- **Mi disponibilidad:** turno, slots, bloqueos y excepciones
- **Notificaciones:** nuevas asignaciones, cambios y alumnas habilitadas por pago aprobado
- **Mi perfil** y **Mis horas:** programadas, realizadas, reprogramadas, no realizadas y reconocidas
- **Indicadores:** alumnos nuevos de la cohorte X/10, cupos restantes, sesiones de hoy, sesiones realizadas, horas del periodo, horas pendientes y alumnas con cuota pendiente o vencida

### Panel de la asesora comercial

Disponibilidad y cupos de asesoras por cohorte y turno, asignación de alumnos, pagos aprobados, cuotas, vencimientos, cobranza y comisión.

### Panel de la Dueña / Superadmin

- **Indicadores principales:** total de alumnos, alumnos activos, cobrado, pendiente, vencido, comisiones generadas, clientes Premium, cupos Premium, sesiones del día, constancias emitidas y pagos pendientes de validación.
- **Actividad académica:** activos hoy; sin login de 3 a 7 días; sin progreso por más de 7 días; sin login por más de 30 días; distribución de avance en rangos 0–20%, 21–40%, 41–60%, 61–80% y 81–100%.
- **Operación de asesoras:** cohortes activas, alumnas por asesora (X/10), cupos restantes, horas (comprometidas, programadas, realizadas, reprogramadas, no realizadas y reconocidas), consolidado mensual listo para pago y liquidaciones pendientes/pagadas.
- **Avance académico por temario:** temas trabajados por alumna y tema actual, alumnas atrasadas respecto de la malla y temas con mayor dificultad reportada.

---

## 23. Reportes

**Objetivo:** reportes gerenciales con exportación a **CSV / XLSX / PDF** y permisos según rol.

| Reporte | Contenido |
|---|---|
| **Académica** | Progreso, módulos, clases, actividad, inactividad y alumnos por etapa |
| **Temario** | Avance por tema, tema actual por alumna, alumnas atrasadas, temas con mayor dificultad y temas más reprogramados |
| **Financiera** | Pagos, cuotas, saldos, vencidos, cobrado y contratado |
| **Comercial** | Cobranza, contactos, vencimientos, comisiones y alumnos |
| **Asesorías** | Sesiones, asistencia, reprogramaciones, inasistencias, etapas y utilización |
| **Capacidad** | Cohortes, alumnos por asesora, cupos, horas y turnos |
| **Liquidaciones** | Horas programadas, realizadas, reprogramadas, no realizadas y reconocidas, tarifa, monto y pagos |
| **Premium** | Clientes, capacidad, sesiones, vencimientos y lista de espera |

---

## 24. Configuración administrativa

**Objetivo:** modificar las reglas de negocio desde administración, sin reescribir el núcleo del software.

### Parámetros configurables

- Programas, planes, precios y reservas; número y montos de cuotas; vencimientos
- Reglas Pago → módulos y Pago → habilitación de asesorías
- Módulos y contenidos; recompensas y reglas
- Tipos de asesoría y etapas; malla de temas por etapa (temas, orden, objetivos, materiales y duración); cantidad de clases mensuales y duración de cada clase
- Política ante inasistencia y reprogramación; política de bloqueo por cuota vencida y periodo de gracia
- Asesoras, capacidad por cohorte, turnos, días, duración de slots y capacidad por slot
- Duración de cohortes, horas por alumno y cuotas de sesiones
- Tarifas por hora y comisiones
- Premium, constancias y notificaciones
- Umbral de inactividad, roles y permisos

### Fórmulas operativas parametrizadas

Se recalculan automáticamente cuando cambie la meta de alumnos, la capacidad, las horas semanales, la duración de la clase o la duración de la cohorte.

| Concepto | Fórmula | Ejemplo |
|---|---|---|
| Asesoras por cohorte | techo(alumnos nuevos / capacidad por asesora) | 30 / 10 → 3 |
| Horas mensuales por alumna | horas semanales × semanas de cálculo | 3 × 4 = 12 h |
| Clases mensuales por alumna | horas mensuales ÷ duración de clase | 12 ÷ 1 = 12 clases |
| Clases por semana | clases mensuales ÷ semanas de cálculo | 12 ÷ 4 = 3 |
| Temas de la etapa académica | clases mensuales × meses de acompañamiento | 12 × 3 = 36 |
| Horas comprometidas por asesora | alumnas asignadas × 12 h | 10 × 12 = 120 h |
| Monto a pagar a la asesora | horas reconocidas × tarifa vigente | — |
| Asesoras estables | asesoras por cohorte × cohortes simultáneas | 3 × 3 = 9 |

---

## 25. Seguridad, privacidad y auditoría

**Objetivo:** módulo transversal que protege la información y deja trazabilidad de las acciones críticas.

### Seguridad y privacidad

- HTTPS obligatorio, hash seguro de contraseñas y gestión segura de sesiones y tokens.
- RBAC y permisos finos; la asesora educativa accede al estado de cuota en solo lectura y **el permiso de aprobación no existe para ese rol**.
- Archivos privados con autorización/URLs temporales, validación de tipo y tamaño, y protección contra acceso o descarga no autorizada.
- Backups y recuperación.
- Protección contra doble booking y separación de datos por rol.
- Evaluación de autenticación de doble factor (2FA).
- Revisión de la normativa peruana de protección de datos personales y firma electrónica antes de producción.

### Registro de auditoría (datos mínimos por acción)

| Acción | Datos registrados |
|---|---|
| Pago aprobado/rechazado | Usuario, fecha/hora, pago, monto, estado y motivo (si es rechazo) |
| Pago modificado/revertido | Antes/después, usuario, fecha y motivo |
| Habilitación/inhabilitación de alumna | Motivo, usuario o proceso y fecha |
| Asignación | Alumno, asesora, cohorte, usuario y fecha |
| Override de capacidad | Asesora, cohorte, usuario, motivo y fecha |
| Cambio de horario | Valor anterior/nuevo, usuario y fecha |
| Reserva | Creación, reprogramación, cancelación y usuario |
| Cambio de orden del temario | Tema anterior/nuevo, justificación, usuario y fecha |
| Transferencia | Alumno, etapa anterior/nueva, usuario y fecha |
| Sesión | Estado, asistencia, duración, tema, cambios y usuario |
| Comisión | Generación, ajuste, liquidación y pago |
| Liquidación | Horas, tarifa, monto, usuario y fecha |
| Constancia | Emisión, código, usuario y fecha |
| Permisos | Cambio, responsable, fecha y valores relevantes |

---

## 26. Condiciones generales de desarrollo

Todos los módulos deben observar lo siguiente:

- **Una sola fuente de verdad** para alumnos, pagos, cohortes, asignaciones y reservas.
- **Transacciones atómicas y trazables** para las operaciones críticas.
- **Restricciones e índices** que impidan la doble reserva.
- **Históricos inmutables** para contratos, pagos y auditoría.
- Separación entre la **capacidad de nuevos alumnos** y la **disponibilidad de calendario**.
- Separación entre la **malla de temas (plantilla)** y el **avance de cada alumna (instancia)**.
- **No fijar en el código:** precios, cuotas, módulos, recompensas, capacidades, turnos, sesiones, temas, comisiones ni duración de cohortes.
- **No permitir asignaciones por encima de la capacidad** sin autorización.
- **Servicios desacoplados por dominio** y colas/eventos para notificaciones no críticas.
- Preparación para **integraciones futuras** sin acoplar el núcleo.
- **Diseño responsive** para móvil y PC, con interfaz visible en español.

---

## 27. Diagramas de funcionamiento

### 27.1 Visión general: del registro al certificado

Recorrido completo de un alumno dentro del sistema y quién interviene en cada paso.

```mermaid
flowchart TD
    A["1. Alumno se registra<br/>datos, plan, comprobante y DNI"] --> B["Estado: Pago pendiente de validación"]
    B --> C{"2. Dueña / Administración<br/>revisa el pago"}
    C -- Rechaza con motivo --> R["Pago rechazado<br/>no se habilita nada"]
    R --> A2["Alumno puede registrar un nuevo pago"]
    A2 --> B
    C -- Aprueba --> D["3. Alumna HABILITADA<br/>se desbloquean módulos, recompensas y membresía"]

    D --> E["4. Contrato generado<br/>alumno revisa, acepta y firma"]
    D --> F["5. Asesora comercial asigna<br/>una asesora educativa con cupo<br/>y horario compatible"]
    D --> G["Se calcula la comisión comercial"]

    F --> H["6. Asesora crea la pauta semanal<br/>3 clases por semana"]
    H --> I["Sistema genera reservas<br/>y asigna un tema a cada clase"]
    I --> J["7. Clase dictada<br/>asesora registra asistencia y bitácora"]

    J --> K{"Resultado de la clase"}
    K -- Realizada --> L["Tema trabajado<br/>avanza el temario<br/>suman horas reconocidas"]
    K -- Reprogramada o no asistió --> M["Tema NO se consume<br/>se re-secuencian las clases"]
    M --> I
    L --> N{"¿Faltan clases?"}
    N -- Sí --> J
    N -- No --> O["8. Fin de la etapa académica<br/>3 meses, 36 clases"]

    L --> P["9. Fin de mes:<br/>consolidado y liquidación<br/>de la asesora"]

    D --> Q["Alumno estudia los 15 módulos<br/>de formación"]
    Q --> S["Se mide actividad real<br/>videos, avance y login"]

    O --> T["Fase de ventas<br/>Camila y luego Jasmin"]
    Q --> U{"¿100% pagado y<br/>15 módulos completos?"}
    T --> U
    U -- Sí --> V["10. Constancia digital con QR<br/>verificable en línea"]
```

### 27.2 Qué pasa cuando se aprueba un pago

Es el evento más importante del sistema: una sola acción dispara toda esta cadena automática, **en este orden**.

```mermaid
flowchart LR
    A(["Pago aprobado<br/>por Dueña o Administración"]) --> B["Registrar pago"]
    B --> C["Actualizar total pagado y saldo"]
    C --> D["Actualizar cuota y vencimiento"]
    D --> E["Desbloquear módulos<br/>y recompensas"]
    E --> F["Actualizar membresía"]
    F --> G["Alumna HABILITADA<br/>y se libera la programación"]
    G --> H["Calcular comisión comercial"]
    H --> I["Actualizar dashboards"]
    I --> J["Notificar a asesora,<br/>alumno y comercial"]
    J --> K(["Registrar auditoría"])
```

### 27.3 Semáforo de cuota y bloqueo de reservas

```mermaid
flowchart TD
    A["Alumna intenta reservar<br/>una asesoría"] --> B{"Estado de la cuota"}
    B -- "🟢 Pagada y aprobada" --> C["Reserva permitida"]
    B -- "🟡 Pendiente de validación" --> D["Bloqueada<br/>aviso: falta aprobación"]
    B -- "🔴 Pendiente o vencida" --> E["Bloqueada<br/>queda registro del intento"]
    D --> F{"¿La Dueña autoriza<br/>de forma expresa?"}
    E --> F
    F -- Sí --> G["Reserva permitida<br/>y queda auditada"]
    F -- No --> H["No se programa"]
```

### 27.4 Cómo se reparten las asesoras por cohorte

Cada cohorte dura 3 meses y necesita 3 asesoras (10 alumnos cada una). Así se llega a 9 asesoras en régimen estable.

```mermaid
gantt
    title Rotación de asesoras (ejemplo)
    dateFormat  YYYY-MM-DD
    axisFormat  %b
    section Cohorte Octubre
    Asesoras A, B, C   :a1, 2026-10-01, 90d
    section Cohorte Noviembre
    Asesoras D, E, F   :a2, 2026-11-01, 90d
    section Cohorte Diciembre
    Asesoras G, H, I   :a3, 2026-12-01, 90d
    section Cohorte Enero
    Asesoras A, B, C otra vez   :a4, 2027-01-01, 90d
```

### 27.5 Quién puede hacer qué (resumen de roles)

```mermaid
flowchart LR
    DU["Dueña / Superadmin<br/>acceso total"] --> PAG["Aprobar o rechazar pagos"]
    AD["Administración"] --> PAG
    AD --> GES["Gestionar alumnos, contratos y reportes"]
    CO["Asesora comercial"] --> ASG["Asignar alumnos a asesoras"]
    CO --> COB["Cobranza y comisión"]
    ED["Asesora educativa"] --> SES["Clases, asistencia y bitácora"]
    ED --> CUO["Ver estado de cuota - solo lectura"]
    AL["Alumno"] --> FOR["Formación, pagos y asesorías propias"]
    PR["Cliente Premium"] --> PRE["Sesiones y seguimiento Premium"]

    CO -. "NO puede aprobar pagos" .-> PAG
    ED -. "NO puede aprobar pagos" .-> PAG
```