From 19170541703dcccb443e7500829a8be84844c134 Mon Sep 17 00:00:00 2001 From: ARCHITECT Date: Tue, 6 Jan 2026 04:15:04 +0000 Subject: [PATCH] Add Oracle component and DATABASE_SPEC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add oracle.md: Complete specification for Oracle (prospectiva) - Puerto 5055, Capa 2 análisis prospectivo - 7 secciones del análisis, 10 reglas O-* - Integración con Grace, métricas calibración - Add DATABASE_SPEC.md: Schema v2.1 with Oracle tables - oracle_analisis, oracle_escenario - Total: 28 tables Synced from R2 skynet v10.1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- 02_COMPONENTES/internos/oracle.md | 253 +++++++++++++++++ 03_MODELO_DATOS/DATABASE_SPEC.md | 450 ++++++++++++++++++++++++++++++ 2 files changed, 703 insertions(+) create mode 100644 02_COMPONENTES/internos/oracle.md create mode 100644 03_MODELO_DATOS/DATABASE_SPEC.md diff --git a/02_COMPONENTES/internos/oracle.md b/02_COMPONENTES/internos/oracle.md new file mode 100644 index 0000000..6e3d4bf --- /dev/null +++ b/02_COMPONENTES/internos/oracle.md @@ -0,0 +1,253 @@ +# Oracle (Prospectiva) + +**Estado:** Especificación completa - Implementación pendiente +**Puerto propuesto:** 5055 + +## Descripción + +Módulo de análisis prospectivo del Sistema de Registro Inmutable. Permite explorar escenarios futuros mediante la manipulación de supuestos inciertos, manteniendo inmutables los datos históricos y el modelo de cálculo. + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ PRINCIPIO ORACLE │ +│ │ +│ "No predecimos el futuro. Documentamos qué pasaría │ +│ SI ciertos supuestos se cumplen. │ +│ La honestidad está en los supuestos, no en el resultado." │ +│ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +## Ficha Técnica + +| Atributo | Valor | +|----------|-------| +| Nombre | Oracle | +| Descriptor | prospectiva | +| Versión personal | Oracle (DECK) | +| Versión corporativa | Oracle (CORP) | +| Puerto | 5055 | +| Mutabilidad | Inmutable post-emisión | +| Persistencia | Permanente | +| Eliminación | Prohibida | + +## Posición en el Sistema + +Oracle implementa la **Capa 2: Análisis Prospectivo** del marco de Contabilidad Bifurcada: + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ CAPA 1: REGISTRO HISTÓRICO (implementada) │ +│ Clara/Margaret → Mason → Feldman → [NOTARIO] │ +│ Hechos consumados, inmutables, verificables │ +└─────────────────────────────────────────────────────────────────┘ + │ + │ alimenta (solo lectura) + ▼ +┌─────────────────────────────────────────────────────────────────┐ +│ CAPA 2: ANÁLISIS PROSPECTIVO (Oracle) │ +│ Supuestos explícitos + Escenarios + Sensibilidad │ +│ Proyecciones documentadas, auditables, no vinculantes │ +└─────────────────────────────────────────────────────────────────┘ +``` + +## Flujo de Datos + +``` +Feldman (libros contables) + │ + │ consulta (solo lectura) + ▼ +Oracle (prospectiva) + │ + ├── Genera análisis con hash (mrf) + ├── Usuario explora escenarios + ├── Guarda escenarios (inmutables) + │ + ▼ +[Almacenamiento propio de Oracle] + │ + │ [cuando el horizonte temporal se cumple] + ▼ +Contraste con realidad (datos nuevos de Feldman) + │ + └── Métricas de calibración +``` + +## Relación con Componentes + +| Componente | Relación | Descripción | +|------------|----------|-------------| +| **Feldman** | Entrada (solo lectura) | Única fuente de datos. Oracle nunca escribe en Feldman | +| **Grace** | Colaboración | Ejecuta modelos vía S-CONTRACT, sugiere supuestos | +| **Sentinel** | Verificación | Valida integridad de análisis y escenarios | +| **ITM** | Informativo | Oracle puede evaluar viabilidad de items/objetivos | +| **MST** | Informativo | Oracle puede evaluar probabilidad de cumplimiento | +| **BCK** | Calibración | Bloques consolidados permiten contrastar predicción vs realidad | + +## Arquitectura del Análisis + +Cada análisis Oracle es una unidad atómica con 7 secciones: + +### 1. Datos Base + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| h_bloques_feldman | Array[mrf] | Referencias a bloques de Feldman | +| periodo_inicio | Date | Inicio del período histórico | +| periodo_fin | Date | Fin del período histórico | +| h_dataset | mrf | Hash de integridad del conjunto | + +### 2. Supuestos + +Lista exhaustiva de afirmaciones no verificables: + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| id | String | Identificador (ej: SUP_001) | +| name_es | String | Nombre en español | +| txt | Text | Descripción | +| tipo | Enum | porcentaje, moneda, cantidad, booleano | +| valor_defecto | Numeric | Valor por defecto | +| rango_min | Numeric | Mínimo plausible | +| rango_max | Numeric | Máximo plausible | +| fuente_tipo | Enum | histórico, estimación_externa, juicio_experto | +| confianza | Enum | alta, media, baja | + +### 3. Modelo + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| name_es | String | Nombre del modelo | +| version | String | Versión del modelo | +| metodologia | Text | Descripción de la metodología | +| formulas | JSONB | Fórmulas de cálculo | +| limitaciones | Text | Condiciones de no aplicabilidad | + +### 4. Escenarios (Obligatorios) + +| Escenario | Descripción | +|-----------|-------------| +| **Base** | Supuestos en valores por defecto | +| **Optimista** | Supuestos ajustados favorablemente | +| **Pesimista** | Supuestos ajustados desfavorablemente | +| **Estrés** | Límites del modelo - qué tendría que pasar para resultado inaceptable | + +### 5. Sensibilidad + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| contribucion | JSONB | % de cada supuesto en varianza total | +| supuestos_criticos | Array | Top 3 supuestos más influyentes | + +### 6. Resultado + +Nunca cifra única: + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| rango_min | Numeric | Límite inferior | +| rango_max | Numeric | Límite superior | +| punto_medio | Numeric | Valor central | +| horizonte | String | Período de proyección | +| unidad | String | Unidad de medida | + +### 7. Metadata + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| mrf | VARCHAR(64) | Hash público del análisis | +| private_mrf | VARCHAR(64) | Hash privado (prueba de propiedad) | +| date | Date | Fecha de emisión | +| fecha_caducidad | Date | Cuándo expira el análisis | +| condiciones_invalidacion | Text | Qué haría el análisis inaplicable | + +## Interfaz de Escenarios + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ PRINCIPIO DE SEPARACIÓN │ +│ │ +│ INMUTABLE (no se toca) VARIABLE (el usuario mueve) │ +│ ---------------------- -------------------------- │ +│ - Datos históricos - Supuestos macro │ +│ - Fórmulas del modelo - Tasas estimadas │ +│ - Reglas de cálculo - Probabilidades asignadas │ +│ - Metodología aplicada - Horizontes temporales │ +│ │ +│ "Cambias lo incierto, no lo calculado" │ +│ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +Cada supuesto se presenta como slider con: +- Nombre descriptivo +- Valor actual (posición del slider) +- Rango Min-Max +- Fuente del valor por defecto +- Indicador de confianza (alta/media/baja) + +Cada movimiento dispara recálculo en tiempo real. + +## Reglas de Validación (O-*) + +| Código | Nombre | Descripción | Severidad | +|--------|--------|-------------|-----------| +| O-001 | Trazabilidad total | Todo dato debe tener mrf de Feldman | CRITICAL | +| O-002 | Supuesto explícito | Ningún supuesto implícito permitido | CRITICAL | +| O-003 | Sin cifra única | Resultados siempre como rango | HIGH | +| O-004 | Modelo nombrado | No metodologías ad-hoc | HIGH | +| O-005 | Caducidad obligatoria | fecha_caducidad requerido | HIGH | +| O-006 | Condición invalidación | condiciones_invalidacion requerido | HIGH | +| O-007 | Conservación permanente | Eliminación prohibida | CRITICAL | +| O-008 | Escenarios obligatorios | Los 4 escenarios requeridos | HIGH | +| O-009 | Sensibilidad visible | Campo sensibilidad requerido | MEDIUM | +| O-010 | Inmutabilidad post-emisión | Solo INSERT, nunca UPDATE | CRITICAL | + +## Integración con Grace (S-CONTRACT) + +| Módulo Grace | Uso en Oracle | +|--------------|---------------| +| PREDICTOR | Generar pronósticos base | +| CLUSTERER | Agrupar escenarios similares | +| SCORER | Evaluar calidad de supuestos | +| NARRATOR | Generar informe en lenguaje natural | +| AUDITOR | Detectar anomalías en proyecciones | + +## Ciclo de Retroalimentación + +Cuando el horizonte temporal se cumple: + +1. Oracle recupera datos reales de Feldman +2. Compara supuestos usados vs valores reales +3. Compara resultado proyectado vs resultado observado +4. Calcula % error por supuesto incorrecto vs limitación modelo + +## Métricas de Calibración + +| Métrica | Descripción | +|---------|-------------| +| Sesgo de supuestos | "Tus estimaciones de crecimiento son 15% optimistas" | +| Precisión de rangos | "90% de veces el resultado cayó en tu rango" | +| Sensibilidad real vs estimada | "Dijiste inflación, pero fue tipo de cambio" | + +## Lo que Oracle NO es + +- No es sistema de alertas +- No toma decisiones +- No modifica datos de Feldman +- No genera "la respuesta correcta" +- No sustituye juicio humano + +## Limitaciones Conocidas + +| Limitación | Descripción | +|------------|-------------| +| No captura cisnes negros | Eventos radicalmente improbables no aparecen | +| Depende de calidad Feldman | Datos incorrectos = análisis heredan problemas | +| Modelos son simplificaciones | No capturan toda la realidad | +| Pasado no garantiza futuro | Cambios de régimen difíciles de anticipar | + +--- + +*SKYNET v10.1 - Oracle - 6 Enero 2026* diff --git a/03_MODELO_DATOS/DATABASE_SPEC.md b/03_MODELO_DATOS/DATABASE_SPEC.md new file mode 100644 index 0000000..a786b12 --- /dev/null +++ b/03_MODELO_DATOS/DATABASE_SPEC.md @@ -0,0 +1,450 @@ +# TZZR - Especificación de Base de Datos + +**Versión:** 2.1 +**Fecha:** 6 Enero 2026 +**Estado:** Actualizado + +--- + +## 1. Estructura de Tablas Principales + +### 1.1 Esquema Completo + +| hst | flg | ply | itm | loc | mst | bck | mth | +|-----|-----|-----|-----|-----|-----|-----|-----| +| num | num | num | num | num | num | num | num | +| alias | alias | alias | alias | alias | alias | alias | alias | +| ref | ref | ref | ref | ref | ref | ref | ref | +| mrf | mrf | mrf | mrf | mrf | mrf | mrf | mrf | +| private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | +| name_es | name_es | name_es | name_es | name_es | name_es | name_es | name_es | +| name_en | name_en | name_en | name_en | name_en | name_en | name_en | name_en | +| name_ch | name_ch | name_ch | name_ch | name_ch | name_ch | name_ch | name_ch | +| group | group | group | - | - | - | - | - | +| - | - | - | set_hst | set_hst | set_hst | set_hst | set_hst | +| - | - | - | - | - | link_mst | link_mst | - | +| - | - | - | - | - | link_bck | link_bck | - | +| txt | txt | txt | txt | txt | txt | txt | txt | +| - | - | hashtags | hashtags | hashtags | hashtags | hashtags | hashtags | +| standard_md | standard_md | - | - | - | - | - | - | +| - | - | standard_data | standard_data | standard_data | standard_data | standard_data | standard_data | +| jsonb_standard | jsonb_standard | - | - | - | - | - | - | +| - | - | jsonb_data | jsonb_data | jsonb_data | jsonb_data | jsonb_data | jsonb_data | +| version | version | version | version | version | version | version | version | +| rootref | rootref | rootref | rootref | rootref | rootref | rootref | rootref | +| roothash | roothash | roothash | roothash | roothash | roothash | roothash | roothash | +| img_url | img_url | img_url | img_url | img_url | img_url | img_url | img_url | +| img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | +| owner | owner | owner | owner | owner | owner | owner | owner | +| - | - | set_flg | set_flg | set_flg | set_flg | set_flg | set_flg | +| url | url | url | url | url | - | - | - | +| - | - | - | url_atc | - | url_atc | url_atc | url_atc | +| url_json | url_json | url_json | url_json | url_json | url_json | url_json | url_json | +| date | date | date | date | date | date | date | date | +| created_at | created_at | created_at | created_at | created_at | created_at | created_at | created_at | +| - | - | - | - | - | mth_mrf | mth_mrf | - | + +--- + +## 2. Clasificación de Tablas + +| Tipo | Tablas | Descripción | +|------|--------|-------------| +| Etiquetado semántico | hst, flg | Vocabulario controlado, trazabilidad | +| Entidades de negocio | ply, itm, loc | Actores, productos, ubicaciones | +| Gestión de procesos | mst, bck, mth | Burocracia, evidencia real, métodos | + +### 2.1 Detalle MST/BCK/MTH + +| Tabla | Nombre | Descripción | +|-------|--------|-------------| +| mst | Master | Burocracia, documentos formales, registros administrativos | +| bck | Back | Evidencia del mundo real, trabajo efectivo, hechos | +| mth | Method | Métodos, procesos productivos predefinidos | + +--- + +## 3. Descripción de Campos + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| num | INTEGER | Identificador numérico autoincremental | +| alias | VARCHAR | Nombre corto del registro | +| ref | VARCHAR | Código único (típicamente 3 letras) | +| mrf | VARCHAR(64) | Hash público SHA-256 (identidad del registro) | +| private_mrf | VARCHAR(64) | Hash original SHA-256 (prueba de propiedad) | +| name_es | VARCHAR | Nombre en español | +| name_en | VARCHAR | Nombre en inglés | +| name_ch | VARCHAR | Nombre en chino | +| group | VARCHAR | Subgrupo dentro de hst/flg/ply (enum cerrado) | +| set_hst | VARCHAR(64) | mrf del hashtag que define el tipo (abierto) | +| link_mst | VARCHAR/JSONB | Enlace a un mst (único o múltiple según tabla) | +| link_bck | JSONB/VARCHAR | Enlace a bck (único o múltiple según tabla) | +| txt | TEXT | Texto libre / descripción | +| hashtags | JSONB | Array de mrfs de hst | +| standard_md | TEXT | Descripción técnica en Markdown (define formato) | +| standard_data | TEXT | Formato heredado del group | +| jsonb_standard | JSONB | Schema JSON con versiones (define estructura) | +| jsonb_data | JSONB | Datos reales según schema | +| version | VARCHAR | Versión del formato usado | +| rootref | VARCHAR | Concatenación de refs (jerarquía) | +| roothash | JSONB | Array de mrfs (jerarquía) | +| img_url | VARCHAR | URL de imagen original | +| img_thumb_url | VARCHAR | URL de thumbnail | +| owner | JSONB | Propietario(s) | +| set_flg | JSONB | Array de mrfs de flg | +| url | VARCHAR | URL externa | +| url_atc | JSONB | Array de URLs de adjuntos | +| url_json | VARCHAR/JSONB | URL(s) de archivos JSON para IA | +| date | DATE | Fecha manual significativa | +| created_at | TIMESTAMP | Fecha de creación automática | +| mth_mrf | VARCHAR(64) | Referencia al proceso productivo | + +--- + +## 4. Tablas Relacionales + +### 4.1 Árbol y Grafos + +| tree_hst | tree_flg | graph_hst | graph_flg | library_hst | library_flg | +|----------|----------|-----------|-----------|-------------|-------------| +| mrf_parent | mrf_parent | mrf_a | mrf_a | mrf_library | mrf_library | +| mrf_child | mrf_child | mrf_b | mrf_b | mrf_hst | mrf_flg | +| - | - | weight | weight | - | - | +| - | - | edge_type | edge_type | - | - | + +### 4.2 Relaciones Entidades-Tags + +| ply_hst | ply_flg | itm_hst | itm_flg | loc_hst | loc_flg | +|---------|---------|---------|---------|---------|---------| +| mrf_ply | mrf_ply | mrf_itm | mrf_itm | mrf_loc | mrf_loc | +| mrf_hst | mrf_flg | mrf_hst | mrf_flg | mrf_hst | mrf_flg | + +| mst_hst | mst_flg | bck_hst | bck_flg | mth_hst | mth_flg | +|---------|---------|---------|---------|---------|---------| +| mrf_mst | mrf_mst | mrf_bck | mrf_bck | mrf_mth | mrf_mth | +| mrf_hst | mrf_flg | mrf_hst | mrf_flg | mrf_hst | mrf_flg | + +--- + +## 5. Grupos (group) + +### 5.1 HST - Etiquetado Semántico + +| group | Nombre | Regla de ref | +|-------|--------|--------------| +| hst | hashtags base | Cada registro tiene ref única | +| spe | especificaciones | Todos tienen ref = "spe" | +| vsn | visiones | Todos tienen ref = "vsn" | +| vue | valores | Todos tienen ref = "vue" | +| msn | misiones | ref = "msn", "pjt", "tgt" o "ctg" | + +### 5.2 PLY - Players + +| ref | group | Descripción | +|-----|-------|-------------| +| ppl | persona | Individuo humano | +| inc | empresa | Entidad jurídica | +| tem | equipo | Grupo de personas | +| ain | inteligencia artificial | Agente artificial | + +--- + +## 6. Edge Types (graph) + +| edge_type | Descripción | +|-----------|-------------| +| relation | Genérica | +| specialization | Es-un-tipo-de | +| mirror | Equivalencia/reflejo | +| dependency | Depende-de | +| composition | Parte-de | +| sequence | Sigue-a | +| association | Asociado-con | +| contextual | En-contexto-de | +| alternative | Alternativa-a | + +--- + +## 7. Estructura de Carpetas (Servidor) + +``` +/hst/ +├── bases/ # Backups SQL +├── images/ +│ ├── hst/thumb/ +│ ├── flg/thumb/ +│ ├── ply/thumb/ +│ ├── itm/thumb/ +│ ├── loc/thumb/ +│ ├── mst/thumb/ +│ ├── bck/thumb/ +│ └── mth/thumb/ +└── map/ +``` + +--- + +## 8. Infraestructura + +| Servidor | IP | Propósito | +|----------|-----|-----------| +| ARCHITECT | 69.62.126.110 | Desarrollo | +| HST | 72.62.2.84 | API tags semánticos | +| DECK | 72.62.1.113 | Usuario | +| CORP | 92.112.181.188 | Corporativo | + +| Parámetro | Valor | +|-----------|-------| +| Container | postgres_hst | +| Usuario | directus | +| DB | hst_images | +| R2 Endpoint | https://7dedae6030f5554d99d37e98a5232996.r2.cloudflarestorage.com | + +--- + +## 9. Tablas Oracle (Prospectiva) + +### oracle_analisis + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| num | SERIAL | Identificador | +| mrf | VARCHAR(64) | Hash público (PK) | +| private_mrf | VARCHAR(64) | Hash privado | +| name_es | VARCHAR(255) | Nombre en español | +| name_en | VARCHAR(255) | Nombre en inglés | +| txt | TEXT | Descripción | +| h_bloques_feldman | JSONB | Array de mrfs de Feldman | +| periodo_inicio | DATE | Inicio período histórico | +| periodo_fin | DATE | Fin período histórico | +| h_dataset | VARCHAR(64) | Hash integridad del conjunto | +| modelo_name | VARCHAR(255) | Nombre del modelo | +| modelo_version | VARCHAR(50) | Versión del modelo | +| modelo_metodologia | TEXT | Descripción metodología | +| modelo_formulas | JSONB | Fórmulas de cálculo | +| modelo_parametros | JSONB | Parámetros fijos | +| modelo_limitaciones | TEXT | Limitaciones | +| supuestos | JSONB | Array de supuestos | +| escenario_base | JSONB | Escenario base | +| escenario_optimista | JSONB | Escenario optimista | +| escenario_pesimista | JSONB | Escenario pesimista | +| escenario_estres | JSONB | Escenario estrés | +| sensibilidad | JSONB | Análisis sensibilidad | +| estado | VARCHAR(20) | activo, caducado, invalidado | +| fecha_caducidad | DATE | Fecha expiración | +| condiciones_invalidacion | TEXT | Qué invalida el análisis | +| autor | VARCHAR(255) | Usuario o módulo Grace | +| owner | JSONB | Propietario(s) | +| version | VARCHAR(50) | Versión | +| date | DATE | Fecha emisión | +| created_at | TIMESTAMP | Fecha creación | + +### oracle_escenario + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| num | SERIAL | Identificador | +| mrf | VARCHAR(64) | Hash público (PK) | +| private_mrf | VARCHAR(64) | Hash privado | +| analisis_mrf | VARCHAR(64) | FK a oracle_analisis | +| name_es | VARCHAR(255) | Nombre en español | +| name_en | VARCHAR(255) | Nombre en inglés | +| txt | TEXT | Descripción | +| valores_supuestos | JSONB | id_supuesto → valor | +| resultado_min | NUMERIC | Límite inferior | +| resultado_max | NUMERIC | Límite superior | +| resultado_medio | NUMERIC | Valor central | +| horizonte | VARCHAR(50) | Período proyección | +| comparado_con | JSONB | Array mrfs otros escenarios | +| autor | VARCHAR(255) | Usuario | +| owner | JSONB | Propietario(s) | +| date | DATE | Fecha | +| created_at | TIMESTAMP | Fecha creación | + +--- + +## 10. Resumen + +| Tipo | Cantidad | +|------|----------| +| Tablas principales | 8 | +| Tablas Oracle | 2 | +| Tablas árbol/grafos | 6 | +| Tablas relacionales | 12 | +| **Total** | **28** | + +--- + +## 11. Changelog + +### v2.1 (4 Enero 2026) +- Añadido `img_thumb_url` en todas las tablas + +### v2.0 (4 Enero 2026) + +| Antes | Después | +|-------|---------| +| nombre_es/en/ch | name_es/en/ch | +| estandar_md | standard_md | +| estandar_data | standard_data | +| grupo | group | +| mrf_padre | mrf_parent | +| mrf_hijo | mrf_child | +| mrf_biblioteca | mrf_library | + +--- + +# Anexo: Cuestiones Pendientes + +## A.1 Subgrupos por Definir + +### FLG - Flags + +| Categoría | Códigos | Ejemplos | Estado | +|-----------|---------|----------|--------| +| Países | ??? | España, USA, China | Pendiente | +| Jurisdicciones | ??? | UE, LATAM, NAFTA | Pendiente | +| Normativas | ??? | RGPD, SOX, HIPAA | Pendiente | +| Estándares | ??? | ISO 27001, Bluetooth, WiFi | Pendiente | + +### ITM - Items + +| Categoría | Códigos | Ejemplos | Estado | +|-----------|---------|----------|--------| +| ??? | ??? | Productos, componentes, materiales | Pendiente | + +**Referencia:** Marco temporal T-N → T+N ya definido (crf, mku, zmd, prd, itm). + +### LOC - Locations + +| Categoría | Códigos | Ejemplos | Estado | +|-----------|---------|----------|--------| +| Punto | ??? | Coordenadas exactas | Pendiente | +| Área | ??? | Zona delimitada | Pendiente | +| Ruta | ??? | Trayecto entre puntos | Pendiente | + +--- + +## A.2 Estructura jsonb_standard (Capas) + +| Capa | Nombre | Contenido | +|------|--------|-----------| +| L1 | core | Identificación básica | +| L2 | {dominio} | Datos específicos del tipo | +| L3 | relations | Referencias a otras entidades | +| L4 | extended | Datos opcionales | +| L5 | metadata | Auditoría, versiones | +| L6+ | custom | Extensiones específicas | + +**Estado:** Propuesto, no validado. + +--- + +## A.3 Campos jsonb_data por Tabla + +| Tabla | Campos esperados en jsonb_data | Estado | +|-------|--------------------------------|--------| +| ply (ppl) | fecha_nacimiento, genero, ... | Pendiente | +| ply (inc) | nombre_fiscal, codigo_fiscal, telefono, email, direccion, numero_cuenta | Parcial | +| ply (tem) | miembros, ... | Pendiente | +| ply (ain) | modelo, proveedor, ... | Pendiente | +| itm | ref_supplier, moq, lote, embalaje, unidad, coste, iva, delivery_time, specs | Parcial | +| loc | lat, lon, precision, tipo_zona, ... | Pendiente | +| mst | positivo, negativo, time, count, days, fecha_objetivo, ... | Parcial | +| bck | fecha_inicio, fecha_final, prioridad, ... | Parcial | +| mth | pasos, secuencia, validaciones, ... | Pendiente | + +--- + +## A.4 Formatos de owner + +| Caso | Formato | Estado | +|------|---------|--------| +| Propietario único | `"mrf123..."` | Definido | +| Múltiples propietarios | `[{"mrf": "...", "participacion": 51}, ...]` | Definido | +| Empresa con socios | Schema en hst ref="owner" | Pendiente | + +--- + +## A.5 Bibliotecas + +### Visibilidad Pública/Privada + +| Aspecto | Decisión | Implementación | +|---------|----------|----------------| +| Diferencia en datos | No hay | - | +| Discriminación | En endpoint | Pendiente | + +### Niveles de Biblioteca + +| Nivel | Descripción | Estado | +|-------|-------------|--------| +| Sistema (pública) | Disponibles para todos | Existente | +| Sistema (privada) | Backup completo, solo admin | Existente | +| Usuario | Creadas por el usuario | Por implementar | + +--- + +## A.6 Sincronización de Tablas Redundantes + +| Opción | Descripción | Estado | +|--------|-------------|--------| +| Triggers | Actualización automática en INSERT/UPDATE | Por evaluar | +| Batch | Sincronización periódica | Por evaluar | +| Aplicación | Lógica en el código | Por evaluar | + +**Pregunta:** ¿Cómo se sincronizan las tablas redundantes (ply_hst, itm_flg, etc.) con los campos JSONB (hashtags, set_flg)? + +--- + +## A.7 API y Endpoints Pendientes + +| Endpoint | Función | Estado | +|----------|---------|--------| +| /biblioteca/import | Importar biblioteca | Pendiente | +| /biblioteca/export | Exportar biblioteca | Pendiente | +| /sync/redundant | Sincronizar tablas redundantes | Pendiente | + +--- + +## A.8 Validaciones + +### Foreign Keys + +| Decisión | Estado | +|----------|--------| +| Usar FK con DEFERRABLE INITIALLY DEFERRED | Propuesto | +| Permitir importación masiva sin validación inmediata | Propuesto | + +### Constraints de Unicidad + +| Campo | Tabla | Constraint | Estado | +|-------|-------|------------|--------| +| mrf | todas | UNIQUE | Por verificar | +| ref | hst (dentro de grupo) | UNIQUE | Por verificar | +| mrf_child | tree_* | UNIQUE | Existente | + +--- + +## A.9 Prioridades + +### Alta (Bloquea desarrollo) + +1. Definir subgrupos FLG + +### Media (Mejora funcionalidad) + +2. Definir jsonb_data por tabla +3. Mecanismo de sincronización tablas redundantes +4. Endpoints de importación/exportación + +### Baja (Optimización) + +5. Subgrupos ITM, LOC, MST, BCK, MTH +6. Documentación de estándares +7. Migración a Gitea + +--- + +*TZZR Database Schema v2.1 - 6 Enero 2026*