Descripción tablas para generador de reportes

Documentación de Base de Datos - Sistema de Tasaciones

Ver también:

report_types - Tipos de Reportes

Define los diferentes tipos de reportes de tasación que pueden ser generados. Cada tipo puede tener una estructura diferente de secciones y campos.

CampoDescripciónTipoNullable
idIdentificador único del tipo de reporteINTEGER (PK)
nameNombre del tipo de reporte (ej: “Comercial”, “Residencial”, “Industrial”)VARCHAR(255)

method_type - Métodos de Avalúo

Cataloga los diferentes métodos de avalúo que se pueden utilizar en las tasaciones según estándares profesionales.

CampoDescripciónTipoNullable
idIdentificador único del métodoINTEGER (PK)
nameNombre del método de avalúo (ej: “Comparativo”, “Costo”, “Ingresos”)VARCHAR(255)

reports - Reportes Generados

Representa cada reporte individual generado. Es la entidad central que relaciona cliente, tipo de reporte, método y todos los datos capturados.

CampoDescripciónTipoNullable
idIdentificador único del reporteINTEGER (PK)
service_numberNúmero de servicio/folio del reporteVARCHAR(50)
client_idReferencia al cliente que solicita el reporteINTEGER (FK)

clients - Clientes

Almacena la información básica de los clientes que solicitan tasaciones.

CampoDescripciónTipoNullable
idIdentificador único del clienteINTEGER (PK)
nameNombre completo del clienteVARCHAR(255)

identification_document - Tipos de Documento de Identidad

Catálogo de tipos de documentos de identidad aceptados.

CampoDescripciónTipoNullable
idIdentificador únicoINTEGER (PK)
nameNombre del tipo de documento (ej: “Cédula”, “Pasaporte”, “RUT”)VARCHAR(100)
last_nameApellido asociado al documentoVARCHAR(255)
expeditionLugar o fecha de expediciónVARCHAR(255)

property_document - Documentos de Propiedad

Almacena información sobre documentos legales de las propiedades tasadas (escrituras, folios de matrícula, etc.).

Nota: Esta tabla aparece en el diagrama pero no veo sus campos definidos. ¿Podrías confirmar qué campos debe tener?

information - Información Adicional

Tabla para almacenar información suplementaria relacionada con reportes.

Nota: Similar a property_document, no veo campos definidos. ¿Es una tabla de lookup o tiene estructura específica?

report_types_sections - Relación Tipos de Reporte y Secciones

Define qué secciones conforman cada tipo de reporte y en qué orden aparecen. Permite que diferentes tipos de reportes tengan estructuras diferentes.

CampoDescripciónTipoNullable
idIdentificador único de la relaciónINTEGER (PK)
report_type_idReferencia al tipo de reporteINTEGER (FK)
section_idReferencia a la secciónINTEGER (FK)
orderOrden de aparición de la sección en el reporteINTEGER

sections - Secciones del Reporte

Define las secciones reutilizables que pueden formar parte de diferentes tipos de reportes. Soporta jerarquías mediante parent_id.

CampoDescripciónTipoNullable
idIdentificador único de la secciónINTEGER (PK)
nameNombre de la sección (ej: “Datos del Inmueble”, “Análisis de Mercado”)VARCHAR(255)
show_numberIndica si debe mostrarse numeración en el reporteBOOLEAN
parent_idReferencia a sección padre (para subsecciones)INTEGER (FK)
deleted_atFecha de eliminación lógica (soft delete)TIMESTAMP

fields - Campos de las Secciones

Define los campos individuales que componen cada sección. Permite parametrizar completamente la estructura de los reportes.

CampoDescripciónTipoNullable
idIdentificador único del campoINTEGER (PK)
nameNombre/etiqueta del campoVARCHAR(255)
field_type_idTipo de dato del campo (texto, número, fecha, etc.)INTEGER (FK)
section_idSección a la que pertenece el campoINTEGER (FK)
deleted_atFecha de eliminación lógicaTIMESTAMP
group_idAgrupación del campo (para campos relacionados)INTEGER (FK)
row_numberNúmero de fila para ordenamiento visualINTEGER

field_types - Tipos de Campos

