DEFAULT_MIN_LENGTH = 1 DEFAULT_MAX_LENGTH = 999 ENCUESTA_MAX_NOMBRE = 50 ENCUESTA_MIN_NOMBRE = 1 PREGUNTA_MAX_NOMBRE = 500 PREGUNTA_MIN_NOMBRE = 1 // ENUMS enum EstadoUsuario { ACTIVE, SUSPENDED } enum PreguntaCerradaTipo { SINGLE, MULTIPLE } enum EstadoEncuesta { DRAFT, ACTIVE, FINISHED, DELETED } enum EstadoPlantilla { DRAFT, ACTIVE, DELETED, DISABLED } enum RolColaborador { READ, WRITE } enum EstadoColaborador { PENDING, ACTIVE } enum EstadoCategoria { ACTIVE, INACTIVE } enum AccesoEncuesta { PUBLIC, PRIVATE } // ENTITIES entity ParametroAplicacion { maxDiasEncuesta Integer required, minDiasEncuesta Integer required, maxCantidadPreguntas Integer required, minCantidadPreguntas Integer required } entity UsuarioExtra { nombre String required, iconoPerfil String, fechaNacimiento ZonedDateTime, estado EstadoUsuario required, // JHI_USER } // ENCUESTA entity Encuesta { nombre String required maxlength(ENCUESTA_MAX_NOMBRE) minlength(ENCUESTA_MIN_NOMBRE), descripcion String, fechaCreacion ZonedDateTime required, fechaPublicacion ZonedDateTime, fechaFinalizar ZonedDateTime, fechaFinalizada ZonedDateTime, calificacion Double required, acceso AccesoEncuesta required, contrasenna String, estado EstadoEncuesta required // ID_CATEGORIA } entity EPreguntaAbierta { nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE), opcional Boolean required, orden Integer required // ID_ENCUESTA } entity EPreguntaAbiertaRespuesta { respuesta String required // ID_ENCUESTA_PREGUNTA_ABIERTA } entity EPreguntaCerrada { nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE), tipo PreguntaCerradaTipo required opcional Boolean required, orden Integer required // ID_ENCUESTA } entity EPreguntaCerradaOpcion { nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE), orden Integer required, cantidad Integer required // ID_ENCUESTA_PREGUNTA_CERRADA } entity UsuarioEncuesta { rol RolColaborador required, estado EstadoColaborador required, fechaAgregado ZonedDateTime required } // ----------------------------------------- entity Categoria { nombre String required estado EstadoCategoria required } entity Factura { nombreUsuario String required, nombrePlantilla String required, costo Double required, fecha ZonedDateTime required, // ID_USUARIO_EXTRA } // PLANTILLAS entity Plantilla { nombre String maxlength(ENCUESTA_MAX_NOMBRE) minlength(ENCUESTA_MIN_NOMBRE), descripcion String, fechaCreacion ZonedDateTime required, fechaPublicacionTienda ZonedDateTime, estado EstadoPlantilla required, precio Double required // ID_CATEGORIA } entity PPreguntaAbierta { nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE), opcional Boolean required, orden Integer required // ID_PLANTILLA } entity PPreguntaCerrada { nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE), tipo PreguntaCerradaTipo required, opcional Boolean required, orden Integer required // ID_PLANTILLA } entity PPreguntaCerradaOpcion { nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE), orden Integer required // ID_PLANTILLA_PREGUNTA_CERRADA } // ----------------------------------------- // Filters filter ParametroAplicacion, UsuarioExtra, Encuesta, EPreguntaAbierta, EPreguntaAbiertaRespuesta filter EPreguntaCerrada, EPreguntaCerradaOpcion, UsuarioEncuesta, Categoria, Factura filter Plantilla, PPreguntaAbierta, PPreguntaCerrada, PPreguntaCerradaOpcion // Relationship between UsuarioExtra and default User table to extend fields relationship OneToOne { UsuarioExtra to User } // UsuarioExtra relationship OneToMany { Categoria to Encuesta{categoria(nombre)} Categoria to Plantilla{categoria(nombre)} // Encuesta UsuarioExtra to Encuesta UsuarioExtra to UsuarioEncuesta Encuesta to UsuarioEncuesta Encuesta to EPreguntaAbierta Encuesta to EPreguntaCerrada EPreguntaAbierta to EPreguntaAbiertaRespuesta EPreguntaCerrada to EPreguntaCerradaOpcion // Plantilla Plantilla to PPreguntaCerrada Plantilla to PPreguntaAbierta PPreguntaCerrada to PPreguntaCerradaOpcion } relationship ManyToMany { UsuarioExtra to Plantilla } // -----------------------------------------