# DEPENDENCIAS ENTRE MÓDULOS

**Fecha:** 2025-12-05
**Versión:** 1.1
**Basado en:** LISTA-MODULOS-ERP-GENERICO.md + ALCANCE-POR-MODULO.md + DDL-SPEC SaaS

---

## Introducción

Este documento define las dependencias entre los 18 módulos del ERP Genérico (14 core + 4 SaaS) y establece el orden óptimo de implementación.

**Objetivo:**
- Identificar qué módulos dependen de otros
- Establecer orden de implementación que minimice bloqueos
- Planificar sprints de desarrollo
- Identificar riesgos de dependencias circulares

**Metodología:**
- **Dependencia fuerte:** Módulo B NO puede funcionar sin Módulo A (bloquea implementación)
- **Dependencia débil:** Módulo B puede funcionar sin Módulo A, pero con funcionalidad limitada
- **Dependencia opcional:** Módulo B puede usar Módulo A si está disponible, pero no es necesario

---

## Matriz de Dependencias

### Tabla Completa de Dependencias

| Módulo | Código | Depende de (Fuerte) | Depende de (Débil) | Requerido por (Fuerte) | Nivel de Implementación |
|--------|--------|---------------------|--------------------|-----------------------|------------------------|
| **Fundamentos** | MGN-001 | - | - | TODOS (MGN-002 a MGN-014) | **Nivel 0** |
| **Empresas** | MGN-002 | MGN-001 | - | MGN-004, MGN-005, MGN-006, MGN-007, MGN-010 | **Nivel 1** |
| **Catálogos** | MGN-003 | MGN-001, MGN-002 | - | MGN-004, MGN-005, MGN-006, MGN-007, MGN-009 | **Nivel 1** |
| **Mensajería** | MGN-014 | MGN-001 | - | MGN-013 | **Nivel 1** |
| **Financiero** | MGN-004 | MGN-001, MGN-002, MGN-003 | - | MGN-006, MGN-007, MGN-008, MGN-012 | **Nivel 2** |
| **Inventario** | MGN-005 | MGN-001, MGN-002, MGN-003 | - | MGN-006, MGN-007 | **Nivel 2** |
| **RRHH** | MGN-010 | MGN-001, MGN-002, MGN-003 | - | MGN-011 | **Nivel 2** |
| **Compras** | MGN-006 | MGN-004, MGN-005 | - | MGN-008 | **Nivel 3** |
| **Ventas** | MGN-007 | MGN-004, MGN-005 | - | MGN-008, MGN-009, MGN-013 | **Nivel 3** |
| **Analítica** | MGN-008 | MGN-004, MGN-006, MGN-007 | - | MGN-011, MGN-012 | **Nivel 4** |
| **CRM** | MGN-009 | MGN-003, MGN-007 | MGN-014 | - | **Nivel 4** |
| **Portal** | MGN-013 | MGN-001, MGN-007, MGN-014 | - | - | **Nivel 4** |
| **Proyectos** | MGN-011 | MGN-008 | MGN-010 | - | **Nivel 5** |
| **Reportes** | MGN-012 | MGN-004, MGN-008 | - | - | **Nivel 5** |
| **Billing SaaS** | MGN-015 | MGN-001, MGN-002 (Tenants) | - | MGN-016, MGN-017, MGN-018 | **Nivel 6** |
| **Payments POS** | MGN-016 | MGN-001, MGN-004, MGN-015 | - | - | **Nivel 7** |
| **WhatsApp Business** | MGN-017 | MGN-001, MGN-003, MGN-015 | - | MGN-018 | **Nivel 7** |
| **AI Agents** | MGN-018 | MGN-001, MGN-003, MGN-017 | - | - | **Nivel 8** |

### Visualización de Niveles de Implementación

