Modelo Técnico: PlanFeature
Ubicación SSoT:
com.neosystima.app.modules.main.data.model.PlanFeature
Campo API: featureCode
String
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Código de Característica |
| Descripción | Identificador técnico de la funcionalidad o límite (ej: MAX_USERS, CUSTOM_DOMAIN). Usado por el backend para aplicar restricciones lógicas. |
| Dominio | Catálogo de Límites Técnicos |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: UPPERCASERegla UI: Texto sin espacios en mayúsculas. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🟢 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Producto / Ingeniería/ Plataforma - Validaciones Raw:
Único por Plan. - Longitud Max:
50
Ejemplo de Integración:
{
"featureCode": "MAX_ITEMS, SUPPORT_24_7"
}
Campo API: featureValue
String
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Valor de Configuración |
| Descripción | Valor límite o configuración asociada al código (ej: '50' para límite de usuarios, 'true' para acceso a API). |
| Dominio | Libre / Depende de valueType |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: String (Dinámico)Regla UI: Input de texto. Su validación dinámica en el frontend depende del valueType. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Producto/ Plataforma - Validaciones Raw:
Debe ser convertible lógicamente al tipo definido en valueType. - Longitud Max:
100
Ejemplo de Integración:
{
"featureValue": "10, UNLIMITED, true"
}
Campo API: isIncluded
Boolean
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Está Incluido |
| Descripción | Define si la característica se muestra como incluida (tilde verde) o no incluida/bloqueada (cruz roja) en la tabla de precios. |
| Dominio | {true, false} |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: BooleanoRegla UI: Interruptor (Switch) o Checkbox. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
true - Fuente / Dueño:
Marketing / Producto/ Plataforma - Validaciones Raw:
Solo admite true o false. - Longitud Max:
255
Ejemplo de Integración:
{
"isIncluded": "true / false"
}
Campo API: plan
Plan?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Plan Asociado |
| Descripción | Plan comercial al que pertenece esta característica o límite. |
| Dominio | Tabla Plan |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: ID ForáneoRegla UI: Campo de solo lectura en edición de característica. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🟢 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Sistema/ Plataforma - Validaciones Raw:
El registro foráneo debe existir. - Longitud Max:
255
Ejemplo de Integración:
{
"plan": "1, 2"
}
Campo API: sortOrder
Int
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Orden de Visualización |
| Descripción | Define la posición de esta característica al listar los beneficios del plan (ej: los límites arriba, el soporte abajo). |
| Dominio | [0-999] |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: EnteroRegla UI: Spinner numérico. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
0 - Fuente / Dueño:
Producto/ Plataforma - Validaciones Raw:
Número entero positivo. - Longitud Max:
255
Ejemplo de Integración:
{
"sortOrder": "1, 2, 3"
}
Campo API: status
Status?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Estado |
| Descripción | Determina si esta característica está activa en el plan o si ha sido deshabilitada temporalmente. |
| Dominio | Tabla Status |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: ID ForáneoRegla UI: Selector de estados del sistema. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🟢 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Sistema/ Plataforma - Validaciones Raw:
Obligatorio. - Longitud Max:
255
Ejemplo de Integración:
{
"status": "1 (Activo), 2 (Inactivo)"
}
Campo API: translationKey
String
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Clave de Traducción (i18n) |
| Descripción | Referencia al diccionario de traducciones del Frontend para renderizar el nombre o explicación de la característica al usuario comercial. |
| Dominio | Claves i18n |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: Texto (Notación por puntos)Regla UI: Texto estándar. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Desarrollo/ Plataforma - Validaciones Raw:
Debe existir en el archivo de internacionalización del frontend. - Longitud Max:
100
Ejemplo de Integración:
{
"translationKey": "plan.feature.max_users, plan.feature.premium_support"
}
Campo API: valueType
PlanFeatureValueType
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Tipo de Valor |
| Descripción | Determina el tipo de dato subyacente del featureValue para parseos y validaciones lógicas en backend y frontend. |
| Dominio | Enum PlanFeatureValueType |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: EnumRegla UI: Selector de tipos de datos predefinidos. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
STRING - Fuente / Dueño:
Ingeniería/ Plataforma - Validaciones Raw:
Solo valores del enumerador PlanFeatureValueType. - Longitud Max:
20
Ejemplo de Integración:
{
"valueType": "INTEGER, BOOLEAN, STRING"
}
Campo API: createdAt
Instant?
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Fecha de Creación |
| Descripción | Fecha y hora exacta en la que se insertó el registro por primera vez. |
| Dominio | Fechas válidas pasadas o presentes |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: Timestamp (ISO 8601)Regla UI: Selector de fecha/hora. En creación está oculto, en edición se muestra como solo lectura. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🔴 |
4. Especificaciones Técnicas
- Valor Default:
CURRENT_TIMESTAMP - Fuente / Dueño:
Generado automáticamente por el framework de auditoría/ Sistema - Validaciones Raw:
No modificable tras su creación (updatable = false). - Longitud Max:
255
Ejemplo de Integración:
{
"createdAt": "2025-10-15T14:30:00Z"
}
Campo API: createdBy
String?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Creado Por |
| Descripción | Identificador principal del usuario que creó originalmente el registro. |
| Dominio | Usuarios válidos en el contexto de seguridad |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: AlfanuméricoRegla UI: Campo de texto estándar. En creación está oculto, en edición se muestra como solo lectura. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | MEDIUM |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🔴 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Extraído del contexto de seguridad (SecurityContext)/ Sistema - Validaciones Raw:
No modificable tras la creación. - Longitud Max:
50
Ejemplo de Integración:
{
"createdBy": "admin, guest, USR-001"
}
Campo API: id
Long?
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Identificador del Sistema |
| Descripción | Identificador numérico interno y clave primaria (Primary Key) del registro en la base de datos. |
| Dominio | Números enteros positivos mayores a 0 |
| Público | 🔴 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🔴 | Formato: Numérico (BigInt)Regla UI: Campo oculto o deshabilitado. No se expone directamente al usuario final para edición. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🟢 |
| Auditado | 🔴 |
4. Especificaciones Técnicas
- Valor Default:
Asignación automática - Fuente / Dueño:
Autoincrementable y asignado por el motor de BD al insertar (INSERT)./ Sistema - Validaciones Raw:
Único e irrepetible. De solo lectura tras su creación. - Longitud Max:
255
Ejemplo de Integración:
{
"id": "1, 2, 1054"
}
Campo API: lastModifiedBy
String?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Modificado Por |
| Descripción | Identificador principal del usuario que realizó la última modificación al registro. |
| Dominio | Usuarios válidos en el contexto de seguridad |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: AlfanuméricoRegla UI: Campo de texto estándar. En creación está oculto, en edición se muestra como solo lectura. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🔴 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Extraído del contexto de seguridad (SecurityContext)/ Sistema - Validaciones Raw:
Ninguna adicional. - Longitud Max:
50
Ejemplo de Integración:
{
"lastModifiedBy": "admin, manager"
}
Campo API: updatedAt
Instant?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Última Actualización |
| Descripción | Fecha y hora de la última modificación del registro. |
| Dominio | Fechas válidas pasadas o presentes |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: Timestamp (ISO 8601)Regla UI: Selector de fecha/hora. En creación está oculto, en edición se muestra como solo lectura. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🔴 |
4. Especificaciones Técnicas
- Valor Default:
CURRENT_TIMESTAMP - Fuente / Dueño:
Generado automáticamente por el framework de auditoría/ Sistema - Validaciones Raw:
Se actualiza automáticamente en cada operación de modificación (UPDATE). - Longitud Max:
255
Ejemplo de Integración:
{
"updatedAt": "2025-10-16T09:15:00Z"
}