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:
- Implementa schemas propios para gestión de órdenes de servicio
- Adapta estructuras de inventario para refacciones especializadas
- Reutiliza patrones de autenticación y multi-tenancy
- 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.partnersservice_orders.vehicle_id->vehicle_management.vehiclesorder_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.partnersfleets.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:
- stock_valuation_layers: Campos
journal_entry_idyjournal_entry_line_id(antesaccount_move_*) - stock_move_consume_rel: Nueva tabla de trazabilidad (antes
move_line_consume_rel) - category_stock_accounts: FK corregida a
core.product_categories - 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 externoSPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN- No aplica a taller mecánicoSPEC-FIRMA-ELECTRONICA-NOM151- OpcionalSPEC-OAUTH2-SOCIAL-LOGIN- OpcionalSPEC-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