```
Nivel 0 (Base):
┌─────────────┐
│  MGN-001    │ ← INICIO OBLIGATORIO
│ Fundamentos │
└─────────────┘

Nivel 1 (Core Base):
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  MGN-002    │  │  MGN-003    │  │  MGN-014    │
│  Empresas   │  │  Catálogos  │  │ Mensajería  │
└─────────────┘  └─────────────┘  └─────────────┘

Nivel 2 (Módulos Transaccionales Base):
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  MGN-004    │  │  MGN-005    │  │  MGN-010    │
│ Financiero  │  │ Inventario  │  │    RRHH     │
└─────────────┘  └─────────────┘  └─────────────┘

Nivel 3 (Compras y Ventas):
┌─────────────┐  ┌─────────────┐
│  MGN-006    │  │  MGN-007    │
│  Compras    │  │   Ventas    │
└─────────────┘  └─────────────┘

Nivel 4 (Analítica y Complementarios):
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  MGN-008    │  │  MGN-009    │  │  MGN-013    │
│  Analítica  │  │    CRM      │  │   Portal    │
└─────────────┘  └─────────────┘  └─────────────┘

Nivel 5 (Módulos Avanzados):
┌─────────────┐  ┌─────────────┐
│  MGN-011    │  │  MGN-012    │
│  Proyectos  │  │  Reportes   │
└─────────────┘  └─────────────┘

Nivel 6 (SaaS Platform - Base):
┌─────────────┐
│  MGN-015    │
│ Billing SaaS│
└─────────────┘

Nivel 7 (SaaS Platform - Integraciones):
┌─────────────┐  ┌─────────────┐
│  MGN-016    │  │  MGN-017    │
│ Payments POS│  │  WhatsApp   │
└─────────────┘  └─────────────┘

Nivel 8 (SaaS Platform - AI):
┌─────────────┐
│  MGN-018    │
│  AI Agents  │
└─────────────┘
```

---

## Detalle de Dependencias por Módulo

### MGN-001: Fundamentos
**Nivel:** 0 (Base)

**Depende de:**
- ❌ Ninguno (es el módulo base)

**Requerido por (Fuerte):**
- ✅ **TODOS** los módulos (MGN-002 a MGN-014)

**Razón:**
Autenticación, autorización y multi-tenancy son fundamentales para cualquier funcionalidad del ERP.

**Impacto de bloqueo:**
- **CRÍTICO:** Si MGN-001 no está completo, NO se puede iniciar ningún otro módulo.
- **Prioridad:** P0 - MÁXIMA
- **Debe completarse en:** Sprint 1-2

---

