Diccionario de Datos

Documentación completa de las 25 entidades JPA del sistema ClouHR, organizadas por categorías funcionales

25
Entidades
6
Categorías
150+
Campos
📊

Estudios y Proyectos

4 entidades

6

Estudios

Estudios y Proyectos

Propósito

Entidad central que representa un 'Estudio'. Contiene metadatos clave sobre el estudio, como su nombre, tipo, descripción, estado y fechas de creación/finalización.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
estudiesName String Nombre del estudio Required
tipeStudies String Tipo de estudio Required
status String Estado actual (ej. activo, cerrado) Required
create Timestamp Fecha de creación Required
end Timestamp Fecha de finalización Nullable

Relaciones JPA

1:N @OneToMany
surveysSurvey
N:1 @ManyToOne
userUserent
N:M @ManyToMany
empresasEmpresa
7

EstudioGrupoAplicabilidad

Estudios y Proyectos

Propósito

Tabla de unión con atributo extra para definir si un Grupo de Beneficios se aplica a un Estudio específico.

Atributos Principales

Campo Tipo Descripción Estado
aplica Integer Indicador booleano (1=sí, 0=no) Required

Relaciones JPA

N:1 @ManyToOne
estudioEstudios
N:1 @ManyToOne
grupoGroup Beneficios
8

EstudioGrupoAplicabilidadId

Estudios y Proyectos

Propósito

Clase @IdClass que define la clave primaria compuesta para EstudioGrupoAplicabilidad.

Atributos Principales

Campo Tipo Descripción Estado
estudio Long ID de la entidad Estudios PK
grupo Long ID de la entidad GroupBeneficios PK
11

FilesEstudies

Estudios y Proyectos

Propósito

Representa un archivo específico asociado a un estudio. Almacena metadatos como nombre, URL, tipo y tamaño.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
name String Nombre del archivo Required
url String URL de acceso al archivo Required
type String Tipo de archivo Required
estudies Long ID del estudio al que pertenece Required
base Integer Indicador de archivo principal Required

Encuestas y Preguntas

6 entidades

18

Preguntas

Encuestas y Preguntas

Propósito

Define una pregunta que puede ser utilizada en encuestas o estudios.

Atributos Principales

Campo Tipo Descripción Estado
pregunta_id2 Long Identificador único PK
name String Texto de la pregunta Required
type String Tipo de pregunta Required
tipoDato String Tipo de dato esperado Required
opcion String JSON con opciones de respuesta Nullable
seleccionMultiple Boolean Permite múltiples respuestas Required

Relaciones JPA

N:1 @ManyToOne
groupBeneficiosGroup Beneficios

Campos JSON Estructurados

opcion TEXT (JSON)

Almacena las opciones disponibles para preguntas de selección múltiple o simple

Ejemplo:

["Opción 1", "Opción 2", "Opción 3"]
21

SubPreguntas

Encuestas y Preguntas

Propósito

Define sub-preguntas anidadas o dependientes de otras preguntas.

Atributos Principales

Campo Tipo Descripción Estado
subpregunta_id Long Identificador único PK
subname String Nombre de la sub-pregunta Required
subtype String Tipo de sub-pregunta Required
opcion String JSON con opciones Nullable
22

Survey

Encuestas y Preguntas

Propósito

Representa una encuesta o cuestionario dentro de un estudio. Puede ser una plantilla reutilizable.

Atributos Principales

Campo Tipo Descripción Estado
survey_id Long Identificador único PK
name String Nombre de la encuesta Required
type String Tipo de encuesta Required
group String Grupo de clasificación Nullable
template Boolean Indica si es plantilla Required

Relaciones JPA

N:1 @ManyToOne
estudiesEstudios
1:N @OneToMany
preguntasPreguntas
1:N @OneToMany
respuetasRespuetas
19

Respuetas

Encuestas y Preguntas

Propósito

Almacena la respuesta de un usuario a una pregunta específica dentro de una encuesta.

Atributos Principales

