workspace-v1/projects/erp-mecanicas-diesel/docs/03-modelo-datos/INTEGRACION-ERP-CORE.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
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
2026-01-04 03:37:42 -06:00

4.4 KiB

Integracion con ERP-Core

Descripcion

Este documento describe como mecanicas-diesel se integra con el modulo base erp-core para reutilizar funcionalidades comunes y mantener consistencia en la arquitectura multi-tenant.

Schemas Heredados de erp-core

Los siguientes schemas son proporcionados por erp-core y NO deben duplicarse en mecanicas-diesel:

Schema Descripcion Tablas principales
auth Autenticacion y usuarios users, sessions, tokens
core Tenants y configuracion tenants, partners, settings
audit Logs de auditoria activity_log

Schemas Propios de mecanicas-diesel

Los siguientes schemas son especificos de la vertical mecanicas-diesel:

Schema Descripcion
service_management Ordenes de servicio, diagnosticos, cotizaciones
parts_management Inventario de refacciones
vehicle_management Vehiculos, flotas, motores

Mapeo de Conceptos

Tenants

erp-core                    mecanicas-diesel
─────────────────────────────────────────────
core.tenants.id      →      tenant_id (en todas las tablas)

El concepto de "taller" en mecanicas-diesel se mapea a un tenant de erp-core. Cada taller es un tenant aislado con sus propios datos.

Usuarios

erp-core                    mecanicas-diesel
─────────────────────────────────────────────
auth.users.id        →      created_by, assigned_to, performed_by, etc.

Todos los campos que referencian usuarios utilizan UUIDs que apuntan a auth.users de erp-core.

Clientes/Partners

erp-core                    mecanicas-diesel
─────────────────────────────────────────────
core.partners.id     →      customer_id (en service_orders, quotes, vehicles)

Los clientes del taller se gestionan como partners en erp-core, con campos adicionales especificos del taller si es necesario.

Configuracion de RLS

Funcion de Tenant Actual

erp-core provee la funcion get_current_tenant_id() que retorna el UUID del tenant activo en la sesion:

-- Uso tipico en vistas
WHERE tenant_id = get_current_tenant_id()

Politicas RLS

Todas las tablas de mecanicas-diesel utilizan la funcion create_tenant_rls_policies() de erp-core que genera politicas completas:

-- Genera SELECT, INSERT, UPDATE, DELETE policies
SELECT create_tenant_rls_policies('service_management', 'service_orders');

Esto garantiza:

  • SELECT: Solo registros del tenant actual
  • INSERT: Solo puede insertar con su tenant_id
  • UPDATE: Solo puede modificar registros de su tenant
  • DELETE: Solo puede eliminar registros de su tenant

Orden de Inicializacion

Al desplegar mecanicas-diesel, los scripts deben ejecutarse en este orden:

  1. erp-core (debe existir previamente)

    • Extensions
    • Schemas auth, core
    • Funciones RLS
  2. mecanicas-diesel

    • 00-extensions.sql - Extensions adicionales (si las hay)
    • 01-create-schemas.sql - service_management, parts_management, vehicle_management
    • 02-rls-functions.sql - Funciones RLS (usa las de erp-core si existen)
    • 03-service-management-tables.sql
    • 04-parts-management-tables.sql
    • 05-vehicle-management-tables.sql
    • 06-seed-data.sql

Variables de Entorno

La configuracion de base de datos esta separada de erp-core:

# mecanicas-diesel usa su propia base de datos
DB_NAME=mecanicas_diesel
DB_USER=mecanicas_user

# O puede compartir la misma BD si se prefiere
# En ese caso, solo cambiar los schemas

Ejemplo de Query Cross-Schema

-- Obtener ordenes con datos del cliente (partner de erp-core)
SELECT
    so.order_number,
    so.status,
    p.name as customer_name,
    p.email as customer_email
FROM service_management.service_orders so
JOIN core.partners p ON so.customer_id = p.id
WHERE so.tenant_id = get_current_tenant_id();

Consideraciones de Migracion

Si se migra de una instalacion standalone a una integrada con erp-core:

  1. Exportar datos de usuarios locales
  2. Importar a auth.users de erp-core
  3. Actualizar referencias en tablas de mecanicas-diesel
  4. Eliminar tablas duplicadas (users, tenants, etc.)

Creado por: Requirements-Analyst Fecha: 2025-12-06