### MGN-002: Empresas y Organizaciones
**Nivel:** 1 (Core Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Requiere autenticación de usuarios

**Requerido por (Fuerte):**
- ✅ **MGN-004 (Financiero):** Documentos contables deben tener company_id
- ✅ **MGN-005 (Inventario):** Almacenes y productos por empresa
- ✅ **MGN-006 (Compras):** Órdenes de compra por empresa
- ✅ **MGN-007 (Ventas):** Órdenes de venta por empresa
- ✅ **MGN-010 (RRHH):** Empleados por empresa

**Razón:**
Multi-empresa es requerimiento fundamental. Todos los documentos transaccionales deben tener company_id.

**Impacto de bloqueo:**
- **ALTO:** Bloquea módulos transaccionales (MGN-004 a MGN-007, MGN-010)
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 3

---

### MGN-003: Catálogos Maestros
**Nivel:** 1 (Core Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Requiere autenticación
- ✅ **MGN-002 (Fuerte):** Empresa también es un partner

**Requerido por (Fuerte):**
- ✅ **MGN-004 (Financiero):** Partners, monedas
- ✅ **MGN-005 (Inventario):** Categorías de productos, UoM
- ✅ **MGN-006 (Compras):** Proveedores (partners)
- ✅ **MGN-007 (Ventas):** Clientes (partners)
- ✅ **MGN-009 (CRM):** Leads, clientes potenciales

**Razón:**
Datos maestros (partners, monedas, UoM) son usados por todos los módulos transaccionales.

**Impacto de bloqueo:**
- **ALTO:** Bloquea módulos transaccionales
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 3-4

---

### MGN-004: Financiero Básico
**Nivel:** 2 (Transaccional Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación
- ✅ **MGN-002 (Fuerte):** Company_id en documentos
- ✅ **MGN-003 (Fuerte):** Partners, monedas

**Requerido por (Fuerte):**
- ✅ **MGN-006 (Compras):** Facturas de proveedor
- ✅ **MGN-007 (Ventas):** Facturas de cliente
- ✅ **MGN-008 (Analítica):** Asientos con distribución analítica
- ✅ **MGN-012 (Reportes):** Reportes financieros

**Razón:**
Compras y ventas generan facturas (documentos contables). Analítica requiere plan de cuentas.

**Impacto de bloqueo:**
- **ALTO:** Bloquea compras, ventas, analítica
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 5-8

---

### MGN-005: Inventario Básico
**Nivel:** 2 (Transaccional Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación
- ✅ **MGN-002 (Fuerte):** Almacenes por empresa
- ✅ **MGN-003 (Fuerte):** Categorías de productos, UoM

**Requerido por (Fuerte):**
- ✅ **MGN-006 (Compras):** Recepciones de productos
- ✅ **MGN-007 (Ventas):** Entregas de productos

**Razón:**
Compras y ventas generan movimientos de inventario (pickings).

**Impacto de bloqueo:**
- **ALTO:** Bloquea compras y ventas
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 5-8

---

### MGN-006: Compras Básico
**Nivel:** 3 (Compras y Ventas)

**Depende de:**
- ✅ **MGN-004 (Fuerte):** Facturas de proveedor
- ✅ **MGN-005 (Fuerte):** Recepciones de stock

**Requerido por (Fuerte):**
- ✅ **MGN-008 (Analítica):** Costos por proyecto

**Razón:**
Órdenes de compra generan facturas (MGN-004) y recepciones (MGN-005). Costos se distribuyen analíticamente (MGN-008).

**Impacto de bloqueo:**
- **MEDIO:** Bloquea analítica
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 9-10

---

### MGN-007: Ventas Básico
**Nivel:** 3 (Compras y Ventas)

**Depende de:**
- ✅ **MGN-004 (Fuerte):** Facturas de cliente
- ✅ **MGN-005 (Fuerte):** Entregas de stock

**Requerido por (Fuerte):**
- ✅ **MGN-008 (Analítica):** Ingresos por proyecto
- ✅ **MGN-009 (CRM):** Cotizaciones desde oportunidades
- ✅ **MGN-013 (Portal):** Aprobación de cotizaciones

**Razón:**
Órdenes de venta generan facturas (MGN-004) y entregas (MGN-005). Ingresos se distribuyen analíticamente (MGN-008). CRM convierte leads a cotizaciones. Portal permite aprobación online.

**Impacto de bloqueo:**
- **MEDIO:** Bloquea analítica, CRM, portal
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 9-10

---

### MGN-008: Contabilidad Analítica
**Nivel:** 4 (Analítica y Complementarios)

**Depende de:**
- ✅ **MGN-004 (Fuerte):** Plan de cuentas, asientos
- ✅ **MGN-006 (Fuerte):** Costos de compras
- ✅ **MGN-007 (Fuerte):** Ingresos de ventas

**Requerido por (Fuerte):**
- ✅ **MGN-011 (Proyectos):** Proyectos vinculados a cuentas analíticas
- ✅ **MGN-012 (Reportes):** P&L por proyecto

**Razón:**
Analítica consolida costos e ingresos de compras/ventas. Proyectos usan cuentas analíticas para tracking.

**Impacto de bloqueo:**
- **MEDIO:** Bloquea proyectos y reportes avanzados
- **Prioridad:** P0 - ALTA (CRÍTICO para construcción)
- **Debe completarse en:** Sprint 11

---

### MGN-009: CRM Básico
**Nivel:** 4 (Analítica y Complementarios)

**Depende de:**
- ✅ **MGN-003 (Fuerte):** Partners (clientes potenciales)
- ✅ **MGN-007 (Fuerte):** Conversión de oportunidad a cotización
- 🔸 **MGN-014 (Débil):** Actividades y notificaciones

**Requerido por:**
- ❌ Ninguno

**Razón:**
CRM convierte leads a cotizaciones (MGN-007). Usa actividades de mensajería (MGN-014) pero puede funcionar sin ellas.

**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 - ALTA
- **Puede completarse en:** Sprint 12-13

---

### MGN-010: RRHH Básico
**Nivel:** 2 (Transaccional Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Empleados vinculados a users
- ✅ **MGN-002 (Fuerte):** Empleados por empresa
- ✅ **MGN-003 (Fuerte):** Empleados vinculados a partners

**Requerido por (Fuerte):**
- ✅ **MGN-011 (Proyectos):** Timesheet de empleados

**Razón:**
Proyectos requieren timesheet de empleados.

**Impacto de bloqueo:**
- **BAJO:** Solo bloquea proyectos (timesheet es opcional)
- **Prioridad:** P1 - ALTA
- **Puede completarse en:** Sprint 14-15

---

### MGN-011: Proyectos Genéricos
**Nivel:** 5 (Módulos Avanzados)

**Depende de:**
- ✅ **MGN-008 (Fuerte):** Proyectos vinculados a cuentas analíticas
- 🔸 **MGN-010 (Débil):** Timesheet de empleados (opcional)

**Requerido por:**
- ❌ Ninguno

**Razón:**
Proyectos usan analítica para tracking de costos/ingresos. Timesheet es opcional (puede registrarse sin RRHH).

**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 - ALTA
- **Puede completarse en:** Sprint 16-17

---

### MGN-012: Reportes y Analytics
**Nivel:** 5 (Módulos Avanzados)

**Depende de:**
- ✅ **MGN-004 (Fuerte):** Reportes financieros
- ✅ **MGN-008 (Fuerte):** Reportes analíticos

**Requerido por:**
- ❌ Ninguno

**Razón:**
Reportes consumen datos de financiero y analítica.

**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P2 - MEDIA
- **Puede completarse en:** Sprint 18

---

### MGN-013: Portal de Usuarios
**Nivel:** 4 (Analítica y Complementarios)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación portal_user
- ✅ **MGN-007 (Fuerte):** Cotizaciones para aprobación
- ✅ **MGN-014 (Fuerte):** Mensajería en portal

**Requerido por:**
- ❌ Ninguno

**Razón:**
Portal permite aprobación de cotizaciones y comunicación con clientes.

**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 - ALTA (CRÍTICO para INFONAVIT)
- **Puede completarse en:** Sprint 14-15

---

### MGN-014: Mensajería y Notificaciones
**Nivel:** 1 (Core Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Usuarios para notificaciones

**Requerido por (Fuerte):**
- ✅ **MGN-013 (Portal):** Mensajería en portal

**Requerido por (Débil):**
- 🔸 **Todos:** Chatter, tracking, notificaciones (mejora experiencia)

**Razón:**
Mensajería mejora colaboración en todos los módulos. Es crítico para portal.

**Impacto de bloqueo:**
- **MEDIO:** Bloquea portal
- **Prioridad:** P1 - ALTA
- **Debe completarse en:** Sprint 12 (antes de portal)

---

### MGN-015: Billing SaaS
**Nivel:** 6 (SaaS Platform - Base)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación y tenants
- ✅ **MGN-002/Tenants (Fuerte):** Suscripciones vinculadas a tenants

**Requerido por (Fuerte):**
- ✅ **MGN-016 (Payments POS):** Facturación de transacciones
- ✅ **MGN-017 (WhatsApp):** Feature flags y límites
- ✅ **MGN-018 (AI Agents):** Feature flags y cuotas de uso

**Razón:**
Sistema de facturación SaaS con modelo per-seat. Gestiona suscripciones, planes (Starter, Growth, Enterprise), feature flags y facturación automática.

**Impacto de bloqueo:**
- **ALTO:** Bloquea todos los módulos SaaS dependientes
- **Prioridad:** P0 para modelo SaaS
- **Debe completarse en:** Fase 4 (post-core)

---

### MGN-016: Payments POS
**Nivel:** 7 (SaaS Platform - Integraciones)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación
- ✅ **MGN-004 (Fuerte):** Módulo financiero para asientos contables
- ✅ **MGN-015 (Fuerte):** Billing para facturación

**Requerido por:**
- ❌ Ninguno

**Razón:**
Integración con terminales de pago (MercadoPago, Clip). Procesa transacciones POS y genera asientos contables automáticos. Soporta OAuth (MercadoPago) y API Keys (Clip).

**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 para verticales retail/POS
- **Puede completarse en:** Paralelo con MGN-017

---

### MGN-017: WhatsApp Business
**Nivel:** 7 (SaaS Platform - Integraciones)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación
- ✅ **MGN-003 (Fuerte):** Catálogos (contactos con whatsapp_number)
- ✅ **MGN-015 (Fuerte):** Feature flags para límites de mensajes

**Requerido por (Fuerte):**
- ✅ **MGN-018 (AI Agents):** Canal de comunicación para agentes

**Razón:**
Integración con WhatsApp Business Cloud API. Permite envío/recepción de mensajes, templates HSM, chatbots con flujos visuales y campañas de marketing.

**Impacto de bloqueo:**
- **ALTO:** Bloquea AI Agents que usan WhatsApp como canal
- **Prioridad:** P0 para verticales con atención al cliente
- **Puede completarse en:** Paralelo con MGN-016

---

### MGN-018: AI Agents
**Nivel:** 8 (SaaS Platform - AI)

**Depende de:**
- ✅ **MGN-001 (Fuerte):** Autenticación
- ✅ **MGN-003 (Fuerte):** Catálogos (contactos)
- ✅ **MGN-017 (Fuerte):** WhatsApp como canal de comunicación

**Requerido por:**
- ❌ Ninguno

**Razón:**
Agentes inteligentes con RAG (Retrieval Augmented Generation) usando pgvector. Permite crear knowledge bases, tools personalizados y conversaciones asistidas por IA integradas con WhatsApp.

**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 para automatización de atención
- **Debe completarse en:** Post WhatsApp

---

## Orden de Implementación Recomendado

### Sprint 1-2 (Fundamentos) - 50 SP

**Objetivo:** Establecer base de seguridad y multi-tenancy.

**Módulos:**
1. ✅ **MGN-001: Fundamentos** (50 SP)
   - Database: Schema auth_management
   - Backend: Módulo auth (JWT, RBAC, RLS)
   - Frontend: Login, signup, forgot password

**Entregables:**
- Usuarios pueden registrarse, autenticarse
- Roles y permisos funcionando
- Multi-tenancy operativo

**Criterios de éxito:**
- Test coverage 80%+
- Login funcional
- RLS validado

---

### Sprint 3-4 (Core Base) - 65 SP

**Objetivo:** Catálogos maestros y multi-empresa.

**Módulos:**
2. ✅ **MGN-002: Empresas y Organizaciones** (30 SP)
   - Database: core.companies
   - Backend: Módulo companies
   - Frontend: Selector de empresa, configuración

3. ✅ **MGN-003: Catálogos Maestros** (35 SP)
   - Database: core.partners, core.currencies, core.countries, core.uom
   - Backend: Módulo catalogs
   - Frontend: Catálogos CRUD

**Entregables:**
- Multi-empresa funcional
- Catálogos de partners, monedas, países, UoM
- Context switching de empresa

**Criterios de éxito:**
- Usuario puede trabajar con múltiples empresas
- Catálogos completos
- Validación de RLS por empresa

---

### Sprint 5-8 (Módulos Transaccionales Base) - 150 SP

**Objetivo:** Financiero e Inventario operativos.

**Módulos:**
4. ✅ **MGN-004: Financiero Básico** (80 SP)
   - Database: Schema financial_management
   - Backend: Módulo financial
   - Frontend: Plan de cuentas, asientos, facturas

5. ✅ **MGN-005: Inventario Básico** (70 SP)
   - Database: Schema inventory_management
   - Backend: Módulo inventory
   - Frontend: Productos, almacenes, movimientos

**Entregables:**
- Contabilidad general funcional
- Inventario con movimientos
- Facturas y pagos
- Valoración de inventario

**Criterios de éxito:**
- Asiento contable válido (débito = crédito)
- Movimientos de stock correctos
- Reportes financieros básicos (Balance, P&L)

---

### Sprint 9-10 (Compras y Ventas) - 120 SP

**Objetivo:** Ciclo completo de compras y ventas.

**Módulos:**
6. ✅ **MGN-006: Compras Básico** (60 SP)
   - Database: Schema purchasing_management
   - Backend: Módulo purchasing
   - Frontend: Órdenes de compra, RFQ

7. ✅ **MGN-007: Ventas Básico** (60 SP)
   - Database: Schema sales_management
   - Backend: Módulo sales
   - Frontend: Cotizaciones, órdenes de venta

**Entregables:**
- Ciclo completo: RFQ → PO → Recepción → Factura
- Ciclo completo: Cotización → SO → Entrega → Factura
- Integración con inventario y financiero

**Criterios de éxito:**
- 3-way match funcional (PO vs Recepción vs Factura)
- Generación automática de pickings
- Generación automática de asientos contables

---

### Sprint 11 (Analítica) - 45 SP

**Objetivo:** Contabilidad analítica operativa (CRÍTICO para proyectos).

**Módulos:**
8. ✅ **MGN-008: Contabilidad Analítica** (45 SP)
   - Database: Schema analytics_management
   - Backend: Módulo analytics
   - Frontend: Cuentas analíticas, reportes por proyecto

**Entregables:**
- Cuentas analíticas funcionales
- Distribución analítica en transacciones
- Reportes P&L por proyecto

**Criterios de éxito:**
- Campo analytic_account_id en todas las transacciones
- Consolidación automática de líneas analíticas
- Reporte P&L por proyecto correcto

---

### Sprint 12-13 (Mensajería y CRM) - 95 SP

**Objetivo:** Colaboración y gestión comercial.

**Módulos:**
9. ✅ **MGN-014: Mensajería y Notificaciones** (45 SP)
   - Database: Schema notifications_management
   - Backend: Módulo notifications (WebSocket)
   - Frontend: Chatter, notificaciones in-app

10. ✅ **MGN-009: CRM Básico** (50 SP)
    - Database: Schema crm_management
    - Backend: Módulo crm
    - Frontend: Pipeline kanban, leads

**Entregables:**
- Chatter funcional en documentos
- Tracking automático de cambios
- Pipeline de ventas operativo
- Conversión lead → cotización

**Criterios de éxito:**
- Notificaciones en tiempo real (WebSocket)
- Tracking automático sin código adicional
- Pipeline kanban drag-and-drop

---

### Sprint 14-15 (RRHH y Portal) - 105 SP

**Objetivo:** Recursos humanos y portal de clientes.

**Módulos:**
11. ✅ **MGN-010: RRHH Básico** (55 SP)
    - Database: Schema hr_management
    - Backend: Módulo hr
    - Frontend: Empleados, contratos, asistencias

12. ✅ **MGN-013: Portal de Usuarios** (50 SP)
    - Database: Rol portal_user en auth
    - Backend: Módulo portal (RLS estricto)
    - Frontend: Portal separado

**Entregables:**
- Gestión de empleados completa
- Timesheet básico
- Portal de clientes funcional
- Firma electrónica de cotizaciones

**Criterios de éxito:**
- Empleados vinculados a users y partners
- Cliente puede aprobar cotización online
- Firma electrónica válida legalmente

---

### Sprint 16-17 (Proyectos) - 65 SP

**Objetivo:** Gestión de proyectos genéricos.

**Módulos:**
13. ✅ **MGN-011: Proyectos Genéricos** (65 SP)
    - Database: Schema projects_management
    - Backend: Módulo projects
    - Frontend: Kanban de tareas, Gantt

**Entregables:**
- Proyectos vinculados a analítica
- Tareas con kanban
- Timesheet por tarea
- Vista Gantt

**Criterios de éxito:**
- Proyecto crea cuenta analítica automáticamente
- Timesheet genera líneas analíticas
- Portal de proyectos funcional

---

### Sprint 18 (Reportes) - 40 SP

**Objetivo:** Reportes y dashboards avanzados.

**Módulos:**
14. ✅ **MGN-012: Reportes y Analytics** (40 SP)
    - Database: Schema reports_management
    - Backend: Módulo reports
    - Frontend: Dashboards, query builder

**Entregables:**
- Dashboards configurables
- Reportes financieros estándar
- Exportación PDF/Excel

**Criterios de éxito:**
- Reportes con filtros dinámicos
- Exportación funcional
- Dashboards por rol

---

### Sprint 19 (Buffer y Testing) - Buffer

**Objetivo:** Testing exhaustivo, documentación, refinamiento.

**Actividades:**
- Testing E2E de flujos completos
- Corrección de bugs
- Documentación final
- Optimizaciones de performance
- Preparación para migración de ERP Construcción

**Criterios de éxito:**
- Test coverage 70%+
- Todos los flujos críticos validados
- Documentación completa

---

## Riesgos de Dependencias

### Riesgos Críticos (P0)

| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| **MGN-001 se retrasa** | Baja | CRÍTICO | Prioridad MÁXIMA, equipo completo en Sprint 1-2, testing exhaustivo |
| **MGN-004 (Financiero) muy complejo** | Media | ALTO | Seguir patrón Odoo, consultoría contable, validación temprana |
| **MGN-008 (Analítica) mal diseñada** | Media | ALTO | Validar con ERP Construcción, seguir patrón Odoo, testing con datos reales |
| **Dependencia circular no detectada** | Baja | MEDIO | Revisión de arquitectura en Sprint 0, validar con este documento |

### Riesgos Altos (P1)

| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| **MGN-005 (Inventario) subestimado** | Media | MEDIO | Buffer en Sprint 8, validar complejidad con Odoo |
| **Integración MGN-006/007 con MGN-005 falla** | Media | ALTO | Testing de integración en Sprint 10, casos de prueba reales |
| **MGN-014 (WebSocket) problemas de infraestructura** | Alta | MEDIO | Validación técnica temprana, fallback a polling |

### Riesgos Medios (P2)

| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| **Scope creep en módulos** | Alta | MEDIO | Validar con ALCANCE-POR-MODULO.md, rechazar funcionalidades no esenciales |
| **Velocity sobrestimado** | Media | MEDIO | Buffer Sprint 19, priorizar P0 sobre P1 |

---

## Dependencias Críticas (Bloquean Otros Módulos)

### MGN-001 (Fundamentos)
- **Bloquea:** TODOS los demás módulos (MGN-002 a MGN-014)
- **Razón:** Autenticación, autorización, multi-tenancy son base para todo
- **Prioridad:** P0 - MÁXIMA
- **Acción:** Implementar PRIMERO en Sprint 1-2, equipo completo dedicado

### MGN-002 (Empresas)
- **Bloquea:** MGN-004, MGN-005, MGN-006, MGN-007, MGN-010
- **Razón:** Documentos transaccionales requieren company_id
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 3, validar RLS por empresa

### MGN-003 (Catálogos)
- **Bloquea:** MGN-004, MGN-005, MGN-006, MGN-007, MGN-009
- **Razón:** Partners, monedas, UoM son datos maestros esenciales
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 3-4, priorizar partners y UoM

### MGN-004 (Financiero)
- **Bloquea:** MGN-006, MGN-007, MGN-008, MGN-012
- **Razón:** Compras y ventas generan facturas, analítica requiere plan de cuentas
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 5-8, validar contabilidad con contador

### MGN-005 (Inventario)
- **Bloquea:** MGN-006, MGN-007
- **Razón:** Compras y ventas generan movimientos de stock
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 5-8, validar movimientos dobles

### MGN-008 (Analítica)
- **Bloquea:** MGN-011, MGN-012
- **Razón:** Proyectos requieren cuentas analíticas, reportes usan datos analíticos
- **Prioridad:** P0 - CRÍTICO (para construcción)
- **Acción:** Implementar en Sprint 11, validar con ERP Construcción

---

## Dependencias Opcionales (No Bloquean)

### MGN-014 (Mensajería) → Módulos Transaccionales
- **Tipo:** Débil (mejora experiencia, no bloquea)
- **Razón:** Chatter y tracking son opcionales, módulos funcionan sin ellos
- **Recomendación:** Implementar en Sprint 12 para mejorar UX

### MGN-010 (RRHH) → MGN-011 (Proyectos)
- **Tipo:** Débil (timesheet es opcional)
- **Razón:** Proyectos pueden funcionar sin timesheet de empleados
- **Recomendación:** Implementar RRHH antes de proyectos para timesheet completo

### MGN-009 (CRM) → MGN-007 (Ventas)
- **Tipo:** Débil (conversión lead → quotation es opcional)
- **Razón:** Ventas puede funcionar sin CRM, cotizaciones se crean directamente
- **Recomendación:** Implementar CRM después de ventas (Sprint 12-13)

---

## Validación de No-Circularidad

### Análisis de Grafos de Dependencias

**Resultado:** ✅ NO hay dependencias circulares.

**Validación:**
- MGN-001 no depende de nadie
- Todos los demás módulos forman un DAG (Directed Acyclic Graph)
- Niveles de implementación (0 a 5) garantizan orden topológico

**Posibles ciclos a evitar:**
- ❌ MGN-007 (Ventas) → MGN-009 (CRM) → MGN-007: **NO EXISTE** (CRM depende de Ventas, no al revés)
- ❌ MGN-004 (Financiero) → MGN-008 (Analítica) → MGN-004: **NO EXISTE** (Analítica depende de Financiero, no al revés)

---

## Timeline Consolidado

### Resumen por Trimestre

**Q1 2026 (Meses 1-3) - Fundamentos y Core:**
- Sprint 1-2: MGN-001 (Fundamentos) - 50 SP
- Sprint 3-4: MGN-002 (Empresas) + MGN-003 (Catálogos) - 65 SP
- Sprint 5-6: MGN-004 (Financiero) Parte 1 - 40 SP
- **Total Q1:** 155 SP

**Q2 2026 (Meses 4-6) - Módulos Transaccionales:**
- Sprint 7-8: MGN-004 (Financiero) Parte 2 + MGN-005 (Inventario) - 110 SP
- Sprint 9-10: MGN-006 (Compras) + MGN-007 (Ventas) - 120 SP
- Sprint 11: MGN-008 (Analítica) - 45 SP
- **Total Q2:** 275 SP

**Q3 2026 (Meses 7-9) - Módulos Complementarios:**
- Sprint 12-13: MGN-014 (Mensajería) + MGN-009 (CRM) - 95 SP
- Sprint 14-15: MGN-010 (RRHH) + MGN-013 (Portal) - 105 SP
- Sprint 16-17: MGN-011 (Proyectos) - 65 SP
- **Total Q3:** 265 SP

**Q4 2026 (Mes 10) - Reportes y Buffer:**
- Sprint 18: MGN-012 (Reportes) - 40 SP
- Sprint 19: Buffer, testing, documentación
- **Total Q4:** 40 SP

**TOTAL:** 735 SP en 19 sprints (38 semanas / 9.5 meses)

---

## Métricas de Dependencias

| Métrica | Valor |
|---------|-------|
| **Total módulos** | 18 (14 core + 4 SaaS) |
| **Módulos sin dependencias** | 1 (MGN-001) |
| **Módulos con 1 dependencia** | 1 (MGN-002) |
| **Módulos con 2 dependencias** | 4 (MGN-003, MGN-014, MGN-009, MGN-015) |
| **Módulos con 3 dependencias** | 9 (MGN-004, MGN-005, MGN-006, MGN-007, MGN-010, MGN-013, MGN-016, MGN-017, MGN-018) |
| **Módulos con 4+ dependencias** | 3 (MGN-008, MGN-011, MGN-012) |
| **Dependencias totales (aristas)** | 42 |
| **Profundidad máxima (niveles)** | 8 niveles (0 a 8) |
| **Módulos críticos (bloquean 3+ módulos)** | 7 (MGN-001, MGN-002, MGN-003, MGN-004, MGN-005, MGN-008, MGN-015) |

---

## Recomendaciones Finales

### Para el Equipo de Desarrollo

1. **Respetar el orden de implementación:** NO saltar niveles sin completar dependencias
2. **Testing de integración temprano:** Validar integraciones entre módulos en cada sprint
3. **Documentar APIs claramente:** Facilitar integración entre módulos
4. **Validar con datos reales:** Usar datos de ERP Construcción para validar

### Para el Product Owner

1. **Priorizar P0 estrictamente:** NO agregar funcionalidades P1/P2 hasta completar P0
2. **Validar alcance con ALCANCE-POR-MODULO.md:** Rechazar scope creep
3. **Aceptar incrementos por módulo:** Cada sprint debe entregar módulo funcional
4. **Planificar migración:** Desde Sprint 11 (post-analítica), planear migración de Construcción

### Para el Arquitecto

1. **Validar dependencias en cada sprint:** Verificar que no se crean dependencias circulares
2. **Revisar integraciones:** Asegurar que límites entre módulos están claros
3. **Actualizar este documento:** Si cambian dependencias, actualizar inmediatamente
4. **Comunicar bloqueos:** Si un módulo se retrasa, comunicar impacto en dependientes

---

## Conclusión

Las dependencias entre módulos están claramente definidas y validadas. El orden de implementación propuesto minimiza bloqueos y permite entregas incrementales.

**Próximos pasos:**
1. Validar este orden con el equipo técnico
2. Iniciar Sprint 1 (MGN-001 Fundamentos)
3. Crear backlog detallado por módulo (Fase 2)
4. Planificar Fase 4 SaaS (MGN-015 a MGN-018) post-core

---

**Documento creado:** 2025-11-23
**Última actualización:** 2025-12-05
**Versión:** 1.1
**Autor:** Architecture-Analyst
**Estado:** ✅ Completado
**Próxima Fase:** Fase 2 - Diseño Técnico Detallado
