docs: Propagar templates de documentacion desde erp-core

Estructura _definitions/:
- _INDEX.yml: Indice de catalogos
- MODULES-CATALOG.md: 42 modulos (22 heredados + 20 propios)
- ENTITIES-CATALOG.md: ~153 entities por schema
- SERVICES-CATALOG.md: ~80 services documentados
- DATABASE-SCHEMA.md: 8 schemas con DDL detallado

Estructura _quick/:
- QUICK-INDEX.yml: Navegacion rapida
- QUICK-MODULES.yml: Estado de modulos
- QUICK-DATABASE.yml: Resumen de BD
- QUICK-API.yml: Endpoints principales

Orchestration:
- HERENCIA-ERP-CORE.md: Documentacion de herencia
- directivas/README.md: Directivas locales
- trazas/README.md: Sistema de trazas

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Adrian Flores Cortes 2026-01-26 23:07:50 -06:00
parent e3b5ce146e
commit 3a3eb4089c
12 changed files with 1928 additions and 0 deletions

View File

@ -0,0 +1,363 @@
# DATABASE-SCHEMA.md - ERP Transportistas
**Version:** 1.0.0
**Fecha:** 2026-01-26
**Engine:** PostgreSQL 15+ con PostGIS
**Total Schemas:** 8 especializados + heredados
**Total Tablas:** ~98 propias + heredadas
---
## Resumen de Schemas
| Schema | Tablas | ENUMs | DDL File | Estado |
|--------|--------|-------|----------|--------|
| transport | ~25 | ~10 | 01-transport-schema-ddl.sql | 100% |
| fleet | ~15 | ~8 | 02-fleet-schema-ddl.sql | 100% |
| tracking | ~10 | ~5 | 03-tracking-schema-ddl.sql | 100% |
| fuel | ~8 | ~4 | 04-fuel-schema-ddl.sql | 100% |
| maintenance | ~12 | ~6 | 05-maintenance-schema-ddl.sql | 100% |
| carriers | ~8 | ~4 | 06-carriers-schema-ddl.sql | 100% |
| billing | ~10 | ~5 | 07-billing-transport-ddl.sql | 100% |
| compliance | ~10 | ~5 | 08-compliance-schema-ddl.sql | 100% |
---
## Schema: transport
### Descripcion
Ordenes de transporte, embarques, viajes y rutas.
### Tablas Principales
```sql
-- Ordenes de Transporte
CREATE TABLE transport.ordenes_transporte (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL REFERENCES auth.tenants(id),
numero VARCHAR(20) NOT NULL,
cliente_id UUID NOT NULL,
status transport.status_ot NOT NULL DEFAULT 'BORRADOR',
fecha_solicitud TIMESTAMPTZ NOT NULL,
fecha_requerida TIMESTAMPTZ,
origen_id UUID NOT NULL,
destino_id UUID NOT NULL,
peso_kg DECIMAL(10,2),
volumen_m3 DECIMAL(10,2),
valor_declarado DECIMAL(12,2),
instrucciones TEXT,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Embarques (agrupacion de OTs)
CREATE TABLE transport.embarques (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
numero VARCHAR(20) NOT NULL,
viaje_id UUID,
status transport.status_embarque NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Viajes
CREATE TABLE transport.viajes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
numero VARCHAR(20) NOT NULL,
unidad_id UUID NOT NULL,
operador_id UUID NOT NULL,
remolque_id UUID,
status transport.status_viaje NOT NULL DEFAULT 'PLANEADO',
fecha_salida_programada TIMESTAMPTZ,
fecha_salida_real TIMESTAMPTZ,
fecha_llegada_programada TIMESTAMPTZ,
fecha_llegada_real TIMESTAMPTZ,
km_inicial INTEGER,
km_final INTEGER,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Paradas del viaje
CREATE TABLE transport.paradas_viaje (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
viaje_id UUID NOT NULL REFERENCES transport.viajes(id),
secuencia INTEGER NOT NULL,
tipo transport.tipo_parada NOT NULL, -- ORIGEN, DESTINO, ESCALA
ubicacion_id UUID NOT NULL,
eta TIMESTAMPTZ,
ata TIMESTAMPTZ, -- Actual Time of Arrival
etd TIMESTAMPTZ,
atd TIMESTAMPTZ, -- Actual Time of Departure
status transport.status_parada NOT NULL
);
```
### ENUMs
```sql
CREATE TYPE transport.status_ot AS ENUM (
'BORRADOR', 'CONFIRMADA', 'PLANEADA', 'EN_TRANSITO',
'ENTREGADA', 'FACTURADA', 'CERRADA', 'CANCELADA'
);
CREATE TYPE transport.status_viaje AS ENUM (
'PLANEADO', 'DESPACHADO', 'EN_TRANSITO', 'EN_DESTINO',
'ENTREGADO', 'CERRADO', 'CANCELADO'
);
CREATE TYPE transport.tipo_parada AS ENUM (
'ORIGEN', 'DESTINO', 'ESCALA', 'CRUCE_FRONTERA'
);
```
---
## Schema: fleet
### Descripcion
Unidades, remolques, operadores y documentos.
### Tablas Principales
```sql
-- Unidades (tractoras, cajas)
CREATE TABLE fleet.unidades (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
numero_economico VARCHAR(20) NOT NULL,
tipo fleet.tipo_unidad NOT NULL,
marca VARCHAR(50),
modelo VARCHAR(50),
ano INTEGER,
placa VARCHAR(15),
numero_serie VARCHAR(50),
capacidad_kg DECIMAL(10,2),
status fleet.status_unidad NOT NULL DEFAULT 'DISPONIBLE',
km_actual INTEGER,
proximo_servicio_km INTEGER,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Operadores
CREATE TABLE fleet.operadores (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
numero_empleado VARCHAR(20) NOT NULL,
nombre VARCHAR(100) NOT NULL,
apellido_paterno VARCHAR(50) NOT NULL,
apellido_materno VARCHAR(50),
rfc VARCHAR(13),
curp VARCHAR(18),
licencia_federal VARCHAR(20),
licencia_vencimiento DATE,
status fleet.status_operador NOT NULL DEFAULT 'ACTIVO',
telefono VARCHAR(15),
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Documentos de unidades
CREATE TABLE fleet.documentos_unidades (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
unidad_id UUID NOT NULL REFERENCES fleet.unidades(id),
tipo fleet.tipo_documento_unidad NOT NULL,
numero VARCHAR(50),
fecha_emision DATE,
fecha_vencimiento DATE,
archivo_url TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);
```
### ENUMs
```sql
CREATE TYPE fleet.tipo_unidad AS ENUM (
'TRACTOCAMION', 'RABON', 'TORTON', 'CAJA_SECA',
'CAJA_REFRIGERADA', 'PLATAFORMA', 'LOWBOY', 'TANQUE'
);
CREATE TYPE fleet.status_unidad AS ENUM (
'DISPONIBLE', 'EN_VIAJE', 'EN_MANTENIMIENTO',
'FUERA_SERVICIO', 'BAJA'
);
CREATE TYPE fleet.status_operador AS ENUM (
'ACTIVO', 'EN_VIAJE', 'DESCANSO', 'VACACIONES',
'INCAPACIDAD', 'BAJA'
);
```
---
## Schema: tracking
### Descripcion
Eventos GPS, geocercas, alertas, ETA.
### Tablas Principales
```sql
-- Eventos de tracking
CREATE TABLE tracking.eventos (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
unidad_id UUID NOT NULL,
viaje_id UUID,
tipo tracking.tipo_evento NOT NULL,
latitud DECIMAL(10,7) NOT NULL,
longitud DECIMAL(10,7) NOT NULL,
velocidad_kmh INTEGER,
rumbo INTEGER,
odometro INTEGER,
timestamp_gps TIMESTAMPTZ NOT NULL,
timestamp_server TIMESTAMPTZ DEFAULT NOW(),
datos_extra JSONB
);
-- Geocercas
CREATE TABLE tracking.geocercas (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
nombre VARCHAR(100) NOT NULL,
tipo tracking.tipo_geocerca NOT NULL,
geometria GEOMETRY(POLYGON, 4326),
radio_metros INTEGER, -- para circulares
activa BOOLEAN DEFAULT true,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Alertas
CREATE TABLE tracking.alertas (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
viaje_id UUID,
unidad_id UUID,
tipo tracking.tipo_alerta NOT NULL,
severidad tracking.severidad_alerta NOT NULL,
mensaje TEXT NOT NULL,
leida BOOLEAN DEFAULT false,
created_at TIMESTAMPTZ DEFAULT NOW()
);
```
---
## Schema: fuel
### Descripcion
Combustible, peajes, gastos de viaje.
### Tablas Principales
```sql
-- Cargas de combustible
CREATE TABLE fuel.cargas_combustible (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
viaje_id UUID,
unidad_id UUID NOT NULL,
operador_id UUID NOT NULL,
estacion VARCHAR(100),
litros DECIMAL(8,2) NOT NULL,
precio_litro DECIMAL(8,4) NOT NULL,
total DECIMAL(10,2) NOT NULL,
odometro INTEGER,
tipo_pago fuel.tipo_pago NOT NULL,
numero_vale VARCHAR(30),
fecha TIMESTAMPTZ NOT NULL,
latitud DECIMAL(10,7),
longitud DECIMAL(10,7),
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Control de rendimiento
CREATE TABLE fuel.control_rendimiento (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
unidad_id UUID NOT NULL,
periodo_inicio DATE NOT NULL,
periodo_fin DATE NOT NULL,
km_recorridos INTEGER NOT NULL,
litros_consumidos DECIMAL(10,2) NOT NULL,
rendimiento_real DECIMAL(6,2) NOT NULL, -- km/litro
rendimiento_esperado DECIMAL(6,2),
variacion_porcentaje DECIMAL(5,2),
alerta_generada BOOLEAN DEFAULT false
);
```
---
## Schema: compliance
### Descripcion
Carta Porte CFDI 3.1, HOS, inspecciones.
### Tablas Principales
```sql
-- Carta Porte
CREATE TABLE compliance.cartas_porte (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
viaje_id UUID NOT NULL,
tipo_cfdi compliance.tipo_cfdi NOT NULL, -- INGRESO, TRASLADO
version_carta_porte VARCHAR(10) DEFAULT '3.1',
uuid_cfdi UUID,
folio_fiscal VARCHAR(50),
fecha_timbrado TIMESTAMPTZ,
status compliance.status_carta_porte NOT NULL,
xml_firmado TEXT,
pdf_url TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Registro HOS (Horas de Servicio)
CREATE TABLE compliance.registros_hos (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
operador_id UUID NOT NULL,
fecha DATE NOT NULL,
horas_conduccion DECIMAL(4,2),
horas_servicio DECIMAL(4,2),
horas_descanso DECIMAL(4,2),
status compliance.status_hos NOT NULL,
notas TEXT
);
```
---
## Extensiones Requeridas
```sql
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
CREATE EXTENSION IF NOT EXISTS "postgis"; -- Para tracking geografico
CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- Para busquedas
```
---
## RLS (Row Level Security)
Todas las tablas implementan RLS por tenant:
```sql
ALTER TABLE transport.ordenes_transporte ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON transport.ordenes_transporte
USING (tenant_id = current_setting('app.tenant_id')::UUID);
```
---
## Referencias
- DDL completo: `database/ddl/`
- Inventario: `orchestration/inventarios/DATABASE_INVENTORY.yml`
- Entities: `ENTITIES-CATALOG.md`
---
*Ultima actualizacion: 2026-01-26*

