Modelo Técnico: MenuItemPortion
Ubicación SSoT:
com.neosystima.app.modules.tenant.data.model.MenuItemPortion
Campo API: description
String?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Descripción |
| Descripción | Aclaración adicional sobre qué incluye esta presentación. |
| Dominio | Libre |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: EstándarRegla UI: Campo de texto multilínea. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Ninguna adicional. - Longitud Max:
200
Ejemplo de Integración:
{
"description": "Incluye guarnición de papas fritas."
}
Campo API: isDefault
Boolean
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Porción Predeterminada |
| Descripción | Indica si es la porción que debe mostrarse preseleccionada en el front. |
| 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:
false - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Solo una porción por ítem puede ser predeterminada (Regla de negocio). - Longitud Max:
255
Ejemplo de Integración:
{
"isDefault": "true / false"
}
Campo API: menuItem
MenuItem?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Ítem Relacionado |
| Descripción | Referencia al Ítem de Menú (Nivel 4) al que pertenece esta porción. |
| Dominio | Tabla menu_items |
| 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 porción. |
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/ Sistema - Validaciones Raw:
El registro foráneo debe existir. - Longitud Max:
255
Ejemplo de Integración:
{
"menuItem": "101, 205"
}
Campo API: name
String?
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Nombre de Porción |
| Descripción | Nombre de la variante o tamaño (ej: Pinta, 1/2 Litro, Familiar). |
| Dominio | Alfanumérico |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: EstándarRegla UI: Texto de una sola línea. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🟢 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Único por Ítem de Menú. - Longitud Max:
50
Ejemplo de Integración:
{
"name": "Individual, Para compartir, 1Kg"
}
Campo API: people
Int?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Comensales |
| Descripción | Cantidad estimada de comensales que pueden consumir esta porción. |
| Dominio | [1-99] |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: EnteroRegla UI: Input numérico de enteros. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Ninguna adicional. - Longitud Max:
255
Ejemplo de Integración:
{
"people": "2"
}
Campo API: price
BigDecimal
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Precio Estándar |
| Descripción | Precio base de venta al público para esta porción. |
| Dominio | Económico |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: Decimal (10,2)Regla UI: Input numérico con máscara de moneda. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
0.00 - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Mayor o igual a cero. - Longitud Max:
255
Ejemplo de Integración:
{
"price": "1500.00"
}
Campo API: promotionPrice
BigDecimal?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Precio Promocional |
| Descripción | Precio especial de oferta. Si tiene valor, el sistema lo prioriza. |
| Dominio | Económico |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: Decimal (10,2)Regla UI: Input numérico con máscara de moneda. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Debe ser menor al precio estándar (Validación a nivel de servicio/DTO). - Longitud Max:
255
Ejemplo de Integración:
{
"promotionPrice": "1200.00"
}
Campo API: quantity
BigDecimal
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Cantidad |
| Descripción | Cantidad física según la unidad definida. |
| Dominio | Magnitud |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: DecimalRegla UI: Input numérico decimal. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
0.00 - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Obligatorio. Mayor a cero. - Longitud Max:
255
Ejemplo de Integración:
{
"quantity": "500.00"
}
Campo API: sortOrder
Int
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Prioridad |
| Descripción | Orden de aparición en la lista de opciones de porción del ítem. |
| Dominio | [0-99] |
| 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:
Manual/ Sistema - 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 de Porción |
| Descripción | Estado específico de la porción (ej: Desactivar solo el tamaño 'Grande'). |
| Dominio | Tabla Status |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: ID ForáneoRegla UI: Selector de estados filtrado. |
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/ Sistema - Validaciones Raw:
Limitado al dominio de estados. - Longitud Max:
255
Ejemplo de Integración:
{
"status": "1 (Activo), 2 (Inactivo)"
}
Campo API: unit
String?
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Unidad |
| Descripción | Unidad de medida de la porción (ej: Gr, Ml, Un). |
| Dominio | Unidades |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: Texto cortoRegla UI: Selector de unidades predefinidas. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
N/A - Fuente / Dueño:
Manual/ Sistema - Validaciones Raw:
Debe corresponder al sistema de unidades configurado. - Longitud Max:
20
Ejemplo de Integración:
{
"unit": "Grs, Lt, Porción"
}
Campo API: code
String?
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Código de Referencia |
| Descripción | Identificador único de negocio para el registro.A diferencia del ID numérico interno, este código está pensado para ser expuesto y facilitar búsquedas o referencias. |
| Dominio | Secuencia controlada o formato prefijado |
| Público | 🟢 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🟢 Forms: 🟢 | Formato: AlfanuméricoRegla UI: Se muestra como referencia (usualmente entre paréntesis) junto al título del formulario. No es un campo editable en el flujo estándar. |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🟢 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
Generado por secuencia - Fuente / Dueño:
Generado automáticamente por el motor de secuencias del sistema/ Sistema - Validaciones Raw:
Debe ser estrictamente único en toda la tabla. - Longitud Max:
20
Ejemplo de Integración:
{
"code": "000001, CLI-005, STY-20"
}
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: isSystem
Boolean
REQUIRED
1. Definición de Negocio
| Atributo | Detalle |
|---|---|
| Etiqueta | Registro de Sistema |
| Descripción | Marca técnica que indica si el registro fue creado por el sistema y posee restricciones (ej: no se puede borrar o editar su código). |
| Dominio | {true, false} |
| Público | 🔴 |
2. Capa de Interfaz (Frontend)
| Requerimiento | Reglas Visuales |
|---|---|
| Grilla: 🔴 Forms: 🟢 | Formato: BooleanoRegla UI: Casilla de verificación (Checkbox) o Interruptor (Toggle). En formularios se muestra deshabilitado (solo lectura). |
3. Seguridad y Auditoría
| Parámetro | Valor |
|---|---|
| Sensibilidad | LOW |
| Encriptado | 🔴 |
| Indexado | 🔴 |
| Auditado | 🟢 |
4. Especificaciones Técnicas
- Valor Default:
false - Fuente / Dueño:
Generado por el sistema/ Sistema - Validaciones Raw:
No modificable por el usuario final (bloqueado a nivel de servicio). - Longitud Max:
255
Ejemplo de Integración:
{
"isSystem": "true, false"
}
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"
}