From 3960067337bc4d000c4ca9c3ddb438e5f49479da Mon Sep 17 00:00:00 2001 From: ARCHITECT Date: Tue, 30 Dec 2025 23:40:36 +0000 Subject: [PATCH] Add user units and sync tables (10_user_units.sql, 11_sync.sql) --- 03_MODELO_DATOS/schemas/10_user_units.sql | 70 +++++++++++++++++++++++ 03_MODELO_DATOS/schemas/11_sync.sql | 40 +++++++++++++ 03_MODELO_DATOS/schemas/README.md | 4 ++ 3 files changed, 114 insertions(+) create mode 100644 03_MODELO_DATOS/schemas/10_user_units.sql create mode 100644 03_MODELO_DATOS/schemas/11_sync.sql diff --git a/03_MODELO_DATOS/schemas/10_user_units.sql b/03_MODELO_DATOS/schemas/10_user_units.sql new file mode 100644 index 0000000..470f2a3 --- /dev/null +++ b/03_MODELO_DATOS/schemas/10_user_units.sql @@ -0,0 +1,70 @@ +-- 10_user_units.sql +-- Tablas de unidades de usuario por tipo +-- Version: 1.0 +-- Fecha: 2025-12-30 + +-- HSU: Host Service Unit (usuarios de servicio host) +CREATE TABLE IF NOT EXISTS hsu ( + id SERIAL PRIMARY KEY, + ref VARCHAR(10) NOT NULL UNIQUE, + h_usuario VARCHAR(64) NOT NULL UNIQUE, + nombre VARCHAR(255), + user_id INTEGER NOT NULL, + activo BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT NOW() +); + +-- PJU: Project Unit (usuarios de proyecto) +CREATE TABLE IF NOT EXISTS pju ( + id SERIAL PRIMARY KEY, + ref VARCHAR(10) NOT NULL UNIQUE, + h_usuario VARCHAR(64) NOT NULL UNIQUE, + nombre VARCHAR(255), + user_id INTEGER NOT NULL, + activo BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT NOW() +); + +-- SPU: Service Process Unit (usuarios de proceso de servicio) +CREATE TABLE IF NOT EXISTS spu ( + id SERIAL PRIMARY KEY, + ref VARCHAR(10) NOT NULL UNIQUE, + h_usuario VARCHAR(64) NOT NULL UNIQUE, + nombre VARCHAR(255), + user_id INTEGER NOT NULL, + activo BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT NOW() +); + +-- VSU: Version Service Unit (usuarios de servicio de version) +CREATE TABLE IF NOT EXISTS vsu ( + id SERIAL PRIMARY KEY, + ref VARCHAR(10) NOT NULL UNIQUE, + h_usuario VARCHAR(64) NOT NULL UNIQUE, + nombre VARCHAR(255), + user_id INTEGER NOT NULL, + activo BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT NOW() +); + +-- VUU: Version Update Unit (usuarios de actualizacion de version) +CREATE TABLE IF NOT EXISTS vuu ( + id SERIAL PRIMARY KEY, + ref VARCHAR(10) NOT NULL UNIQUE, + h_usuario VARCHAR(64) NOT NULL UNIQUE, + nombre VARCHAR(255), + user_id INTEGER NOT NULL, + activo BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT NOW() +); + +-- FLU: Flow Unit (usuarios de flujo) +CREATE TABLE IF NOT EXISTS flu ( + id SERIAL PRIMARY KEY, + ref VARCHAR(10) NOT NULL UNIQUE, + h_usuario VARCHAR(64) NOT NULL UNIQUE, + nombre VARCHAR(255), + user_id INTEGER NOT NULL, + activo BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT NOW() +); diff --git a/03_MODELO_DATOS/schemas/11_sync.sql b/03_MODELO_DATOS/schemas/11_sync.sql new file mode 100644 index 0000000..a417280 --- /dev/null +++ b/03_MODELO_DATOS/schemas/11_sync.sql @@ -0,0 +1,40 @@ +-- 11_sync.sql +-- Tablas de sincronizacion y notificaciones +-- Version: 1.0 +-- Fecha: 2025-12-30 + +-- HST_MIRROR: Espejo de entidades HST para sincronizacion local +CREATE TABLE IF NOT EXISTS hst_mirror ( + id SERIAL PRIMARY KEY, + ref VARCHAR(100) NOT NULL UNIQUE, + h_maestro VARCHAR(64) NOT NULL UNIQUE, + nombre_es VARCHAR(255), + nombre_en VARCHAR(255), + grupo VARCHAR(50), + hst_subdominio VARCHAR(255), + hst_ruta VARCHAR(255), + local_subdominio VARCHAR(255) DEFAULT NULL, + local_ruta VARCHAR(255) DEFAULT NULL, + activo BOOLEAN DEFAULT TRUE, + hst_activo BOOLEAN DEFAULT TRUE, + sincronizado_at TIMESTAMP, + created_at TIMESTAMP DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_hst_mirror_h_maestro ON hst_mirror(h_maestro); +CREATE INDEX IF NOT EXISTS idx_hst_mirror_ref ON hst_mirror(ref); + +-- NOTIFICATION: Sistema de notificaciones +CREATE TABLE IF NOT EXISTS notification ( + id VARCHAR(20) PRIMARY KEY, + type VARCHAR(40), + body TEXT, + is_read BOOLEAN DEFAULT FALSE, + is_deleted BOOLEAN DEFAULT FALSE, + fk_user_id VARCHAR(20), + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE INDEX IF NOT EXISTS notification_created_at_index ON notification(created_at); +CREATE INDEX IF NOT EXISTS notification_fk_user_id_index ON notification(fk_user_id); diff --git a/03_MODELO_DATOS/schemas/README.md b/03_MODELO_DATOS/schemas/README.md index 90ae737..eeec1bc 100644 --- a/03_MODELO_DATOS/schemas/README.md +++ b/03_MODELO_DATOS/schemas/README.md @@ -18,6 +18,8 @@ | 06_clara.sql | Clara (secretaría) | clara_log, clara_summary (vista) | | 07_feldman.sql | Feldman (contable) | milestones, bloques, feldman_cola, feldman_validaciones | | 08_alfred.sql | Alfred (producción) | flujos_predefinidos, flujo_ejecuciones | +| 10_user_units.sql | Unidades de usuario | hsu, pju, spu, vsu, vuu, flu | +| 11_sync.sql | Sincronización | hst_mirror, notification | --- @@ -34,6 +36,8 @@ psql -U tzzr -d tzzr -f 05_ai_requests.sql psql -U tzzr -d tzzr -f 06_clara.sql psql -U tzzr -d tzzr -f 07_feldman.sql psql -U tzzr -d tzzr -f 08_alfred.sql +psql -U tzzr -d tzzr -f 10_user_units.sql +psql -U tzzr -d tzzr -f 11_sync.sql ``` ---