View File

@ -0,0 +1,219 @@
# ENTITIES-CATALOG.md - ERP Transportistas
**Version:** 1.0.0
**Fecha:** 2026-01-26
**Total Entities:** 153 (95 heredadas + 58 propias especializadas)
---
## Resumen por Schema
| Schema | Entities | Estado |
|--------|----------|--------|
| auth | 20 | Heredado 100% |
| catalog | 15 | Heredado + extensiones |
| transport | ~25 | DDL completo |
| fleet | ~15 | DDL completo |
| tracking | ~10 | DDL completo |
| fuel | ~8 | DDL completo |
| maintenance | ~12 | DDL completo |
| carriers | ~8 | DDL completo |
| billing | ~10 | DDL completo |
| compliance | ~10 | DDL completo |
---
## Entities Heredadas (erp-core)
### Schema: auth (20)
- User, Role, Permission, RefreshToken, Session
- Tenant, Company, Branch
- UserRole, RolePermission
- PasswordReset, TwoFactorAuth
- ApiKey, AuditLog, LoginAttempt
- UserPreference, UserNotification
- OAuthProvider, OAuthToken
- DeviceSession, SecurityEvent
### Schema: catalog (15)
- Country, State, City, Currency
- PaymentMethod, PaymentTerm
- UnitOfMeasure, TaxRate
- DocumentType, DocumentSequence
- Category, Tag
- Bank, BankAccount
- Warehouse
---
## Entities Propias - Schema: transport (~25)
### Ordenes de Transporte (MAI-003)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| OrdenTransporte | ordenes_transporte | Backend 40% | Solicitud de servicio |
| Embarque | embarques | Pendiente | Agrupacion de OTs |
| Parada | paradas | Pendiente | Origenes/destinos |
| RestriccionOT | restricciones_ot | Pendiente | Restricciones logisticas |
| ItemOT | items_ot | Pendiente | Lineas de la OT |
### Viajes y Rutas (MAI-004, MAI-005)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| Viaje | viajes | Backend parcial | Ejecucion operativa |
| Ruta | rutas | Pendiente | Trayecto definido |
| ParadaViaje | paradas_viaje | Pendiente | Secuencia de paradas |
| ChecklistPreViaje | checklists_pre_viaje | Pendiente | Inspeccion salida |
| SelloViaje | sellos_viaje | Pendiente | Sellos de seguridad |
| EvidenciaCarga | evidencias_carga | Pendiente | Fotos de carga |
### POD y Cierre (MAI-007)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| POD | pods | Pendiente | Proof of Delivery |
| FirmaDigital | firmas_digitales | Pendiente | Firma electronica |
| FotoEntrega | fotos_entrega | Pendiente | Evidencia fotografica |
| TiempoReal | tiempos_reales | Pendiente | Tiempos efectivos |
### Incidencias (MAI-008)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| Incidencia | incidencias | Pendiente | Evento inesperado |
| ReclamoCliente | reclamos_clientes | Pendiente | Queja formal |
---
## Entities Propias - Schema: fleet (~15)
### Unidades y Remolques (MAI-011)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| Unidad | unidades | Backend 40% | Tractora/caja |
| Remolque | remolques | Pendiente | Semirremolque |
| ConfiguracionVehicular | configuraciones_vehiculares | Pendiente | Combinaciones |
| DocumentoUnidad | documentos_unidades | Pendiente | Permisos, seguros |
### Operadores (MAI-011)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| Operador | operadores | Backend 40% | Conductor |
| LicenciaOperador | licencias_operadores | Pendiente | Licencias SCT |
| DocumentoOperador | documentos_operadores | Pendiente | Antidoping, cursos |
| DisponibilidadOperador | disponibilidad_operadores | Pendiente | Horario, descansos |
---
## Entities Propias - Schema: tracking (~10)
### Eventos GPS (MAI-006)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| EventoTracking | eventos_tracking | Backend 20% | Posicion GPS |
| Geocerca | geocercas | Backend 20% | Zonas geograficas |
| AlertaTracking | alertas_tracking | Pendiente | Notificaciones |
| ETADinamico | eta_dinamico | Pendiente | Tiempo estimado |
| DispositivoGPS | dispositivos_gps | Pendiente | Hardware tracking |
---
## Entities Propias - Schema: fuel (~8)
### Combustible (MAI-012)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| CargaCombustible | cargas_combustible | Backend 50% | Registro de carga |
| CrucePeaje | cruces_peaje | Backend 50% | Peajes IAVE/TAG |
| GastoViaje | gastos_viaje | Backend 50% | Gastos operativos |
| AnticipoViatico | anticipos_viaticos | Backend 50% | Adelantos |
| ControlRendimiento | control_rendimiento | Backend 50% | km/litro |
---
## Entities Propias - Schema: maintenance (~12)
### Mantenimiento (MAI-013)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| OrdenTrabajo | ordenes_trabajo | Pendiente | OT mantenimiento |
| ProgramaMantenimiento | programas_mantenimiento | Pendiente | Preventivo |
| RefaccionFlota | refacciones_flota | Pendiente | Inventario partes |
| HistorialMantenimiento | historial_mantenimiento | Pendiente | Registro historico |
| ProveedorMantenimiento | proveedores_mantenimiento | Pendiente | Talleres externos |
---
## Entities Propias - Schema: carriers (~8)
### Terceros (MAI-014)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| Carrier | carriers | Pendiente | Transportista externo |
| DocumentoCarrier | documentos_carriers | Pendiente | Permisos, seguros |
| ScorecardCarrier | scorecard_carriers | Pendiente | Evaluacion |
| TarifaCarrier | tarifas_carriers | Pendiente | Precios acordados |
---
## Entities Propias - Schema: billing (~10)
### Facturacion Transporte (MAI-009)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| Lane | lanes | Backend 30% | Ruta comercial |
| Tarifa | tarifas | Backend 30% | Precio por lane |
| RecargoCatalogo | recargos_catalogo | Backend 30% | Fuel surcharge, detention |
| FacturaTransporte | facturas_transporte | Backend 30% | Factura servicio |
| LineaFactura | lineas_factura | Backend 30% | Detalle factura |
| FuelSurcharge | fuel_surcharge | Backend 30% | Recargo combustible |
### Liquidaciones (MAI-010)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| LiquidacionOperador | liquidaciones_operadores | Pendiente | Pago operador |
| Deduccion | deducciones | Pendiente | Descuentos |
---
## Entities Propias - Schema: compliance (~10)
### Carta Porte (MAE-016)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| CartaPorte | cartas_porte | Pendiente | Complemento CFDI |
| UbicacionCartaPorte | ubicaciones_carta_porte | Pendiente | Origenes/destinos |
| MercanciaCartaPorte | mercancias_carta_porte | Pendiente | Detalle carga |
| AutoTransporteFederal | autotransporte_federal | Pendiente | Datos SCT |
| FiguraTransporte | figuras_transporte | Pendiente | Operador, propietario |
### HOS y Bitacora (MAE-017)
| Entity | Tabla | Estado | Descripcion |
|--------|-------|--------|-------------|
| RegistroHOS | registros_hos | Pendiente | Horas de servicio |
| Bitacora | bitacoras | Pendiente | Log operador |
| InspeccionUnidad | inspecciones_unidades | Pendiente | Pre/post viaje |
---
## Referencias
- DDL completo: `database/ddl/`
- Backend Inventory: `orchestration/inventarios/BACKEND_INVENTORY.yml`
- Database Inventory: `orchestration/inventarios/DATABASE_INVENTORY.yml`
---
*Ultima actualizacion: 2026-01-26*

