erp-mecanicas-diesel-database/HERENCIA-ERP-CORE.md

12 KiB

Referencia de Base de Datos - ERP Mecánicas Diesel

Fecha: 2025-12-08 Versión: 1.1 Proyecto: ERP Mecánicas Diesel Nivel: 2B.2 (Proyecto Independiente)


RESUMEN

ERP Mecánicas Diesel es un proyecto independiente que implementa y adapta patrones del ERP-Core para el dominio de talleres de reparación de motores diesel. No es una extensión del core, sino un sistema autónomo que:

  1. Implementa schemas propios para gestión de órdenes de servicio
  2. Adapta estructuras de inventario para refacciones especializadas
  3. Reutiliza patrones de autenticación y multi-tenancy
  4. Opera independientemente como sistema completo

DDL de Referencia (Core): apps/erp-core/database/ddl/ DDL Propio: database/init/


ARQUITECTURA DEL PROYECTO

┌─────────────────────────────────────────────────────────────────┐
│                    ERP CORE (Referencia)                        │
│  Patrones, specs y estructuras reutilizables                    │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐               │
│  │  auth   │ │  core   │ │inventory│ │  sales   │              │
│  │ patrones│ │ patrones│ │ patrones│ │ patrones │              │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘               │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ REFERENCIA / FORK
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│           ERP MECÁNICAS DIESEL (Proyecto Independiente)         │
│                                                                 │
│  ┌───────────────┐ ┌───────────────┐ ┌───────────────┐         │
│  │   service_    │ │    parts_     │ │   vehicle_    │         │
│  │  management   │ │  management   │ │  management   │         │
│  │    18 tbl     │ │    12 tbl     │ │     8 tbl     │         │
│  │  (órdenes)    │ │ (refacciones) │ │  (vehículos)  │         │
│  └───────────────┘ └───────────────┘ └───────────────┘         │
│                                                                 │
│  Schemas propios: 3 | Tablas propias: 38                        │
│  Opera de forma INDEPENDIENTE                                   │
└─────────────────────────────────────────────────────────────────┘

PATRONES REUTILIZADOS DEL CORE

Los siguientes patrones del ERP-Core fueron adaptados e implementados en este proyecto:

Patrón del Core Adaptación en Mecánicas Diesel
auth.* Multi-tenancy con RLS propio
core.partners Clientes, flotas de vehículos
inventory.* Refacciones, partes OEM, stock
sales.* Cotizaciones, órdenes de servicio

Nota: Este proyecto NO depende del ERP-Core para ejecutarse. Implementa sus propios schemas y puede operar de forma completamente standalone.


SCHEMAS ESPECÍFICOS DE MECÁNICAS DIESEL

1. Schema service_management (10+ tablas)

Propósito: Gestión de órdenes de servicio y diagnósticos

-- Tablas principales:
service_management.service_orders      -- Órdenes de trabajo
service_management.order_items         -- Líneas (servicios/refacciones)
service_management.work_bays           -- Bahías de trabajo
service_management.diagnostics         -- Diagnósticos
service_management.diagnostic_items    -- Hallazgos
service_management.quotes              -- Cotizaciones
service_management.services            -- Catálogo de servicios

Relaciones con Core:

  • service_orders.customer_id -> core.partners
  • service_orders.vehicle_id -> vehicle_management.vehicles
  • order_items.part_id -> parts_management.parts

2. Schema parts_management (12+ tablas)

Propósito: Inventario de refacciones especializado

-- Extiende: inventory schema del core
-- Adiciona campos específicos:
--   OEM numbers, compatibilidad vehicular, garantías

parts_management.parts                 -- Refacciones (extiende inventory.products)
parts_management.part_categories       -- Categorías
parts_management.suppliers             -- Proveedores especializados
parts_management.warehouse_locations   -- Ubicaciones en almacén
parts_management.inventory_movements   -- Kardex
parts_management.inventory_adjustments -- Ajustes
parts_management.part_compatibility    -- Compatibilidad con vehículos

Relaciones con Core:

  • parts.base_product_id -> inventory.products (herencia)
  • suppliers.partner_id -> core.partners

3. Schema vehicle_management (8+ tablas)

Propósito: Gestión de vehículos diesel y flotas

vehicle_management.vehicles            -- Vehículos registrados
vehicle_management.vehicle_engines     -- Especificaciones del motor
vehicle_management.fleets              -- Flotas de clientes
vehicle_management.engine_catalog      -- Catálogo de motores diesel
vehicle_management.maintenance_reminders -- Recordatorios de servicio

Relaciones con Core:

  • vehicles.customer_id -> core.partners
  • fleets.customer_id -> core.partners

ORDEN DE EJECUCIÓN DDL

Para recrear la base de datos completa:

# PASO 1: Cargar ERP Core (base)
cd apps/erp-core/database
./scripts/reset-database.sh --force

# PASO 2: Cargar extensiones de Mecánicas Diesel
cd apps/verticales/mecanicas-diesel/database
psql $DATABASE_URL -f init/00-extensions.sql
psql $DATABASE_URL -f init/01-create-schemas.sql
psql $DATABASE_URL -f init/02-rls-functions.sql
psql $DATABASE_URL -f init/03-service-management-tables.sql
psql $DATABASE_URL -f init/04-parts-management-tables.sql
psql $DATABASE_URL -f init/05-vehicle-management-tables.sql
psql $DATABASE_URL -f init/06-seed-data.sql

DEPENDENCIAS CRUZADAS

Tablas de Mecánicas que dependen del Core

