Modelo de Datos: Plantillas de Documentos y Expedientes¶
Este documento detalla la estructura de las tablas utilizadas para definir y gestionar las plantillas de documentos y expedientes en GDI.
Tabla: global_document_types¶
Proposito: Funciona como un catalogo maestro de tipos de documentos estandar que pueden ser adoptados y utilizados por cualquier municipio en la plataforma. Vive en el schema public. Actualmente contiene 61 tipos globales (basados en el estandar GDE).
| Columna | Tipo de Dato | Descripcion |
|---|---|---|
id |
integer |
PK - Identificador unico de la plantilla global. |
name |
varchar |
Nombre estandar del tipo de documento (ej. "Informe"). |
acronym |
varchar |
Sigla estandar y unica (ej. "IF"). |
description |
text |
Descripcion de la finalidad del tipo de documento. |
signature_type |
varchar |
Tipo de firma requerida (required, optional). |
is_visible |
boolean |
true si el tipo es visible para los usuarios. |
is_active |
boolean |
true si la plantilla esta disponible para ser usada. |
type |
document_type_source |
Tipo de fuente: HTML, Importado o NOTA. |
audit_data |
jsonb |
Metadatos de auditoria. |
CREATE TABLE public.global_document_types (
id INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
acronym VARCHAR(20) NOT NULL,
description TEXT,
signature_type VARCHAR(20),
is_visible BOOLEAN DEFAULT true,
is_active BOOLEAN DEFAULT true,
type document_type_source NOT NULL DEFAULT 'HTML',
audit_data JSONB,
CONSTRAINT global_document_types_pkey PRIMARY KEY (id)
);
Tabla: document_types¶
Proposito: Representa la implementacion local o especifica de un tipo de documento para un municipio. Hereda de una plantilla global y se configura localmente.
| Columna | Tipo de Dato | Descripcion |
|---|---|---|
id |
integer |
PK - Identificador unico del tipo de documento local. |
global_document_type_id |
integer |
FK - Referencia a una plantilla de global_document_types. |
name |
varchar |
Nombre descriptivo que veran los usuarios en el municipio. |
acronym |
varchar |
Sigla que se usara en la numeracion de documentos en el municipio. |
description |
text |
Descripcion y uso especifico dentro del municipio. |
required_signature |
required_signature_enum |
Define el nivel de firma requerido (electronica, digital). |
is_active |
boolean |
true si el tipo esta activo y disponible para creacion. |
audit_data |
jsonb |
Metadatos de auditoria. |
CREATE TABLE document_types (
id INTEGER NOT NULL,
global_document_type_id INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
acronym VARCHAR(20) NOT NULL,
description TEXT,
required_signature required_signature_enum,
is_active BOOLEAN DEFAULT true,
audit_data JSONB,
CONSTRAINT document_types_pkey PRIMARY KEY (id),
CONSTRAINT document_types_global_fkey FOREIGN KEY (global_document_type_id)
REFERENCES public.global_document_types (id)
);
Tabla: global_case_templates¶
Proposito: Catalogo maestro de tipos de expedientes estandar. Vive en el schema public. Actualmente contiene 30 tipos globales.
| Columna | Tipo de Dato | Descripcion |
|---|---|---|
id |
uuid |
PK - Identificador unico de la plantilla global. |
type_name |
varchar |
Nombre del tipo de expediente (ej. "Habilitacion Comercial"). |
acronym |
varchar(6) |
Sigla estandar y unica (ej. "HABI"). |
description |
varchar(150) |
Descripcion del proposito del expediente. |
is_active |
boolean |
true si la plantilla esta disponible. |
created_at |
timestamptz |
Fecha de creacion. |
audit_data |
jsonb |
Metadatos de auditoria. |
CREATE TABLE public.global_case_templates (
id UUID DEFAULT gen_random_uuid() NOT NULL,
type_name VARCHAR(100) NOT NULL,
description VARCHAR(150),
acronym VARCHAR(6) UNIQUE NOT NULL,
is_active BOOLEAN DEFAULT true,
created_at TIMESTAMPTZ DEFAULT NOW(),
audit_data JSONB DEFAULT '{}'::jsonb,
CONSTRAINT global_case_templates_pkey PRIMARY KEY (id)
);
Tabla: case_templates¶
Proposito: Implementacion local de plantillas de expedientes para un municipio. Define que tipos de expedientes se pueden crear, a traves de que canales, y que reparticion los administra.
| Columna | Tipo de Dato | Descripcion |
|---|---|---|
id |
uuid |
PK - Identificador unico de la plantilla local. |
global_case_template_id |
uuid |
FK - Referencia a global_case_templates. |
type_name |
varchar |
Nombre del tipo de expediente en el municipio. |
acronym |
varchar(6) |
Sigla unica para numeracion. |
description |
text |
Descripcion local del tipo de expediente. |
creation_channel |
case_creation_channel |
Canal de creacion permitido: web, api o both. |
filing_department_id |
uuid |
FK - Reparticion cuya sigla aparece en la numeracion del expediente. |
is_active |
boolean |
true si el tipo de expediente puede ser creado. |
created_at |
timestamptz |
Fecha de creacion. |
CREATE TABLE case_templates (
id UUID DEFAULT gen_random_uuid() NOT NULL,
global_case_template_id UUID NOT NULL,
type_name VARCHAR(100) NOT NULL,
acronym VARCHAR(6) NOT NULL,
description TEXT,
creation_channel case_creation_channel NOT NULL DEFAULT 'web',
filing_department_id UUID NOT NULL,
is_active BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT case_templates_pkey PRIMARY KEY (id),
CONSTRAINT case_templates_acronym_unique UNIQUE (acronym),
CONSTRAINT case_templates_global_fkey FOREIGN KEY (global_case_template_id)
REFERENCES public.global_case_templates (id)
);
Tabla: case_template_allowed_departments¶
Proposito: Define que reparticiones estan habilitadas para crear expedientes de un tipo determinado.
| Columna | Tipo de Dato | Descripcion |
|---|---|---|
case_template_id |
uuid |
PK, FK - Referencia a la plantilla de expediente (case_templates). |
department_id |
uuid |
PK, FK - Referencia a la reparticion habilitada (departments). |
CREATE TABLE case_template_allowed_departments (
case_template_id UUID NOT NULL,
department_id UUID NOT NULL,
CONSTRAINT ctad_pkey PRIMARY KEY (case_template_id, department_id),
CONSTRAINT ctad_case_template_fkey FOREIGN KEY (case_template_id)
REFERENCES case_templates (id),
CONSTRAINT ctad_department_fkey FOREIGN KEY (department_id)
REFERENCES departments (id)
);