View File

@ -0,0 +1,206 @@
# MODULES-CATALOG.md - ERP Transportistas
**Version:** 1.0.0
**Fecha:** 2026-01-26
**Total Modulos:** 42 (22 heredados + 20 propios)
---
## Resumen
| Categoria | Cantidad | Estado |
|-----------|----------|--------|
| Heredados de erp-core | 22 | 100% disponibles |
| Propios Fase 1 (MAI) | 15 | DDL 100%, Backend 40% |
| Propios Fase 2 (MAE) | 3 | DDL 100%, Backend 0% |
| Propios Fase 3 (MAA) | 2 | Planificados |
---
## Modulos Heredados (erp-core)
### Foundation (4)
| Codigo | Nombre | Entities | Reutilizacion |
|--------|--------|----------|---------------|
| MGN-001 | Auth | 20 | 100% |
| MGN-002 | Users | 3 | 100% |
| MGN-003 | Roles | 4 | 100% |
| MGN-004 | Tenants | 2 | 100% |
### Core Business (6)
| Codigo | Nombre | Entities | Reutilizacion |
|--------|--------|----------|---------------|
| MGN-005 | Catalogs | 15 | 80% + extensiones |
| MGN-006 | Settings | 8 | 90% |
| MGN-010 | Partners | 5 | 60% + carriers |
| MGN-011 | Inventory | 14 | 50% (refacciones) |
| MGN-012 | Financial | 15 | 70% + transporte |
| MGN-013 | Purchasing | 10 | 60% |
### Extended (5)
| Codigo | Nombre | Entities | Reutilizacion |
|--------|--------|----------|---------------|
| MGN-007 | Audit | 7 | 100% |
| MGN-008 | Notifications | 6 | 100% |
| MGN-009 | Reports | 5 | 50% + KPIs transporte |
| MGN-014 | CRM | 8 | 60% + shippers |
| MGN-015 | Projects | 10 | 30% (viajes como proyectos) |
### SaaS Platform (4)
| Codigo | Nombre | Entities | Reutilizacion |
|--------|--------|----------|---------------|
| MGN-016 | Billing | 5 | 100% |
| MGN-017 | Plans | 3 | 100% |
| MGN-018 | Webhooks | 4 | 100% |
| MGN-019 | Feature Flags | 2 | 100% |
### AI/Intelligence (3)
| Codigo | Nombre | Entities | Reutilizacion |
|--------|--------|----------|---------------|
| MGN-020 | AI Integration | 7 | 80% + rutas |
| MGN-021 | WhatsApp | 5 | 100% |
| MGN-022 | MCP Server | 2 | 70% + tools transporte |
---
## Modulos Propios - Fase 1 (MAI)
### MAI-001: Fundamentos
- **Hereda de:** MGN-001 a MGN-004
- **Estado:** 100% heredado
- **Descripcion:** Auth, RBAC, multi-tenancy
### MAI-002: Clientes y Tarifas
- **Schema:** transport
- **Entities:** Cliente, Lane, Tarifa, Recargo
- **Estado:** DDL 0%, Backend 0%
- **Descripcion:** Shippers, tarifas por lane, SLAs
### MAI-003: Ordenes de Transporte
- **Schema:** transport
- **Entities:** OrdenTransporte, Embarque, Parada, Restriccion
- **Estado:** DDL 100%, Backend 40%
- **Descripcion:** Solicitudes de servicio, multi-paradas
### MAI-004: Planeacion TMS
- **Schema:** transport
- **Entities:** Consolidacion, AsignacionRecurso, CapacidadRuta
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Planeacion de carga, capacidad
### MAI-005: Despacho
- **Schema:** transport
- **Entities:** ChecklistPreViaje, Sello, EvidenciaCarga
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Liberacion de viajes
### MAI-006: Tracking
- **Schema:** tracking
- **Entities:** EventoTracking, Geocerca, AlertaTracking, ETA
- **Estado:** DDL 100%, Backend 20%
- **Descripcion:** GPS, eventos, alertas
### MAI-007: POD y Cierre
- **Schema:** transport
- **Entities:** POD, FirmaDigital, FotoEntrega, TiempoReal
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Proof of Delivery
### MAI-008: Incidencias
- **Schema:** transport
- **Entities:** Incidencia, ReclamoCliente, ImpactoServicio
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Reclamaciones
### MAI-009: Facturacion Transporte
- **Schema:** billing
- **Entities:** FacturaTransporte, LineaFactura, FuelSurcharge
- **Estado:** DDL 100%, Backend 30%
- **Descripcion:** Facturacion especializada
### MAI-010: Liquidaciones
- **Schema:** billing
- **Entities:** LiquidacionOperador, Viatico, Deduccion
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Pago a operadores
### MAI-011: Gestion de Flota
- **Schema:** fleet
- **Entities:** Unidad, Remolque, Operador, LicenciaOperador
- **Estado:** DDL 100%, Backend 40%
- **Descripcion:** Control de activos
### MAI-012: Combustible y Gastos
- **Schema:** fuel
- **Entities:** CargaCombustible, CrucePeaje, GastoViaje, Anticipo
- **Estado:** DDL 100%, Backend 50%
- **Descripcion:** Control antifraude
### MAI-013: Mantenimiento Flota
- **Schema:** maintenance
- **Entities:** OrdenTrabajo, ProgramaMantenimiento, Refaccion
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Preventivo/correctivo
### MAI-014: Carriers (Terceros)
- **Schema:** carriers
- **Entities:** Carrier, DocumentoCarrier, ScorecardCarrier
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Subcontratacion
### MAI-015: Portal Cliente
- **Schema:** transport
- **Entities:** UsuarioPortal, ConfigPortal
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Autoservicio clientes
---
## Modulos Propios - Fase 2 (MAE)
### MAE-016: Carta Porte CFDI
- **Schema:** compliance
- **Entities:** CartaPorte, ComplementoFiscal, ExpedienteCFDI
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Complemento 3.1 obligatorio
### MAE-017: HOS y Bitacora
- **Schema:** compliance
- **Entities:** RegistroHOS, Bitacora, InspeccionUnidad
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Horas de servicio, NOM-087
### MAE-018: Reportes y KPIs
- **Schema:** analytics
- **Entities:** KPITransporte, ReporteOTIF, DashboardConfig
- **Estado:** DDL 100%, Backend 0%
- **Descripcion:** Metricas de desempeno
---
## Modulos Propios - Fase 3 (MAA)
### MAA-019: Optimizacion Rutas
- **Estado:** Planificado
- **Descripcion:** ML para optimizacion, prediccion ETA
### MAA-020: Integraciones EDI
- **Estado:** Planificado
- **Descripcion:** Intercambio electronico datos
---
## Referencias
- Inventario Backend: `orchestration/inventarios/BACKEND_INVENTORY.yml`
- Inventario Database: `orchestration/inventarios/DATABASE_INVENTORY.yml`
- CLAUDE.md: `CLAUDE.md`
---
*Ultima actualizacion: 2026-01-26*