Campo Tipo Descripción Estado
respuetaId Long Identificador único PK
respuestaText String Contenido de la respuesta Required
create Timestamp Fecha de creación Required
user_id Long ID del usuario que respondió Required

Relaciones JPA

N:1 @ManyToOne
preguntasPreguntas
N:1 @ManyToOne
surveySurvey
N:1 @ManyToOne
empresaEmpresa
13

GroupBeneficios

Encuestas y Preguntas

Propósito

Agrupa un conjunto de beneficios o preguntas relacionadas bajo una categoría común.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
name String Nombre del grupo Required
description String Descripción del grupo Nullable

Relaciones JPA

N:1 @ManyToOne
typeBeneficioType Beneficio
1:N @OneToMany
preguntasPreguntas
23

TypeBeneficio

Encuestas y Preguntas

Propósito

Define categoría de alto nivel para beneficios. Clasificador para GroupBeneficios.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
name String Nombre del tipo Required
description String Descripción Nullable

Relaciones JPA

1:N @OneToMany
groupBeneficiosGroup Beneficios
📁

Gestión de Archivos

5 entidades

9

FileData

Gestión de Archivos

Propósito

Almacena una fila de datos individual de un archivo subido. El contenido se guarda en formato JSON.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
data String Datos de la fila en JSON Required
estudiesid Long ID del estudio Required
userid Long ID del usuario Required
empresaid Long ID de la empresa Required

Relaciones JPA

N:1 @ManyToOne
fileMetaDataFile Metadata

Campos JSON Estructurados

data TEXT (JSON)

Contiene los valores de cada columna para esta fila del archivo

Ejemplo:

{"columna1": "valor1", "columna2": 123, "columna3": true}
10

FileMetaData

Gestión de Archivos

Propósito

Guarda metadatos sobre archivos cargados en el sistema.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
name String Nombre del archivo original Required
columns String JSON con descripción de columnas Required
estudiesid Long ID del estudio Required

Relaciones JPA

1:N @OneToMany
fileDataFile Data

Campos JSON Estructurados

columns TEXT (JSON)

Define el esquema del archivo: nombres, tipos y propiedades de cada columna

Ejemplo:

[{"name": "col1", "type": "string"}, {"name": "col2", "type": "number"}]
24

UploadFiles

Gestión de Archivos

Propósito

Registra archivos subidos por usuarios para empresas y estudios específicos.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
fileName String Nombre del archivo Required
url String URL del archivo Required
file_size Long Tamaño en bytes Required
emrpesa Long ID de la empresa Required
per Long ID de la persona Required
study Long ID del estudio Required
valid Boolean Indica si es válido Required
status String Estado del archivo Required

Relaciones JPA

1:N @OneToMany
obsObs Study
15

ObsStudy

Gestión de Archivos

Propósito

Representa observaciones o notas adjuntas a archivos cargados.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
obs String Texto de la observación Required
date_create Timestamp Fecha de creación Required

Relaciones JPA

N:1 @ManyToOne
uploadFilesUpload Files
12

FilterData

Gestión de Archivos

Propósito

Almacena configuraciones de filtros guardadas por usuarios. La estructura se persiste en JSON.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
filterName String Nombre del filtro Required
filterValuesJson String JSON con criterios del filtro Required

Campos JSON Estructurados

filterValuesJson TEXT (JSON)

Contiene todos los criterios y valores de filtrado aplicados

Ejemplo:

{"campo": "valor", "operador": "igual", "criterios": [...]}
👤

Usuarios y Seguridad

4 entidades

25

UserEnt

Usuarios y Seguridad

Propósito

Entidad principal de seguridad que representa usuarios del sistema.

Atributos Principales

Campo Tipo Descripción Estado
userId Long Identificador único PK
username String Nombre de usuario Required
password String Contraseña Required
locked Boolean Estado de bloqueo Required
disabled Boolean Estado de habilitación Required
firstTime Boolean Primer inicio de sesión Required

Relaciones JPA

N:M @ManyToMany
rolesRole
N:M @ManyToMany
atributosAtributo
1:1 @OneToOne
personalPersonal
1:N @OneToMany
estudiesEstudios
20

