Appearance
Grupos Familiares
Esta sección documenta la gestión de grupos familiares en el sistema de membresías, permitiendo agrupar miembros relacionados para consolidar su facturación y gestionar beneficios compartidos.
Descripción General
El sistema de grupos familiares permite:
- Agrupación de miembros: Vincular miembros relacionados (titular, cónyuge, hijos, etc.)
- Consolidación de facturación: Generar una única factura por grupo familiar
- Gestión de titularidad: Designar y cambiar el miembro principal del grupo
- Resumen consolidado: Visualizar categoría, disciplinas y productos de todo el grupo
- Tipos de relación: Definir el tipo de relación de cada miembro (Principal, Cónyuge, Hijo, etc.)
Componentes Documentados
Gestión de Grupos Familiares
- Grupos Familiares: CRUD completo de grupos familiares
- Crear grupo designando miembro principal
- Ver listado de miembros del grupo con tipo de relación
- Ver resumen consolidado (categoría, disciplinas, productos)
- Obtener grupo por miembro
- Agregar miembro al grupo con tipo de relación
- Editar tipo de relación de miembro
- Eliminar miembro del grupo (con designación de nuevo titular si aplica)
Reglas de Negocio Principales
RN-001: Miembro Principal Único
Solo puede existir un miembro marcado como "Principal" (titular) por grupo familiar. Al intentar agregar un segundo miembro principal, el sistema lo rechaza.
RN-002: Grupo Sin Titular Inválido
Un grupo familiar siempre debe tener un miembro principal. Si se intenta eliminar al único titular sin designar reemplazo, la operación se rechaza.
RN-003: Designación de Nuevo Titular al Eliminar
Cuando se elimina el miembro principal del grupo:
- El sistema requiere designar un nuevo titular entre los miembros restantes
- El nuevo titular pasa a tener tipo de relación "Principal"
- La facturación futura se generará a nombre del nuevo titular
RN-004: Consolidación de Datos
El resumen del grupo familiar consolida:
- Categoría: La categoría del miembro principal determina la categoría del grupo
- Disciplinas: Unión de todas las disciplinas de todos los miembros
- Productos: Unión de todos los productos de todos los miembros
RN-005: Facturación al Titular
La facturación por lotes genera una única factura por grupo familiar, emitida a nombre del miembro principal. Los items incluyen:
- Producto de categoría del titular
- Productos y disciplinas de todos los miembros del grupo
RN-006: Consulta por Miembro
Cada miembro puede consultar su grupo familiar. Si no pertenece a ningún grupo, retorna null.
Flujos de Usuario Comunes
1. Crear Grupo Familiar
- Desde la vista de un miembro, seleccionar "Crear Grupo Familiar"
- El sistema designa automáticamente al miembro actual como Principal
- Opcionalmente agregar más miembros inmediatamente
2. Agregar Miembro a Grupo Existente
- Desde la vista del grupo, seleccionar "Agregar Miembro"
- Buscar y seleccionar el miembro a agregar
- Seleccionar tipo de relación (Cónyuge, Hijo, Padre, Hermano, Otro)
- Confirmar
- Validación: No puede haber dos miembros "Principal"
3. Cambiar Titular del Grupo
- Desde el listado de miembros del grupo, seleccionar "Editar" en el nuevo titular
- Cambiar tipo de relación a "Principal"
- Sistema valida que el principal anterior cambie a otro tipo de relación
- Confirmar cambio
4. Eliminar Miembro del Grupo
- Desde el listado de miembros del grupo, seleccionar "Eliminar"
- Si es miembro principal:
- Sistema solicita designar nuevo titular
- Seleccionar miembro del grupo que será el nuevo principal
- Si no es principal: Confirmar eliminación directamente
- Sistema elimina la relación del miembro con el grupo
5. Ver Resumen Consolidado
- Desde la vista del grupo, seleccionar "Ver Resumen"
- Sistema muestra:
- Categoría (del titular)
- Listado de disciplinas de todos los miembros
- Listado de productos de todos los miembros
- Información útil para entender qué se facturará al grupo
Vistas Frontend
No hay vistas dedicadas para grupos familiares. La gestión se realiza desde:
- Vista de detalle de miembro (
/bases/miembros/:id/editar) - Modales especializados
Modales
CreateGrupoFamiliarModal- Crear nuevo grupo familiarGrupoFamiliarListModal- Listar miembros del grupoGrupoFamiliarResumenModal- Ver resumen consolidadoAddMiembroGrupoModal- Agregar miembro al grupoEditMiembroGrupoModal- Editar tipo de relaciónConfirmDeleteMiembroGrupoModal- Eliminar miembro del grupo
Endpoints API
GET /mod-membresia/grupo-familiar/{id}- Ver grupoGET /mod-membresia/grupo-familiar/{id}/resumen- Ver resumen consolidadoGET /mod-membresia/grupo-familiar/by-miembro/{id}- Ver por miembroPOST /mod-membresia/grupo-familiar- Crear grupoPOST /mod-membresia/grupo-familiar/{id}- Agregar miembroPUT /mod-membresia/grupo-familiar/{id}/{socio}- Actualizar tipo de relaciónDELETE /mod-membresia/grupo-familiar/{id}/{socio}- Eliminar miembro
Tipos de Relación Disponibles
Los tipos de relación se gestionan como catálogo base independiente:
- Principal - Titular del grupo (único)
- Cónyuge - Pareja del titular
- Hijo - Hijo del titular
- Padre - Padre del titular
- Hermano - Hermano del titular
- Otro - Otra relación
Ver documentación de Tipos de Relación para más detalles.
Integración con Facturación
Agrupación Automática
El proceso de facturación por lotes agrupa automáticamente a los miembros por grupo familiar:
- RealGroupProvider: Agrupa miembros que pertenecen al mismo grupo familiar
- SymbolicGroupProvider: Trata como grupo individual a miembros sin grupo familiar
Cálculo de Deuda Consolidada
El DeudaMembresiaCalculator (Domain Layer) calcula la deuda total del grupo:
- Producto de categoría del titular
- Productos individuales de cada miembro con sus ajustes de precio
- Disciplinas de cada miembro
Factura Única
Se genera una única factura por grupo familiar:
- Cliente: Miembro principal (titular)
- Items: Consolidación de todos los productos y disciplinas del grupo
- Condición de venta: Cuenta Corriente a 30 días
Ver documentación de Facturación por Lotes para más detalles.
Eventos de Dominio Relacionados
MiembroBajaEvent
Cuando un miembro se da de baja:
- Listener:
RemoveMiembroFromGrupoListener - Acción: Elimina automáticamente al miembro del grupo familiar
- Validación: Si es el titular, requiere designar nuevo titular primero
Dependencias
Funcionalidades Relacionadas
- Gestión de Miembros: Los miembros del grupo provienen del ABM de miembros
- Tipos de Relación: Los tipos de relación se gestionan como catálogo base
- Facturación por Lotes: Utiliza grupos familiares para consolidar facturación
- Categorías de Membresía: La categoría del titular determina la categoría del grupo
Módulos Externos
- Ventas: Los productos asignados a cada miembro del grupo
Consideraciones Multi-Tenant
- Los grupos familiares están aislados por schema/tenant
- Un miembro solo puede pertenecer a un grupo familiar dentro de su tenant
- La facturación consolidada respeta el aislamiento del schema
Validaciones Importantes
Al Crear Grupo
- El miembro principal no puede pertenecer a otro grupo familiar
- El grupo debe tener al menos un miembro (el principal)
Al Agregar Miembro
- El miembro a agregar no puede pertenecer a otro grupo familiar
- No puede haber dos miembros principales en el mismo grupo
- El tipo de relación debe ser válido
Al Eliminar Miembro
- Si es el único miembro, se elimina todo el grupo familiar
- Si es el titular y hay más miembros, requiere designar nuevo titular
- Si no es el titular, se elimina directamente
Al Cambiar Titular
- El nuevo titular debe ser miembro del grupo
- Solo puede haber un miembro principal
- El cambio actualiza automáticamente el tipo de relación del principal anterior
Estadísticas
- 1 documento de requisitos de negocio
- 16 criterios de aceptación (todos implementados)
- 6 reglas de negocio
- 3 casos de uso detallados
- 7 endpoints API
- 6 modales de interfaz
Estado
✅ Implementado - Todas las funcionalidades están en producción
Última actualización: 2026-01-27