View File

@ -0,0 +1,195 @@
# SERVICES-CATALOG.md - ERP Transportistas
**Version:** 1.0.0
**Fecha:** 2026-01-26
**Total Services:** ~80 (50 heredados + 30 propios)
---
## Resumen
| Categoria | Services | Estado |
|-----------|----------|--------|
| Heredados erp-core | ~50 | 100% disponibles |
| Propios transporte | ~30 | 40% implementados |
---
## Services Heredados (erp-core)
### Auth & Users
- AuthService
- UsersService
- RolesService
- PermissionsService
- SessionsService
### Tenancy
- TenantsService
- CompaniesService
- BranchesService
### Core
- CatalogsService
- SettingsService
- AuditService
- NotificationsService
### Financial
- FinancialService
- InvoicesService
- PaymentsService
- AccountingService
### Partners
- PartnersService
- CustomersService
- SuppliersService
### AI/Intelligence
- AIService
- WhatsAppService
- MCPService
---
## Services Propios - Transporte
### OrdenesTransporteService (MAI-003)
- **Path:** `backend/src/modules/ordenes-transporte/services/`
- **Estado:** 40% implementado
- **Metodos:**
- `create(dto)` - Crear OT
- `findAll(filters)` - Listar OTs
- `findById(id)` - Obtener OT
- `update(id, dto)` - Actualizar OT
- `delete(id)` - Eliminar OT
- `changeStatus(id, status)` - Cambiar estado
- `assignToViaje(otId, viajeId)` - Asignar a viaje
### ViajesService (MAI-004, MAI-005)
- **Path:** `backend/src/modules/viajes/services/`
- **Estado:** Pendiente
- **Metodos:**
- `create(dto)` - Crear viaje
- `planificar(viajeId, recursos)` - Planificar recursos
- `despachar(viajeId, checklist)` - Liberar viaje
- `cerrar(viajeId, pod)` - Cerrar con POD
### TrackingService (MAI-006)
- **Path:** `backend/src/modules/tracking/services/`
- **Estado:** 20% implementado
- **Metodos:**
- `registrarEvento(dto)` - Registrar posicion GPS
- `getUltimaPosicion(unidadId)` - Ultima ubicacion
- `getHistorial(viajeId)` - Historial de eventos
- `calcularETA(viajeId)` - ETA dinamico
- `verificarGeocercas(lat, lng)` - Check geocercas
- `generarAlerta(tipo, datos)` - Crear alerta
### FlotaService (MAI-011)
- **Path:** `backend/src/modules/gestion-flota/services/`
- **Estado:** 40% implementado
- **Metodos:**
- `getUnidades(filters)` - Listar unidades
- `getOperadores(filters)` - Listar operadores
- `getDisponibilidad(fecha)` - Recursos disponibles
- `asignarOperador(unidadId, operadorId)` - Asignar
- `verificarDocumentos(recursoId)` - Validar vigencia
### CombustibleService (MAI-012)
- **Path:** `backend/src/modules/combustible-gastos/services/`
- **Estado:** 50% implementado
- **Metodos:**
- `registrarCarga(dto)` - Registrar carga combustible
- `registrarPeaje(dto)` - Registrar cruce peaje
- `registrarGasto(dto)` - Registrar gasto
- `generarAnticipo(operadorId, monto)` - Crear anticipo
- `calcularRendimiento(unidadId, periodo)` - km/litro
- `detectarAnomalias(viajeId)` - Alertas fraude
### FacturacionTransporteService (MAI-009)
- **Path:** `backend/src/modules/facturacion-transporte/services/`
- **Estado:** 30% implementado
- **Metodos:**
- `calcularTarifa(lane, peso, volumen)` - Calcular precio
- `aplicarRecargos(facturaId, recargos)` - Agregar recargos
- `generarFactura(viajeId)` - Crear factura
- `calcularFuelSurcharge(fecha)` - Recargo combustible
### CartaPorteService (MAE-016)
- **Path:** `backend/src/modules/carta-porte/services/`
- **Estado:** Pendiente
- **Metodos:**
- `generarComplemento(viajeId)` - Crear XML
- `validarDatos(dto)` - Validar requeridos
- `timbrar(cartaPorteId)` - Enviar a PAC
- `generarPDF(cartaPorteId)` - PDF para impresion
- `cancelar(cartaPorteId, motivo)` - Cancelar CFDI
### MantenimientoService (MAI-013)
- **Path:** `backend/src/modules/mantenimiento/services/`
- **Estado:** Pendiente
- **Metodos:**
- `crearOrdenTrabajo(dto)` - Crear OT manto
- `programarPreventivo(unidadId)` - Programar
- `registrarRefaccion(otId, refaccion)` - Agregar parte
- `getProximosMantenimientos()` - Alertas vencimiento
### CarriersService (MAI-014)
- **Path:** `backend/src/modules/carriers/services/`
- **Estado:** Pendiente
- **Metodos:**
- `registrarCarrier(dto)` - Alta tercero
- `validarDocumentos(carrierId)` - Verificar vigencia
- `calcularScorecard(carrierId)` - Evaluar desempeno
- `asignarViaje(carrierId, viajeId)` - Subcontratar
---
## Integraciones Externas
### GPSIntegrationService
- **Estado:** Planificado
- **Proveedores:**
- Geotab
- Samsara
- Omnitracs
- **Metodos:**
- `conectar(proveedor, credentials)`
- `getPosicion(deviceId)`
- `getEventos(desde, hasta)`
### PACIntegrationService
- **Estado:** Planificado
- **Proveedores:**
- Finkok
- Facturama
- SW Sapien
- **Metodos:**
- `timbrar(xml)`
- `cancelar(uuid, motivo)`
- `getStatus(uuid)`
### MapasService
- **Estado:** Planificado
- **Proveedores:**
- Google Maps
- HERE
- Mapbox
- **Metodos:**
- `geocodificar(direccion)`
- `calcularRuta(origen, destino)`
- `getDistanciaTiempo(puntos)`
---
## Referencias
- Backend: `backend/src/modules/`
- Entities: `ENTITIES-CATALOG.md`
- API: `_quick/QUICK-API.yml`
---
*Ultima actualizacion: 2026-01-26*