Tabla Mecánicas Depende de (Core)
service_management.service_orders core.partners (customer)
service_management.service_orders auth.users (assigned_to)
parts_management.parts inventory.products (herencia)
parts_management.suppliers core.partners
vehicle_management.vehicles core.partners (owner)
vehicle_management.fleets core.partners
Todas las tablas auth.users (audit)

SPECS DEL CORE IMPLEMENTADAS

Spec Core Aplicación en Mecánicas Estado
SPEC-VALORACION-INVENTARIO Costeo de refacciones DDL LISTO
SPEC-TRAZABILIDAD-LOTES-SERIES Garantías de partes DDL LISTO
SPEC-INVENTARIOS-CICLICOS Conteos de refacciones DDL LISTO
SPEC-MAIL-THREAD-TRACKING Historial de órdenes PENDIENTE
SPEC-TAREAS-RECURRENTES Mantenimientos preventivos PENDIENTE

Correcciones de DDL Core (2025-12-08)

El DDL del ERP-Core fue corregido para resolver FK inválidas:

  1. stock_valuation_layers: Campos journal_entry_id y journal_entry_line_id (antes account_move_*)
  2. stock_move_consume_rel: Nueva tabla de trazabilidad (antes move_line_consume_rel)
  3. category_stock_accounts: FK corregida a core.product_categories
  4. product_categories: ALTERs ahora apuntan a schema core

Estas correcciones permiten que el DDL de inventory se ejecute correctamente y habilitan:

  • Valoración FIFO/AVCO de refacciones
  • Trazabilidad de lotes y números de serie (garantías)
  • Conteos cíclicos de inventario con clasificación ABC

Validación DDL Mecánicas-Diesel (2025-12-08)

Estado: VÁLIDO - Compatible con ERP-Core

Archivo Líneas Tablas Estado
init/00-extensions.sql 14 0 Válido
init/01-create-schemas.sql 30 0 Válido
init/02-rls-functions.sql 106 0 Válido
init/03-service-management-tables.sql 567 ~18 Válido
init/04-parts-management-tables.sql 398 ~12 Válido
init/05-vehicle-management-tables.sql 365 ~8 Válido

Enfoque de FK: Este proyecto usa referencias comentadas en lugar de FK explícitas:

-- Usa columnas sin FK explícitas:
tenant_id UUID NOT NULL,  -- Referencia conceptual: auth.tenants
customer_id UUID NOT NULL,  -- Referencia conceptual: core.partners
assigned_to UUID,  -- Referencia conceptual: auth.users

Ventajas:

  • No depende del schema específico de ERP-Core
  • Puede operar standalone o integrado
  • Sin discrepancias con cambios en auth/core

Desventajas:

  • ⚠️ No hay integridad referencial a nivel de BD
  • ⚠️ La integridad debe garantizarse a nivel de aplicación

Recomendación para integración completa: Si se requiere integridad referencial estricta, agregar FK explícitas a auth.tenants y auth.users (no core.*).


MAPEO DE NOMENCLATURA

Core Mecánicas Diesel
core.partners Clientes, Flotas
inventory.products Refacciones base
inventory.locations Warehouse locations
sales.sale_orders Base para cotizaciones
purchase.purchase_orders Compras de refacciones

CATÁLOGO DE MOTORES DIESEL

El schema vehicle_management incluye un catálogo de motores diesel preconfigurado:

Marca Modelos
Cummins ISX15, ISB6.7, X15
Detroit DD15, DD13
Paccar MX-13, MX-11
International A26
Volvo D13, D11
Navistar N13

VALIDACIÓN DE HERENCIA

Verificar schemas heredados

-- Verificar que existen los schemas del core
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name IN ('auth', 'core', 'financial', 'inventory',
                      'purchase', 'sales', 'analytics', 'system');

Verificar extensiones de mecánicas

-- Verificar schemas específicos
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name IN ('service_management', 'parts_management', 'vehicle_management');

-- Contar tablas por schema
SELECT schemaname, COUNT(*) as tables
FROM pg_tables
WHERE schemaname LIKE '%_management'
GROUP BY schemaname;

SPECS DEL CORE APLICABLES

Según el MAPEO-SPECS-VERTICALES.md:

Categoría Total Obligatorias Opcionales No Aplican
Mecánicas-Diesel 30 23 2 5

SPECS Críticas para Mecánicas-Diesel

SPEC Aplicación Estado DDL
SPEC-VALORACION-INVENTARIO Costeo de refacciones DDL LISTO
SPEC-TRAZABILIDAD-LOTES-SERIES Garantías de partes DDL LISTO
SPEC-INVENTARIOS-CICLICOS Conteos de refacciones DDL LISTO
SPEC-PRICING-RULES Precios por tipo de servicio PENDIENTE
SPEC-MAIL-THREAD-TRACKING Historial de órdenes PENDIENTE

SPECS No Aplicables

  • SPEC-INTEGRACION-CALENDAR - No requiere calendario externo
  • SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN - No aplica a taller mecánico
  • SPEC-FIRMA-ELECTRONICA-NOM151 - Opcional
  • SPEC-OAUTH2-SOCIAL-LOGIN - Opcional
  • SPEC-CONSOLIDACION-FINANCIERA - Opcional

REFERENCIAS

  • ERP Core DDL: apps/erp-core/database/ddl/
  • ERP Core README: apps/erp-core/database/README.md
  • MAPEO-SPECS-VERTICALES: apps/erp-core/docs/04-modelado/MAPEO-SPECS-VERTICALES.md
  • DATABASE_INVENTORY.yml: orchestration/inventarios/

Documento de herencia oficial Última actualización: 2025-12-08