# 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"