View File

@ -0,0 +1,39 @@
# _INDEX.yml - Indice de Definiciones Canonicas
# ERP Transportistas
# Version: 1.0.0
# Fecha: 2026-01-26
name: "Definiciones Canonicas - ERP Transportistas"
description: "Single Source of Truth para entidades, servicios y base de datos"
catalogs:
- file: "MODULES-CATALOG.md"
description: "Catalogo de modulos del sistema"
priority: 1
- file: "ENTITIES-CATALOG.md"
description: "Catalogo de entidades backend"
priority: 2
- file: "SERVICES-CATALOG.md"
description: "Catalogo de servicios backend"
priority: 3
- file: "DATABASE-SCHEMA.md"
description: "Esquema de base de datos"
priority: 4
usage: |
Estos archivos son la fuente unica de verdad.
Antes de crear entidad/servicio nuevo:
1. Verificar si existe en catalogo
2. Si existe: USAR
3. Si no existe: CREAR y DOCUMENTAR aqui
sync_with:
- "orchestration/inventarios/MASTER_INVENTORY.yml"
- "orchestration/inventarios/BACKEND_INVENTORY.yml"
- "orchestration/inventarios/DATABASE_INVENTORY.yml"
last_updated: "2026-01-26"
updated_by: "claude-code-orquestador"

224
docs/_quick/QUICK-API.yml Normal file
View File

