erp-core/orchestration/inventarios/DEPENDENCY_GRAPH.yml
rckrdmrd 0086695b4c
Some checks failed
ERP Core CI / Backend Lint (push) Has been cancelled
ERP Core CI / Backend Unit Tests (push) Has been cancelled
ERP Core CI / Backend Integration Tests (push) Has been cancelled
ERP Core CI / Frontend Lint (push) Has been cancelled
ERP Core CI / Frontend Unit Tests (push) Has been cancelled
ERP Core CI / Frontend E2E Tests (push) Has been cancelled
ERP Core CI / Database DDL Validation (push) Has been cancelled
ERP Core CI / Backend Build (push) Has been cancelled
ERP Core CI / Frontend Build (push) Has been cancelled
ERP Core CI / CI Success (push) Has been cancelled
Performance Tests / Lighthouse CI (push) Has been cancelled
Performance Tests / Bundle Size Analysis (push) Has been cancelled
Performance Tests / k6 Load Tests (push) Has been cancelled
Performance Tests / Performance Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0 + cambios backend
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones en modulos CRM y OpenAPI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:05 -06:00

504 lines
18 KiB
YAML

# DEPENDENCY_GRAPH.yml - ERP Core
# Grafo de dependencias entre modulos
# Ubicacion Canonica: orchestration/inventarios/
# Ultima actualizacion: 2026-01-10
version: "2.1"
project: erp-core
updated_at: "2026-01-10"
updated_by: Requirements-Analyst
# =============================================================================
# PROPOSITO
# =============================================================================
# Este archivo documenta las dependencias entre modulos para:
# 1. Planificar orden de implementacion
# 2. Identificar modulos bloqueantes
# 3. Evitar dependencias circulares
# 4. Facilitar impacto de cambios
# =============================================================================
# NOTA IMPORTANTE - REESTRUCTURACION v2.0
# =============================================================================
# Los IDs de modulos fueron reorganizados en la migracion GAMILIT:
# - Fase 01 Foundation: MGN-001 a MGN-004 (sin cambios)
# - Fase 02 Core Business: MGN-005 a MGN-010 (reorganizado)
# - Fase 03 Extended: A definir
# - Fase 04 SaaS: A definir
# =============================================================================
# RESUMEN DE DEPENDENCIAS
# =============================================================================
summary:
total_modules: 18 # 10 Core + 8 Verticales planificados
fase_01_foundation: 4
fase_02_core_business: 6
fase_03_verticals: 8 # MGN-011 a MGN-018 (planificados)
critical_path: [MGN-001, MGN-002, MGN-003, MGN-004, MGN-005]
most_depended: MGN-001 # Todos dependen de auth
most_dependencies: MGN-010 # Financial depende de multiples modulos
# =============================================================================
# GRAFO DE DEPENDENCIAS
# =============================================================================
modules:
# ---------------------------------------------------------------------------
# FASE FOUNDATION - Base del sistema
# ---------------------------------------------------------------------------
- id: MGN-001
name: Autenticacion
phase: foundation
layer: core
depends_on: []
required_by:
- MGN-002 # Users necesita auth
- MGN-003 # Roles necesita auth
- MGN-004 # Tenants necesita auth
- MGN-005 # Catalogs necesita auth
- MGN-006 # Inventory
- MGN-007 # Sales
- MGN-008 # Purchases
- MGN-009 # Reports
- MGN-010 # Accounting
- MGN-011 # HR
- MGN-012 # Manufacturing
- MGN-013 # Projects
- MGN-014 # CRM
- MGN-015 # Assets
- MGN-016 # Subscriptions
- MGN-017 # Payments
- MGN-018 # WhatsApp
- MGN-019 # Audit
dependency_type: hard # Sin esto nada funciona
notes: "Modulo base obligatorio para todos"
- id: MGN-002
name: Usuarios
phase: foundation
layer: core
depends_on:
- {module: MGN-001, type: hard, reason: "Usuarios requieren autenticacion"}
required_by:
- MGN-003 # Roles asigna a usuarios
- MGN-004 # Tenants tiene usuarios
- MGN-011 # HR gestiona usuarios
- MGN-019 # Audit registra usuarios
notes: "Gestion de perfiles y preferencias"
- id: MGN-003
name: Roles y Permisos
phase: foundation
layer: core
depends_on:
- {module: MGN-001, type: hard, reason: "RBAC protege endpoints"}
- {module: MGN-002, type: hard, reason: "Roles se asignan a usuarios"}
required_by:
- MGN-004 # Tenants tiene roles por defecto
- MGN-005 # Catalogs usa permisos
- MGN-006 # Inventory usa permisos
- MGN-007 # Sales usa permisos
- MGN-008 # Purchases usa permisos
- MGN-009 # Reports usa permisos
- MGN-010 # Accounting usa permisos
notes: "Todos los modulos de negocio dependen de permisos"
- id: MGN-004
name: Multi-tenant
phase: foundation
layer: core
depends_on:
- {module: MGN-001, type: hard, reason: "Tenant se asocia en auth"}
- {module: MGN-002, type: hard, reason: "Usuarios pertenecen a tenant"}
- {module: MGN-003, type: hard, reason: "Roles son por tenant"}
required_by:
- MGN-005 # Catalogs son por tenant
- MGN-006 # Inventory por tenant
- MGN-007 # Sales por tenant
- MGN-008 # Purchases por tenant
- MGN-010 # Accounting por tenant
- MGN-016 # Subscriptions por tenant
notes: "Aislamiento de datos obligatorio"
# ---------------------------------------------------------------------------
# FASE 02 CORE BUSINESS - Modulos de Negocio Base
# ---------------------------------------------------------------------------
# NOTA: Esta seccion fue reorganizada en la migracion GAMILIT v2.0
# Los modulos MGN-005 a MGN-010 ahora corresponden a:
# - MGN-005: Catalogos (datos maestros genericos)
# - MGN-006: Settings (configuraciones)
# - MGN-007: Audit (auditoria)
# - MGN-008: Notifications (notificaciones)
# - MGN-009: Reports (reportes y dashboards)
# - MGN-010: Financial (base financiera)
- id: MGN-005
name: Catalogos Maestros
phase: core_business
layer: business
status: migrado_gamilit
ubicacion: docs/02-fase-core-business/MGN-005-catalogs/
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Catalogos por tenant"}
required_by:
- MGN-010 # Financial usa catalogos de monedas, tipos
shared_entities:
- catalogs # Definiciones de catalogos
- catalog_items # Items de cada catalogo
notes: "Catalogos genericos reutilizables (paises, monedas, unidades, etc.)"
- id: MGN-006
name: Settings
phase: core_business
layer: platform
status: estructura_gamilit
ubicacion: docs/02-fase-core-business/MGN-006-settings/
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Settings por tenant"}
required_by:
- ALL # Todos los modulos consumen configuraciones
notes: "Configuraciones globales, por tenant y por usuario"
- id: MGN-007
name: Audit
phase: core_business
layer: platform
status: estructura_gamilit
ubicacion: docs/02-fase-core-business/MGN-007-audit/
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-002, type: hard, reason: "Registra acciones de usuarios"}
- {module: MGN-004, type: hard, reason: "Audit por tenant"}
required_by: []
notes: "Modulo transversal de auditoria, no tiene dependientes directos"
- id: MGN-008
name: Notifications
phase: core_business
layer: platform
status: estructura_gamilit
ubicacion: docs/02-fase-core-business/MGN-008-notifications/
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-002, type: hard, reason: "Notificaciones a usuarios"}
- {module: MGN-004, type: hard, reason: "Notificaciones por tenant"}
- {module: MGN-006, type: soft, reason: "Preferencias de notificacion"}
required_by:
- BUSINESS_MODULES # Modulos de negocio envian notificaciones
notes: "Sistema multi-canal (email, push, in-app)"
- id: MGN-009
name: Reports
phase: core_business
layer: reporting
status: estructura_gamilit
ubicacion: docs/02-fase-core-business/MGN-009-reports/
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Reportes por tenant"}
- {module: MGN-008, type: soft, reason: "Envio programado de reportes"}
required_by:
- VERTICALS # Verticales extienden con reportes especificos
notes: "Reportes, dashboards, exportacion multi-formato"
- id: MGN-010
name: Financial Base
phase: core_business
layer: business
status: estructura_gamilit
ubicacion: docs/02-fase-core-business/MGN-010-financial/
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Contabilidad por tenant"}
- {module: MGN-005, type: soft, reason: "Catalogos de monedas, tipos cuenta"}
required_by:
- FINANCIAL_VERTICALS # Facturacion, CxC, CxP, Tesoreria
notes: "Plan de cuentas, monedas, asientos contables base"
# ---------------------------------------------------------------------------
# FASE 03 VERTICALS - Modulos Verticales de Negocio
# ---------------------------------------------------------------------------
# Modulos especializados que extienden la funcionalidad core.
# Estado: Planificados - Pendientes de implementacion
# Dependencias: Todos requieren Fase 01 y Fase 02 completadas
- id: MGN-011
name: Inventory
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-011-inventory/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Inventario por tenant"}
- {module: MGN-005, type: hard, reason: "Catalogos de productos, unidades"}
- {module: MGN-007, type: soft, reason: "Auditoria de movimientos"}
required_by:
- MGN-012 # Sales consume inventario
- MGN-013 # Purchases actualiza inventario
notes: "Control de stock, almacenes, movimientos, kardex"
- id: MGN-012
name: Sales
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-012-sales/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Ventas por tenant"}
- {module: MGN-005, type: hard, reason: "Catalogos de clientes, productos"}
- {module: MGN-010, type: hard, reason: "Facturacion usa Financial"}
- {module: MGN-011, type: soft, reason: "Disponibilidad de inventario"}
required_by:
- MGN-014 # CRM relaciona con ventas
notes: "Cotizaciones, pedidos, facturacion, notas credito/debito"
- id: MGN-013
name: Purchases
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-013-purchases/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Compras por tenant"}
- {module: MGN-005, type: hard, reason: "Catalogos de proveedores, productos"}
- {module: MGN-010, type: hard, reason: "Registro contable de compras"}
- {module: MGN-011, type: soft, reason: "Ingreso a inventario"}
required_by: []
notes: "Ordenes de compra, recepciones, cuentas por pagar"
- id: MGN-014
name: CRM
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-014-crm/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "CRM por tenant"}
- {module: MGN-005, type: hard, reason: "Catalogos de contactos"}
- {module: MGN-008, type: soft, reason: "Notificaciones de seguimiento"}
- {module: MGN-012, type: soft, reason: "Conversion a ventas"}
required_by:
- MGN-018 # WhatsApp integra con CRM
notes: "Leads, oportunidades, pipeline, seguimiento clientes"
- id: MGN-015
name: RRHH
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-015-rrhh/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-002, type: hard, reason: "Empleados como usuarios"}
- {module: MGN-004, type: hard, reason: "RRHH por tenant"}
- {module: MGN-010, type: hard, reason: "Nomina usa Financial"}
required_by: []
notes: "Empleados, contratos, nomina, vacaciones, evaluaciones"
- id: MGN-016
name: Projects
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-016-projects/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-002, type: hard, reason: "Asignacion de usuarios"}
- {module: MGN-004, type: hard, reason: "Proyectos por tenant"}
- {module: MGN-008, type: soft, reason: "Notificaciones de tareas"}
required_by: []
notes: "Proyectos, tareas, seguimiento tiempo, recursos"
- id: MGN-017
name: Assets
phase: verticals
layer: business
status: planificado
ubicacion: docs/03-fase-verticals/MGN-017-assets/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "Activos por tenant"}
- {module: MGN-005, type: hard, reason: "Catalogos de tipos activo"}
- {module: MGN-010, type: hard, reason: "Depreciacion usa Financial"}
required_by: []
notes: "Activos fijos, depreciacion, mantenimiento, bajas"
- id: MGN-018
name: WhatsApp Integration
phase: verticals
layer: integration
status: planificado
ubicacion: docs/03-fase-verticals/MGN-018-whatsapp/ # Planificado
depends_on:
- {module: MGN-001, type: hard, reason: "Auth requerido"}
- {module: MGN-004, type: hard, reason: "WhatsApp por tenant"}
- {module: MGN-008, type: hard, reason: "Usa sistema de notificaciones"}
- {module: MGN-014, type: soft, reason: "Interaccion con CRM"}
required_by: []
external_dependencies:
- {service: "WhatsApp Business API", type: mandatory}
notes: "Mensajeria automatizada, chatbots, notificaciones WhatsApp"
# =============================================================================
# ANALISIS DE DEPENDENCIAS
# =============================================================================
analysis:
# Ruta critica de implementacion (actualizada v2.1)
critical_path:
description: "Orden minimo de implementacion"
sequence:
- step: 1
phase: "Fase 01 Foundation"
modules: [MGN-001]
reason: "Base de autenticacion"
- step: 2
phase: "Fase 01 Foundation"
modules: [MGN-002]
reason: "Gestion de usuarios"
- step: 3
phase: "Fase 01 Foundation"
modules: [MGN-003]
reason: "Control de acceso"
- step: 4
phase: "Fase 01 Foundation"
modules: [MGN-004]
reason: "Multi-tenancy"
- step: 5
phase: "Fase 02 Core Business"
modules: [MGN-005, MGN-006]
reason: "Catalogos y Settings (paralelo)"
- step: 6
phase: "Fase 02 Core Business"
modules: [MGN-007, MGN-008]
reason: "Audit y Notifications (paralelo)"
- step: 7
phase: "Fase 02 Core Business"
modules: [MGN-009, MGN-010]
reason: "Reports y Financial (paralelo)"
- step: 8
phase: "Fase 03 Verticals"
modules: [MGN-011]
reason: "Inventario base para operaciones"
- step: 9
phase: "Fase 03 Verticals"
modules: [MGN-012, MGN-013]
reason: "Sales y Purchases (paralelo, dependen de Inventory)"
- step: 10
phase: "Fase 03 Verticals"
modules: [MGN-014, MGN-015, MGN-016, MGN-017]
reason: "CRM, RRHH, Projects, Assets (paralelo, independientes)"
- step: 11
phase: "Fase 03 Verticals"
modules: [MGN-018]
reason: "WhatsApp Integration (depende de CRM)"
# Modulos que bloquean a mas modulos (actualizado v2.1)
blocking_analysis:
- module: MGN-001
blocks: 17
criticality: critical
description: "Todos los modulos dependen de auth"
- module: MGN-004
blocks: 14
criticality: critical
description: "Todos los modulos core y verticales dependen de tenants"
- module: MGN-005
blocks: 6
criticality: high
description: "Financial y verticales comerciales usan catalogos"
- module: MGN-010
blocks: 5
criticality: high
description: "Sales, Purchases, RRHH, Assets dependen de Financial"
- module: MGN-011
blocks: 2
criticality: medium
description: "Sales y Purchases dependen de Inventory"
- module: MGN-014
blocks: 1
criticality: low
description: "WhatsApp depende de CRM"
- module: MGN-006
blocks: 1
criticality: medium
description: "Notifications usa settings"
# Dependencias circulares (no debe haber ninguna)
circular_dependencies: []
# Dependencias externas
external_services:
- name: PostgreSQL
used_by: [ALL]
criticality: critical
- name: Redis
used_by: [MGN-001, MGN-008]
criticality: high
- name: SMTP/Email
used_by: [MGN-008]
criticality: medium
# =============================================================================
# REGLAS DE DEPENDENCIA
# =============================================================================
rules:
- name: "No dependencias circulares"
description: "Ningun modulo puede depender indirectamente de si mismo"
enforcement: mandatory
- name: "Foundation primero"
description: "Modulos foundation deben implementarse antes que business"
enforcement: mandatory
- name: "Hard vs Soft"
description: |
- hard: Modulo no funciona sin dependencia
- soft: Funcionalidad reducida sin dependencia
enforcement: recommended
- name: "Actualizacion de grafo"
description: "Actualizar este archivo al agregar dependencias"
enforcement: mandatory
# =============================================================================
# HISTORIAL
# =============================================================================
history:
- date: "2025-12-05"
action: "Creacion del grafo de dependencias"
author: Requirements-Analyst
- date: "2025-12-05"
action: "Actualizacion v2.0 - Reestructuracion GAMILIT"
author: Requirements-Analyst
changes:
- "Reorganizacion de IDs MGN-005 a MGN-010"
- "Actualizacion de dependencias Fase 02"
- "Simplificacion de modulos futuros (pendiente definicion)"
- "Actualizacion de ruta critica"
- date: "2026-01-10"
action: "Actualizacion v2.1 - Documentacion Modulos Verticales"
author: Requirements-Analyst
changes:
- "Adicion de modulos MGN-011 a MGN-018 (Fase 03 Verticals)"
- "MGN-011 Inventory, MGN-012 Sales, MGN-013 Purchases"
- "MGN-014 CRM, MGN-015 RRHH, MGN-016 Projects"
- "MGN-017 Assets, MGN-018 WhatsApp Integration"
- "Actualizacion de total_modules a 18"
- "Extension de critical_path con steps 8-11"
- "Actualizacion de blocking_analysis con nuevas dependencias"