Catálogo de tipos de datos que pueden tener los campos, determinando cómo se capturan y validan.

CampoDescripciónTipoNullable
idIdentificador único del tipo de campoINTEGER (PK)
nameNombre del tipo (ej: “text”, “number”, “date”, “select”, “textarea”)VARCHAR(100)

field_validations - Validaciones de Campos

Define las reglas de validación para cada campo, asegurando la integridad de los datos capturados.

CampoDescripciónTipoNullable
idIdentificador único de la validaciónINTEGER (PK)
field_idCampo al que se aplica la validaciónINTEGER (FK)
validation_ruleRegla de validación (ej: “required”, “min:0”, “max:100”)VARCHAR(255)
error_messageMensaje de error personalizadoTEXT

information_type - Tipos de Información

Clasifica diferentes categorías de información adicional que pueden adjuntarse a los reportes.

CampoDescripciónTipoNullable
idIdentificador único del tipo de informaciónINTEGER (PK)
nameNombre del tipo de informaciónVARCHAR(255)

group - Agrupación de Campos

Agrupa campos relacionados para presentación visual, permitiendo layouts de múltiples columnas o formato de tabla.

CampoDescripciónTipoNullable
idIdentificador único del grupoINTEGER (PK)
cols_qttCantidad de columnas para layout del grupoINTEGER
is_tableIndica si el grupo se renderiza como tablaBOOLEAN

catched_fields - Valores Capturados

Almacena los valores reales capturados para cada campo en cada reporte. La relación polimórfica permite asociar valores tanto a reports como a custom_section.

CampoDescripciónTipoNullable
idIdentificador único del valor capturadoINTEGER (PK)
fieldable_idID de la entidad relacionada (polimórfica)INTEGER (FK)
fieldable_typeTipo de entidad relacionada (polimórfica)VARCHAR(255)
value_textValor capturado como texto (para compatibilidad histórica)TEXT
value_typedValor capturado con tipo específico (JSON)JSONB
field_snapshotSnapshot de la definición del campo al momento de capturaJSONB
deleted_atFecha de eliminación lógicaTIMESTAMP

custom_section - Secciones Personalizadas por Reporte

Permite crear secciones específicas para un reporte individual que no existen en el template base. Soporta personalización completa por reporte.

CampoDescripciónTipoNullable
idIdentificador único de la sección personalizadaINTEGER (PK)
nameNombre de la sección personalizadaVARCHAR(255)
typeTipo de sección customVARCHAR(100)
parent_idReferencia a sección padre (para jerarquía)INTEGER (FK)
report_idReporte al que pertenece esta secciónINTEGER (FK)

section_order_overrides - Sobreescritura de Orden

Permite modificar el orden y presentación de secciones en reportes específicos sin alterar la plantilla base. Critical para flexibilidad del sistema.

CampoDescripciónTipoNullable
idIdentificador único del overrideINTEGER (PK)
section_idSección cuyo orden se modificaINTEGER (FK)
custom_section_idSección personalizada cuyo orden se modificaINTEGER (FK)
numberNúmero de orden personalizadoINTEGER
show_numberIndica si mostrar numeraciónBOOLEAN
report_idReporte al que aplica el overrideINTEGER (FK)
is_customIndica si es sección custom o estándarBOOLEAN
number_typedTipo de numeración (numérica, alfabética, romana)VARCHAR(50)
nameNombre alternativo para la sección en este reporteVARCHAR(255)

custom_fields - Campos Personalizados

Campos específicos que se agregan a secciones personalizadas de reportes individuales.

CampoDescripciónTipoNullable
idIdentificador único del campo personalizadoINTEGER (PK)
nameNombre del campo personalizadoVARCHAR(255)
custom_section_idSección personalizada a la que perteneceINTEGER (FK)
field_type_idTipo de dato del campoINTEGER (FK)
deleted_atFecha de eliminación lógicaTIMESTAMP

absolute_text - Textos Absolutos/Fijos

Almacena bloques de texto fijo/estático que se incluyen en los reportes (párrafos introductorios, disclaimer legal, etc.). Usa Markdown para formato rico.

CampoDescripciónTipoNullable
idIdentificador único del textoINTEGER (PK)
markdown_textContenido del texto en formato MarkdownTEXT