workspace-v1/projects/erp-mecanicas-diesel/database
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
..
init feat: Workspace-v1 complete migration with NEXUS v3.4 2026-01-04 03:37:42 -06:00
HERENCIA-ERP-CORE.md feat: Workspace-v1 complete migration with NEXUS v3.4 2026-01-04 03:37:42 -06:00
README.md feat: Workspace-v1 complete migration with NEXUS v3.4 2026-01-04 03:37:42 -06:00

Base de Datos - Mecánicas Diesel

Descripción

Base de datos PostgreSQL para el sistema de gestión de talleres de mecánica diesel.

Schemas

Schema Descripción
service_management Órdenes de servicio, diagnósticos, cotizaciones
parts_management Inventario de refacciones específico del taller
vehicle_management Vehículos diesel, flotas, motores

NOTA: Los schemas auth, core, inventory se heredan de erp-core.

Configuración

1. Variables de Entorno

Copiar .env.example a .env y configurar:

cp .env.example .env
# Editar valores en .env

2. Iniciar con Docker

# Solo base de datos y Redis
docker-compose up -d postgres redis

# Verificar salud
docker-compose ps

# Ver logs
docker-compose logs -f postgres

3. Ejecutar Scripts Manualmente

Si no usas Docker, ejecutar en orden:

psql -U mecanicas_user -d mecanicas_diesel -f database/init/00-extensions.sql
psql -U mecanicas_user -d mecanicas_diesel -f database/init/01-create-schemas.sql
psql -U mecanicas_user -d mecanicas_diesel -f database/init/02-rls-functions.sql
psql -U mecanicas_user -d mecanicas_diesel -f database/init/03-service-management-tables.sql
psql -U mecanicas_user -d mecanicas_diesel -f database/init/04-parts-management-tables.sql
psql -U mecanicas_user -d mecanicas_diesel -f database/init/05-vehicle-management-tables.sql
psql -U mecanicas_user -d mecanicas_diesel -f database/init/06-seed-data.sql

Arquitectura Multi-Tenant

Row-Level Security (RLS)

Todas las tablas principales implementan RLS con políticas completas:

-- Establecer tenant en sesión
SELECT set_current_tenant_id('uuid-del-tenant');

-- Las queries se filtran automáticamente
SELECT * FROM service_management.service_orders;
-- Solo retorna órdenes del tenant actual

Crear Políticas RLS

Para nuevas tablas:

-- Automático: crea políticas SELECT, INSERT, UPDATE, DELETE
SELECT create_tenant_rls_policies('schema_name', 'table_name');

Tablas Principales

service_management

  • service_orders - Órdenes de servicio
  • order_items - Líneas de trabajo/refacciones
  • work_bays - Bahías de trabajo
  • diagnostics - Diagnósticos realizados
  • diagnostic_items - Hallazgos del diagnóstico
  • quotes - Cotizaciones
  • services - Catálogo de servicios

parts_management

  • parts - Refacciones
  • part_categories - Categorías
  • suppliers - Proveedores
  • warehouse_locations - Ubicaciones
  • inventory_movements - Kardex
  • inventory_adjustments - Ajustes

vehicle_management

  • vehicles - Vehículos registrados
  • vehicle_engines - Especificaciones del motor
  • fleets - Flotas
  • engine_catalog - Catálogo de motores (global)
  • maintenance_reminders - Recordatorios

Convenciones

Nombres

  • Tablas: plural en inglés, snake_case
  • Columnas: snake_case
  • PKs: id UUID
  • FKs: entity_id UUID
  • Tenant: tenant_id UUID

Campos Estándar

id UUID PRIMARY KEY DEFAULT gen_random_uuid()
tenant_id UUID NOT NULL
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
created_by UUID

Soft Delete (opcional)

deleted_at TIMESTAMP WITH TIME ZONE
deleted_by UUID

Triggers Automáticos

  • trigger_set_updated_at() - Actualiza updated_at en cada UPDATE
  • update_fleet_vehicle_count() - Mantiene conteo de vehículos en flotas

Herramientas

Adminer (UI de BD)

docker-compose --profile tools up -d adminer
# Acceder en http://localhost:8080

Conexión Directa

docker-compose exec postgres psql -U mecanicas_user -d mecanicas_diesel

Migraciones

Para cambios futuros, usar el sistema de migraciones de tu ORM (Prisma, TypeORM, etc.).

Ejemplo con Prisma:

npx prisma migrate dev --name add_new_field

Backup

# Backup
docker-compose exec postgres pg_dump -U mecanicas_user mecanicas_diesel > backup.sql

# Restore
docker-compose exec -T postgres psql -U mecanicas_user -d mecanicas_diesel < backup.sql