Role

Usuarios y Seguridad

Propósito

Define roles de seguridad para controlar permisos en el sistema.

Atributos Principales

Campo Tipo Descripción Estado
roleId Long Identificador único PK
roleName String Nombre único del rol Required
description String Descripción del propósito Nullable

Relaciones JPA

N:M @ManyToMany
usersUserent
1

Atributo

Usuarios y Seguridad

Propósito

Representa atributos o características asignables a usuarios.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
nombre String Nombre del atributo Required
valor Double Valor numérico Nullable

Relaciones JPA

N:M @ManyToMany
usersUserent
16

Passwordreset

Usuarios y Seguridad

Propósito

Almacena tokens de un solo uso para restablecimiento de contraseñas.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
token String Código alfanumérico único Required
email String Email del usuario Required
expirationTime Timestamp Fecha de expiración Required
🏢

Empresas y Compensación

3 entidades

5

Empresa

Empresas y Compensación

Propósito

Representa empresas clientes o participantes en los estudios.

Atributos Principales

Campo Tipo Descripción Estado
empresaId Long Identificador único PK
empresaName String Nombre de la empresa Required
web String Sitio web Nullable
email String Email de contacto Required
phone String Teléfono Nullable
direccion String Dirección Nullable
valid Boolean Indicador de validez Required
empresaSuscribe String Estado de suscripción Nullable

Relaciones JPA

N:M @ManyToMany
estudiesEstudios
1:N @OneToMany
personalPersonal
1:N @OneToMany
respuetasRespuetas
17

Personal

Empresas y Compensación

Propósito

Representa personas (empleados o contactos) que pertenecen a una empresa.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
nombre String Nombre de la persona Required
email String Email Required
imagen String URL imagen de perfil Nullable
cargo String Puesto o cargo Nullable

Relaciones JPA

N:1 @ManyToOne
empresaEmpresa
N:M @ManyToMany
estudiesEstudios
2

BasePlainCom

Empresas y Compensación

Propósito

Almacena datos de compensación completos con métricas salariales calculadas en diferentes percentiles.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
areaFuncional String Área funcional Required
cargo String Cargo Required
zonaGeografica String Zona geográfica Required
rentaFija10 Double Renta fija percentil 10 Nullable
rentaFija25 Double Renta fija percentil 25 Nullable
rentaFijaProm Double Renta fija promedio Nullable
rentaFijaMediana Double Renta fija mediana Nullable
rentaFija75 Double Renta fija percentil 75 Nullable
rentaFija90 Double Renta fija percentil 90 Nullable
observaciones Integer Número de observaciones Nullable
empresas Integer Número de empresas Nullable
edadPromedio Double Edad promedio Nullable

Relaciones JPA

N:1 @ManyToOne
estudiesEstudios
⚙️

Utilidades y Configuración

3 entidades

3

CatgCargos

Utilidades y Configuración

Propósito

Define categorías o clasificaciones para cargos (puestos de trabajo) dentro de un estudio.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
AreaFuncional String Área funcional Required
subAreaFuncional String Sub-área funcional Nullable
nivel String Nivel del cargo Nullable
name String Nombre del cargo Required
description String Descripción detallada Nullable
idstudio Long ID del estudio Required
4

EmailSchedules

Utilidades y Configuración

Propósito

Modela correos electrónicos programados para envío futuro.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
email String Dirección del destinatario Required
subject String Asunto del correo Required
content String Contenido del correo Required
scheduledTime Timestamp Fecha programada de envío Required
sent Boolean Indicador de envío Required
14

HistorialNotificaciones

Utilidades y Configuración

Propósito

Registra eventos de notificaciones enviadas a personas en el contexto de estudios.

Atributos Principales

Campo Tipo Descripción Estado
id Long Identificador único PK
estadoNotificado String Estado (ej. enviado, fallido) Required
fechaEnvio Timestamp Fecha de envío Required

Relaciones JPA

N:1 @ManyToOne
estudiesEstudios
N:1 @ManyToOne
personalPersonal