@ -0,0 +1,224 @@
# QUICK-API.yml - API Endpoints ERP Transportistas
# Version: 1.0.0
# Fecha: 2026-01-26
base_url: "http://localhost:3014/api/v1"
auth_header: "Authorization: Bearer {token}"
tenant_header: "X-Tenant-ID: {tenant_uuid}"
endpoints:
auth:
prefix: "/auth"
routes:
- method: "POST"
path: "/login"
description: "Autenticacion"
body: "{ email, password }"
- method: "POST"
path: "/refresh"
description: "Refrescar token"
- method: "POST"
path: "/logout"
description: "Cerrar sesion"
ordenes_transporte:
prefix: "/ordenes-transporte"
status: "40% implementado"
routes:
- method: "GET"
path: "/"
description: "Listar OTs"
query: "?status=CONFIRMADA&cliente_id=uuid"
- method: "GET"
path: "/:id"
description: "Obtener OT"
- method: "POST"
path: "/"
description: "Crear OT"
body: "CreateOrdenTransporteDto"
- method: "PATCH"
path: "/:id"
description: "Actualizar OT"
- method: "PATCH"
path: "/:id/status"
description: "Cambiar status"
body: "{ status: 'CONFIRMADA' }"
- method: "DELETE"
path: "/:id"
description: "Eliminar OT"
viajes:
prefix: "/viajes"
status: "Pendiente"
routes:
- method: "GET"
path: "/"
description: "Listar viajes"
- method: "POST"
path: "/"
description: "Crear viaje"
- method: "POST"
path: "/:id/despachar"
description: "Despachar viaje"
- method: "POST"
path: "/:id/cerrar"
description: "Cerrar con POD"
tracking:
prefix: "/tracking"
status: "20% implementado"
routes:
- method: "POST"
path: "/eventos"
description: "Registrar evento GPS"
body: "{ unidad_id, lat, lng, velocidad, timestamp }"
- method: "GET"
path: "/unidades/:id/posicion"
description: "Ultima posicion"
- method: "GET"
path: "/viajes/:id/historial"
description: "Historial de eventos"
- method: "GET"
path: "/viajes/:id/eta"
description: "ETA dinamico"
flota:
prefix: "/flota"
status: "40% implementado"
routes:
- method: "GET"
path: "/unidades"
description: "Listar unidades"
- method: "GET"
path: "/operadores"
description: "Listar operadores"
- method: "GET"
path: "/disponibilidad"
description: "Recursos disponibles"
query: "?fecha=2026-01-26"
combustible:
prefix: "/combustible"
status: "50% implementado"
routes:
- method: "POST"
path: "/cargas"
description: "Registrar carga"
- method: "GET"
path: "/rendimiento/:unidad_id"
description: "Rendimiento km/litro"
- method: "GET"
path: "/anomalias"
description: "Alertas de fraude"
facturacion:
prefix: "/facturacion"
status: "30% implementado"
routes:
- method: "GET"
path: "/tarifas"
description: "Listar tarifas"
query: "?lane=origen-destino"
- method: "POST"
path: "/facturas"
description: "Generar factura"
- method: "GET"
path: "/fuel-surcharge"
description: "Recargo combustible actual"
carta_porte:
prefix: "/carta-porte"
status: "Pendiente"
routes:
- method: "POST"
path: "/"
description: "Generar complemento"
body: "{ viaje_id }"
- method: "POST"
path: "/:id/timbrar"
description: "Timbrar con PAC"
- method: "GET"
path: "/:id/pdf"
description: "Descargar PDF"
- method: "POST"
path: "/:id/cancelar"
description: "Cancelar CFDI"
carriers:
prefix: "/carriers"
status: "Pendiente"
routes:
- method: "GET"
path: "/"
description: "Listar carriers"
- method: "GET"
path: "/:id/scorecard"
description: "Evaluacion"
mantenimiento:
prefix: "/mantenimiento"
status: "Pendiente"
routes:
- method: "GET"
path: "/proximos"
description: "Proximos mantenimientos"
- method: "POST"
path: "/ordenes-trabajo"
description: "Crear OT mantenimiento"
response_format:
success:
example: |
{
"success": true,
"data": { ... },
"meta": {
"total": 100,
"page": 1,
"limit": 20
}
}
error:
example: |
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Campo requerido",
"details": [ ... ]
}
}
pagination:
query_params:
- "limit (default: 20, max: 100)"
- "offset (default: 0)"
- "sort (campo)"
- "order (asc|desc)"
last_updated: "2026-01-26"

View File

@ -0,0 +1,155 @@
# QUICK-DATABASE.yml - Base de Datos ERP Transportistas
# Version: 1.0.0
# Fecha: 2026-01-26
summary:
engine: "PostgreSQL 15+ con PostGIS"
total_schemas: 8
total_tables: "~98"
total_enums: "~47"
ddl_status: "100%"
schemas:
transport:
description: "Ordenes de transporte, embarques, viajes"
ddl_file: "01-transport-schema-ddl.sql"
lines: "~13,500"
tables:
- "ordenes_transporte"
- "embarques"
- "viajes"
- "paradas_viaje"
- "items_ot"
- "restricciones_ot"
- "checklists_pre_viaje"
- "sellos_viaje"
- "evidencias_carga"
- "pods"
- "firmas_digitales"
- "incidencias"
fleet:
description: "Unidades, remolques, operadores"
ddl_file: "02-fleet-schema-ddl.sql"
lines: "~12,200"
tables:
- "unidades"
- "remolques"
- "operadores"
- "licencias_operadores"
- "documentos_unidades"
- "documentos_operadores"
- "disponibilidad_operadores"
- "configuraciones_vehiculares"
tracking:
description: "GPS, eventos, geocercas, alertas"
ddl_file: "03-tracking-schema-ddl.sql"
lines: "~11,600"
tables:
- "eventos"
- "geocercas"
- "alertas"
- "eta_dinamico"
- "dispositivos_gps"
fuel:
description: "Combustible, peajes, gastos"
ddl_file: "04-fuel-schema-ddl.sql"
lines: "~9,300"
tables:
- "cargas_combustible"
- "cruces_peaje"
- "gastos_viaje"
- "anticipos_viaticos"
- "control_rendimiento"
maintenance:
description: "Mantenimiento preventivo/correctivo"
ddl_file: "05-maintenance-schema-ddl.sql"
lines: "~9,600"
tables:
- "ordenes_trabajo"
- "programas_mantenimiento"
- "refacciones_flota"
- "historial_mantenimiento"
- "proveedores_mantenimiento"
carriers:
description: "Transportistas terceros"
ddl_file: "06-carriers-schema-ddl.sql"
lines: "~10,600"
tables:
- "carriers"
- "documentos_carriers"
- "scorecard_carriers"
- "tarifas_carriers"
billing:
description: "Facturacion transporte"
ddl_file: "07-billing-transport-ddl.sql"
lines: "~10,700"
tables:
- "lanes"
- "tarifas"
- "recargos_catalogo"
- "facturas_transporte"
- "lineas_factura"
- "fuel_surcharge"
- "liquidaciones_operadores"
- "deducciones"
compliance:
description: "Carta Porte, HOS, inspecciones"
ddl_file: "08-compliance-schema-ddl.sql"
lines: "~14,700"
tables:
- "cartas_porte"
- "ubicaciones_carta_porte"
- "mercancias_carta_porte"
- "autotransporte_federal"
- "figuras_transporte"
- "registros_hos"
- "bitacoras"
- "inspecciones_unidades"
key_enums:
transport:
- "status_ot"
- "status_viaje"
- "tipo_parada"
- "status_embarque"
fleet:
- "tipo_unidad"
- "status_unidad"
- "status_operador"
- "tipo_documento_unidad"
tracking:
- "tipo_evento"
- "tipo_geocerca"
- "tipo_alerta"
- "severidad_alerta"
compliance:
- "tipo_cfdi"
- "status_carta_porte"
- "status_hos"
extensions:
- "uuid-ossp"
- "pgcrypto"
- "postgis"
- "pg_trgm"
rls_enabled: true
rls_policy: "tenant_isolation"
credentials:
database: "erp_transportistas_db"
user: "erp_admin"
password: "erp_dev_2026"
port: 5432
last_updated: "2026-01-26"

View File

