Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
9.3 KiB
Reporte de Validación DDL - Verticales ERP-Suite
Fecha: 2025-12-08 Versión: 1.1 Sistema: SIMCO v2.2.0
Resumen Ejecutivo
Este reporte documenta la validación de los DDL implementados en los proyectos verticales independientes de ERP-Suite.
Arquitectura: Cada vertical es un proyecto independiente (fork conceptual) que implementa y adapta patrones del ERP-Core para su dominio específico. Las verticales NO dependen del ERP-Core para ejecutarse.
Estado General
| Vertical | Archivos DDL | Tablas | Estado | Discrepancias |
|---|---|---|---|---|
| Construcción | 4 | ~35 | ✅ CORREGIDO | 0 (2 resueltas) |
| Mecánicas-Diesel | 6 | ~30 | ✅ VÁLIDO | 0 |
| Vidrio-Templado | 0 | 0 | N/A (Planificación) | - |
| Retail | 0 | 0 | N/A (Planificación) | - |
| Clínicas | 0 | 0 | N/A (Planificación) | - |
1. Vertical: CONSTRUCCIÓN
1.1 Archivos DDL Analizados
| Archivo | Líneas | Tablas |
|---|---|---|
database/schemas/01-construction-schema-ddl.sql |
113 | 2 |
database/schemas/02-hr-schema-ddl.sql |
153 | 3 |
database/schemas/03-hse-schema-ddl.sql |
1268 | ~28 |
database/init-scripts/01-init-database.sql |
317 | 2 (fallback) |
1.2 Discrepancias Encontradas
D-CON-001: CRÍTICA - Schema Incorrecto para tenants/users ✅ CORREGIDO
Ubicación: Múltiples archivos Problema original:
-- Construcción usaba:
REFERENCES core.tenants(id)
REFERENCES core.users(id)
-- ERP-Core tiene:
auth.tenants
auth.users
Corrección aplicada (2025-12-08):
01-construction-schema-ddl.sql: 4 referencias corregidas02-hr-schema-ddl.sql: 4 referencias corregidas03-hse-schema-ddl.sql: 42 referencias corregidas- Total: 50 referencias corregidas a
auth.tenantsyauth.users
Estado: ✅ RESUELTO
D-CON-002: MEDIO - Tablas Fallback en init-database.sql
Ubicación: database/init-scripts/01-init-database.sql líneas 264-284
Situación:
-- Crea tablas fallback para uso standalone
CREATE TABLE IF NOT EXISTS core.tenants (...)
CREATE TABLE IF NOT EXISTS core.users (...)
Nota: Estas tablas permanecen como fallback para permitir uso standalone de construcción sin ERP-Core completo. El IF NOT EXISTS previene duplicación si auth.* ya existe.
Corrección aplicada en DDL de schemas:
01-construction-schema-ddl.sql: Ahora verifica queauth.tenantsyauth.usersexistan- Prerequisitos del ERP-Core son validados antes de crear tablas
Estado: ⚠️ ACEPTABLE (fallback para standalone)
1.3 Buenas Prácticas Detectadas
| Práctica | Estado | Comentario |
|---|---|---|
| Row-Level Security | ✅ | Implementado en todas las tablas |
| Triggers updated_at | ✅ | Usando core_shared.set_updated_at() |
| Índices por tenant_id | ✅ | Presente en todas las tablas |
| Comentarios en tablas | ✅ | Documentación clara |
| Verificación de prerequisitos | ✅ | Corregido: Ahora verifica auth.tenants y auth.users |
2. Vertical: MECÁNICAS-DIESEL
2.1 Archivos DDL Analizados
| Archivo | Líneas | Tablas |
|---|---|---|
database/init/00-extensions.sql |
14 | 0 |
database/init/01-create-schemas.sql |
30 | 0 |
database/init/02-rls-functions.sql |
106 | 0 |
database/init/03-service-management-tables.sql |
567 | ~18 |
database/init/04-parts-management-tables.sql |
398 | ~12 |
database/init/05-vehicle-management-tables.sql |
365 | ~8 |
2.2 Estado de Validación
✅ Sin discrepancias críticas
Enfoque diferente: Mecánicas-diesel NO usa FK explícitas a auth.*:
-- Usa columnas sin FK:
tenant_id UUID NOT NULL, -- Sin REFERENCES
customer_id UUID NOT NULL, -- Comentario: core.partners
Ventaja: No depende del schema específico de ERP-Core Desventaja: No hay integridad referencial a nivel de BD
2.3 Referencias a ERP-Core (Comentadas)
| Columna | Referencia Esperada | Estado |
|---|---|---|
tenant_id |
auth.tenants |
Solo comentario |
customer_id |
core.partners |
Solo comentario |
assigned_to |
auth.users |
Solo comentario |
created_by |
auth.users |
Solo comentario |
2.4 Buenas Prácticas Detectadas
| Práctica | Estado | Comentario |
|---|---|---|
| Row-Level Security | ✅ | Función create_tenant_rls_policies() |
| Triggers updated_at | ✅ | trigger_set_updated_at() |
| Índices optimizados | ✅ | Índices compuestos por tenant y estado |
| CHECK constraints | ✅ | Validaciones de dominio |
| JSONB para datos flex | ✅ | raw_data en diagnósticos |
3. Matriz de Compatibilidad con ERP-Core
| Schema ERP-Core | Construcción | Mecánicas-Diesel |
|---|---|---|
auth.tenants |
✅ Corregido (usa auth.tenants) |
✅ Compatible (sin FK) |
auth.users |
✅ Corregido (usa auth.users) |
✅ Compatible (sin FK) |
core.partners |
✅ Compatible | ✅ Compatible (sin FK) |
inventory.* |
⚠️ Extensión paralela | ⚠️ Extensión paralela |
financial.* |
N/A | N/A |
4. Acciones Recomendadas
Inmediatas (Construcción)
-
Corregir referencias FK en archivos DDL:
# Archivos a modificar: - database/schemas/01-construction-schema-ddl.sql - database/schemas/02-hr-schema-ddl.sql - database/schemas/03-hse-schema-ddl.sql -
Eliminar tablas fallback en
01-init-database.sql:- Eliminar
CREATE TABLE IF NOT EXISTS core.tenants - Eliminar
CREATE TABLE IF NOT EXISTS core.users - Agregar verificación de
auth.tenantsyauth.users
- Eliminar
Corto Plazo
-
Documentar prerequisitos en HERENCIA-ERP-CORE.md:
- ERP-Core debe estar instalado primero
- DDL del core debe ejecutarse antes de verticales
-
Crear script de validación que verifique:
- Schemas requeridos del core existen
- Tablas base del core existen
- FK referencias son válidas
Mediano Plazo (Mecánicas-Diesel)
- Evaluar agregar FK explícitas a mecánicas-diesel:
- Ventaja: Integridad referencial
- Desventaja: Acoplamiento con ERP-Core
5. Scripts de Corrección Propuestos
5.1 Corrección para Construcción
-- Ejecutar para corregir referencias
-- En 01-construction-schema-ddl.sql
-- Cambiar:
-- tenant_id UUID NOT NULL REFERENCES core.tenants(id),
-- A:
-- tenant_id UUID NOT NULL REFERENCES auth.tenants(id),
-- Cambiar:
-- created_by UUID REFERENCES core.users(id),
-- A:
-- created_by UUID REFERENCES auth.users(id),
5.2 Validación de Prerequisitos Propuesta
-- Agregar al inicio de cada DDL de vertical
DO $$
BEGIN
-- Verificar ERP-Core instalado
IF NOT EXISTS (SELECT 1 FROM pg_tables WHERE schemaname = 'auth' AND tablename = 'tenants') THEN
RAISE EXCEPTION 'ERP-Core requerido: Falta auth.tenants';
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_tables WHERE schemaname = 'auth' AND tablename = 'users') THEN
RAISE EXCEPTION 'ERP-Core requerido: Falta auth.users';
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_tables WHERE schemaname = 'core' AND tablename = 'partners') THEN
RAISE EXCEPTION 'ERP-Core requerido: Falta core.partners';
END IF;
RAISE NOTICE 'ERP-Core verificado correctamente';
END $$;
6. Conclusión
Construcción
- Estado: ✅ CORREGIDO - Compatible con ERP-Core
- Correcciones aplicadas: 50 referencias a
auth.tenants/auth.users - Verificaciones de prerequisitos actualizadas
Mecánicas-Diesel
- Estado: ✅ Compatible con ERP-Core
- Nota: Funciona independientemente pero sin integridad referencial FK
Verticales en Planificación
- Vidrio-Templado, Retail, Clínicas: Sin DDL implementado
- Recomendación: Seguir patrón de construcción corregido (con FK a
auth.*)
7. Resumen de Correcciones Aplicadas (2025-12-08)
| Archivo | Correcciones |
|---|---|
01-construction-schema-ddl.sql |
4 FK + verificación prerequisitos |
02-hr-schema-ddl.sql |
4 FK + verificación prerequisitos |
03-hse-schema-ddl.sql |
42 FK corregidas |
| Total | 50 referencias corregidas |
8. Documentación Actualizada (2025-12-08)
Como resultado de esta validación, los siguientes archivos fueron actualizados:
Construcción
| Archivo | Actualización |
|---|---|
database/schemas/01-construction-schema-ddl.sql |
4 FK corregidas + prerequisitos |
database/schemas/02-hr-schema-ddl.sql |
4 FK corregidas + prerequisitos |
database/schemas/03-hse-schema-ddl.sql |
42 FK corregidas |
database/HERENCIA-ERP-CORE.md |
Sección de correcciones agregada |
orchestration/inventarios/DATABASE_INVENTORY.yml |
Sección validacion_ddl agregada |
orchestration/inventarios/MASTER_INVENTORY.yml |
Sección validacion_ddl agregada |
Mecánicas-Diesel
| Archivo | Actualización |
|---|---|
database/HERENCIA-ERP-CORE.md |
Sección de validación DDL agregada |
orchestration/inventarios/DATABASE_INVENTORY.yml |
Estado validacion_ddl actualizado |
orchestration/inventarios/MASTER_INVENTORY.yml |
Estado y conteos actualizados |
Generado por: Claude Code Sistema: SIMCO v2.2.0 Fecha: 2025-12-08 Última actualización: 2025-12-08 (documentación propagada a todas las verticales)