@ -0,0 +1,53 @@
# QUICK-INDEX.yml - Navegacion Rapida ERP Transportistas
# Version: 1.0.0
# Fecha: 2026-01-26
name: "Guias Rapidas - ERP Transportistas"
description: "Indice de documentos de referencia rapida"
guides:
- file: "QUICK-MODULES.yml"
description: "Modulos del sistema y estado"
use_when: "Necesitas ver que modulos existen y su progreso"
- file: "QUICK-DATABASE.yml"
description: "Schemas y tablas principales"
use_when: "Necesitas consultar estructura de BD"
- file: "QUICK-API.yml"
description: "Endpoints principales"
use_when: "Necesitas ver rutas de API"
quick_links:
documentacion:
vision: "docs/00-vision-general/VISION-ERP-TRANSPORTISTAS.md"
requerimientos: "docs/03-requerimientos/REQ-GIRO-TRANSPORTISTA.md"
modulos: "docs/02-definicion-modulos/"
inventarios:
master: "orchestration/inventarios/MASTER_INVENTORY.yml"
backend: "orchestration/inventarios/BACKEND_INVENTORY.yml"
database: "orchestration/inventarios/DATABASE_INVENTORY.yml"
catalogos:
modules: "_definitions/MODULES-CATALOG.md"
entities: "_definitions/ENTITIES-CATALOG.md"
services: "_definitions/SERVICES-CATALOG.md"
database: "_definitions/DATABASE-SCHEMA.md"
ddl:
transport: "database/ddl/01-transport-schema-ddl.sql"
fleet: "database/ddl/02-fleet-schema-ddl.sql"
tracking: "database/ddl/03-tracking-schema-ddl.sql"
fuel: "database/ddl/04-fuel-schema-ddl.sql"
maintenance: "database/ddl/05-maintenance-schema-ddl.sql"
carriers: "database/ddl/06-carriers-schema-ddl.sql"
billing: "database/ddl/07-billing-transport-ddl.sql"
compliance: "database/ddl/08-compliance-schema-ddl.sql"
orchestration:
status: "PROJECT-STATUS.md"
proxima: "orchestration/PROXIMA-ACCION.md"
herencia: "orchestration/00-guidelines/HERENCIA-ERP-CORE.md"
last_updated: "2026-01-26"

View File

@ -0,0 +1,219 @@
# QUICK-MODULES.yml - Modulos ERP Transportistas
# Version: 1.0.0
# Fecha: 2026-01-26
summary:
total: 42
heredados: 22
propios: 20
implementados: 8
pendientes: 12
heredados:
foundation:
- code: "MGN-001"
name: "Auth"
status: "100%"
- code: "MGN-002"
name: "Users"
status: "100%"
- code: "MGN-003"
name: "Roles"
status: "100%"
- code: "MGN-004"
name: "Tenants"
status: "100%"
core_business:
- code: "MGN-005"
name: "Catalogs"
status: "80%"
notes: "Extendido con catalogos transporte"
- code: "MGN-010"
name: "Partners"
status: "60%"
notes: "Extendido con carriers"
- code: "MGN-012"
name: "Financial"
status: "70%"
notes: "Extendido con facturacion transporte"
saas:
- code: "MGN-016"
name: "Billing"
status: "100%"
- code: "MGN-017"
name: "Plans"
status: "100%"
- code: "MGN-018"
name: "Webhooks"
status: "100%"
- code: "MGN-019"
name: "Feature Flags"
status: "100%"
ai:
- code: "MGN-020"
name: "AI Integration"
status: "80%"
- code: "MGN-021"
name: "WhatsApp"
status: "100%"
- code: "MGN-022"
name: "MCP Server"
status: "70%"
propios:
fase_1_mai:
- code: "MAI-001"
name: "Fundamentos"
ddl: "-"
backend: "100%"
frontend: "0%"
priority: "Heredado"
- code: "MAI-002"
name: "Clientes y Tarifas"
ddl: "0%"
backend: "0%"
frontend: "0%"
priority: "ALTA"
- code: "MAI-003"
name: "Ordenes de Transporte"
ddl: "100%"
backend: "40%"
frontend: "0%"
priority: "CRITICA"
- code: "MAI-004"
name: "Planeacion TMS"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "ALTA"
- code: "MAI-005"
name: "Despacho"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "ALTA"
- code: "MAI-006"
name: "Tracking"
ddl: "100%"
backend: "20%"
frontend: "0%"
priority: "CRITICA"
- code: "MAI-007"
name: "POD y Cierre"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "ALTA"
- code: "MAI-008"
name: "Incidencias"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "MEDIA"
- code: "MAI-009"
name: "Facturacion Transporte"
ddl: "100%"
backend: "30%"
frontend: "0%"
priority: "ALTA"
- code: "MAI-010"
name: "Liquidaciones"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "MEDIA"
- code: "MAI-011"
name: "Gestion de Flota"
ddl: "100%"
backend: "40%"
frontend: "0%"
priority: "CRITICA"
- code: "MAI-012"
name: "Combustible y Gastos"
ddl: "100%"
backend: "50%"
frontend: "0%"
priority: "MEDIA"
- code: "MAI-013"
name: "Mantenimiento Flota"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "MEDIA"
- code: "MAI-014"
name: "Carriers (Terceros)"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "MEDIA"
- code: "MAI-015"
name: "Portal Cliente"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "BAJA"
fase_2_mae:
- code: "MAE-016"
name: "Carta Porte CFDI"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "CRITICA"
notes: "Complemento 3.1 obligatorio"
- code: "MAE-017"
name: "HOS y Bitacora"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "ALTA"
- code: "MAE-018"
name: "Reportes y KPIs"
ddl: "100%"
backend: "0%"
frontend: "0%"
priority: "MEDIA"
fase_3_maa:
- code: "MAA-019"
name: "Optimizacion Rutas"
ddl: "-"
backend: "0%"
frontend: "0%"
priority: "BAJA"
notes: "Fase futura"
- code: "MAA-020"
name: "Integraciones EDI"
ddl: "-"
backend: "0%"
frontend: "0%"
priority: "BAJA"
notes: "Fase futura"
critical_path:
- "MAI-003: Ordenes de Transporte"
- "MAI-006: Tracking"
- "MAI-011: Gestion de Flota"
- "MAE-016: Carta Porte CFDI"
last_updated: "2026-01-26"

View File

@ -0,0 +1,201 @@
# Herencia ERP-Core - ERP Transportistas
**Version:** 1.0.0
**Fecha:** 2026-01-26
**Tipo:** CONSUMER (Nivel 2)
---
## Relacion de Herencia
```
template-saas (PROVIDER - L0)
erp-core (INTERMEDIATE - L1)
├── erp-construccion
├── erp-mecanicas-diesel
├── erp-clinicas
├── erp-retail
├── erp-vidrio-templado
└── erp-transportistas ◀── ESTE PROYECTO
```
---
## Modulos Heredados de erp-core
### Foundation (100% Heredado)
| Modulo | Codigo Core | Reutilizacion | Modificaciones |
|--------|-------------|---------------|----------------|
| Auth | MGN-001 | 100% | Ninguna |
| Users | MGN-002 | 100% | Ninguna |
| Roles | MGN-003 | 100% | Roles adicionales transporte |
| Tenants | MGN-004 | 100% | Ninguna |
### Core Business (60-70% Heredado)
| Modulo | Codigo Core | Reutilizacion | Extensiones |
|--------|-------------|---------------|-------------|
| Catalogs | MGN-005 | 80% | Catalogos vehiculares |
| Settings | MGN-006 | 90% | Config GPS/tracking |
| Financial | MGN-012 | 70% | Facturacion transporte |
| Inventory | MGN-011 | 50% | Combustible, refacciones |
| Partners | MGN-010 | 60% | Clientes, carriers |
### SaaS Features (100% Heredado)
| Modulo | Codigo Core | Reutilizacion |
|--------|-------------|---------------|
| Billing | MGN-016 | 100% |
| Plans | MGN-017 | 100% |
| Webhooks | MGN-018 | 100% |
| Feature Flags | MGN-019 | 100% |
### AI/Intelligence (80% Heredado)
| Modulo | Codigo Core | Reutilizacion | Extensiones |
|--------|-------------|---------------|-------------|
| AI Integration | MGN-020 | 80% | Optimizacion rutas |
| WhatsApp | MGN-021 | 100% | - |
| MCP Server | MGN-022 | 70% | Tools transporte |
---
## Modulos Especificos de Transporte (MAI/MAE/MAA)
### Fase 1 - MAI (Modulo Aplicacion Inicial)
| Codigo | Nombre | Herencia Core | Status |
|--------|--------|---------------|--------|
| MAI-001 | Fundamentos | MGN-001 a 004 | Heredado |
| MAI-002 | Clientes y Tarifas | MGN-010 ext | Nuevo 30% |
| MAI-003 | Ordenes de Transporte | - | Nuevo 100% |
| MAI-004 | Planeacion TMS | - | Nuevo 100% |
| MAI-005 | Despacho | - | Nuevo 100% |
| MAI-006 | Tracking | - | Nuevo 100% |
| MAI-007 | POD y Cierre | - | Nuevo 100% |
| MAI-008 | Incidencias | - | Nuevo 100% |
| MAI-009 | Facturacion Transporte | MGN-012 ext | Nuevo 60% |
| MAI-010 | Liquidaciones | - | Nuevo 100% |
| MAI-011 | Gestion de Flota | - | Nuevo 100% |
| MAI-012 | Combustible y Gastos | MGN-011 ext | Nuevo 70% |
| MAI-013 | Mantenimiento Flota | - | Nuevo 100% |
| MAI-014 | Carriers (Terceros) | - | Nuevo 100% |
| MAI-015 | Portal Cliente | - | Nuevo 100% |
### Fase 2 - MAE (Modulo Aplicacion Extendido)
| Codigo | Nombre | Herencia Core | Status |
|--------|--------|---------------|--------|
| MAE-016 | Carta Porte CFDI | MGN-012 ext | Nuevo 80% |
| MAE-017 | HOS y Bitacora | - | Nuevo 100% |
| MAE-018 | Reportes y KPIs | MGN-006 ext | Nuevo 50% |
### Fase 3 - MAA (Modulo Aplicacion Avanzado)
| Codigo | Nombre | Herencia Core | Status |
|--------|--------|---------------|--------|
| MAA-019 | Optimizacion Rutas | MGN-020 ext | Futuro |
| MAA-020 | Integraciones EDI | - | Futuro |
---
## Patrones Reutilizados
### Desde erp-core
1. **Multi-Tenancy con RLS**
- Aislamiento por tenant_id
- Politicas RLS en todas las tablas
- Header X-Tenant-ID
2. **Estructura de Modulos Backend**
```
module/
├── entities/
├── services/
├── controllers/
├── dto/
└── index.ts
```
3. **Naming Conventions**
- Entities: PascalCase singular
- Tables: snake_case plural
- Services: PascalCase + Service
- Controllers: PascalCase + Controller
4. **API REST Standards**
- Versionado: /api/v1/
- Pagination: limit, offset
- Sorting: sort, order
- Filtering: field=value
---
## Schemas de Base de Datos
### Heredados de erp-core
- auth
- catalog
- settings
- billing
- ai
### Especificos de Transporte
- transport (ordenes, embarques, viajes)
- fleet (unidades, operadores)
- tracking (eventos, geofences)
- fuel (cargas combustible)
- maintenance (mantenimiento flota)
- carriers (transportistas terceros)
- billing_transport (facturacion especializada)
- compliance (HOS, carta porte)
---
## Directivas Heredadas
1. `DIRECTIVA-MULTI-TENANT.md` - Obligatoria
2. `DIRECTIVA-EXTENSION-VERTICALES.md` - Obligatoria
3. `ESTANDARES-API-REST-GENERICO.md` - Obligatoria
4. `TRIGGER-COHERENCIA-CAPAS.md` - Obligatoria
5. `TRIGGER-INVENTARIOS.md` - Obligatoria
---
## Propagacion de Cambios
### Desde erp-core
| Tipo Cambio | Propagacion | SLA |
|-------------|-------------|-----|
| Security Fix | FORZADA | 24h |
| Bug Fix Critico | INMEDIATA | 48h |
| Feature Nuevo | EVALUADA | 2 semanas |
| Breaking Change | PLANIFICADA | 1 mes |
| Docs | INMEDIATA | 1 dia |
### Proceso
1. Monitorear cambios en erp-core
2. Evaluar impacto en modulos heredados
3. Aplicar cambios manteniendo extensiones locales
4. Validar build + lint + tests
5. Documentar en PROPAGATION-LOG
---
## Referencias
- `workspace-v2/orchestration/directivas/simco/PROPAGATION-RULES.md`
- `workspace-v2/orchestration/inventarios/REUSABLE-CODE-INVENTORY.yml`
- `erp-core/orchestration/directivas/DIRECTIVA-EXTENSION-VERTICALES.md`
---
*Ultima actualizacion: 2026-01-26*
*Agente: claude-code-orquestador*

View File

@ -0,0 +1,28 @@
# Directivas Locales - ERP Transportistas
## Herencia
Este proyecto hereda directivas de:
1. `workspace-v2/orchestration/directivas/` - Directivas globales SIMCO
2. `erp-core/orchestration/directivas/` - Directivas ERP genericas
## Directivas Heredadas (Obligatorias)
| Directiva | Ubicacion | Proposito |
|-----------|-----------|-----------|
| DIRECTIVA-MULTI-TENANT | erp-core | Aislamiento por tenant |
| DIRECTIVA-EXTENSION-VERTICALES | erp-core | Patron de extension |
| ESTANDARES-API-REST-GENERICO | erp-core | Estandares API |
| TRIGGER-COHERENCIA-CAPAS | erp-core | DDL-Entity-Controller |
| TRIGGER-INVENTARIOS | erp-core | Sincronizacion inventarios |
## Directivas Locales
Crear aqui directivas especificas de transporte:
- DIRECTIVA-CARTA-PORTE.md
- DIRECTIVA-TRACKING-GPS.md
- DIRECTIVA-INTEGRACIONES-EDI.md
---
*Creado: 2026-01-26*

View File

@ -0,0 +1,26 @@
# Trazas - ERP Transportistas
## Proposito
Carpeta para tracking de actividades de agentes y tareas en progreso.
## Archivos de Traza
| Archivo | Proposito |
|---------|-----------|
| TRAZA-TAREAS-BACKEND.md | Historial tareas backend |
| TRAZA-TAREAS-DATABASE.md | Historial tareas DDL |
| TRAZA-TAREAS-FRONTEND.md | Historial tareas frontend |
| ACTIVE-FILES.yml | Archivos en edicion activa (multi-agente) |
| BLOCKED-TASKS.yml | Tareas bloqueadas |
## Uso
Los agentes deben actualizar las trazas al:
- Iniciar una tarea
- Completar una tarea
- Encontrar un bloqueo
---
*Creado: 2026-01-26*