# Indice de Modulos - ERP Core

## Resumen

| Metrica | Valor |
|---------|-------|
| Total Modulos | 19 |
| Modulos P0 (Criticos) | 4 |
| Modulos P1 (Core) | 6 |
| Modulos P2 (Extended) | 5 |
| Modulos P3 (SaaS) | 4 |
| Completados | 0 |
| En Desarrollo | 2 |
| Planificados | 17 |

---

## Modulos por Prioridad

### P0 - Criticos (Sin estos no funciona)

| Codigo | Modulo | Estado | Progreso | Docs |
|--------|--------|--------|----------|------|
| MGN-001 | [auth](#mgn-001-auth) | En desarrollo | 40% | [Ver](./MGN-001-auth/) |
| MGN-002 | [users](#mgn-002-users) | En desarrollo | 30% | [Ver](./MGN-002-users/) |
| MGN-003 | [roles](#mgn-003-roles) | Planificado | 0% | Pendiente |
| MGN-004 | [tenants](#mgn-004-tenants) | Planificado | 0% | Pendiente |

### P1 - Core Business

| Codigo | Modulo | Estado | Progreso | Docs |
|--------|--------|--------|----------|------|
| MGN-005 | [catalogs](#mgn-005-catalogs) | Planificado | 0% | Pendiente |
| MGN-010 | [financial](#mgn-010-financial) | Planificado | 0% | Pendiente |
| MGN-011 | [inventory](#mgn-011-inventory) | Planificado | 0% | Pendiente |
| MGN-012 | [purchasing](#mgn-012-purchasing) | Planificado | 0% | Pendiente |
| MGN-013 | [sales](#mgn-013-sales) | Planificado | 0% | Pendiente |
| MGN-006 | [settings](#mgn-006-settings) | Planificado | 0% | Pendiente |

### P2 - Extended

| Codigo | Modulo | Estado | Progreso | Docs |
|--------|--------|--------|----------|------|
| MGN-007 | [audit](#mgn-007-audit) | Planificado | 0% | Pendiente |
| MGN-008 | [notifications](#mgn-008-notifications) | Planificado | 0% | Pendiente |
| MGN-009 | [reports](#mgn-009-reports) | Planificado | 0% | Pendiente |
| MGN-014 | [crm](#mgn-014-crm) | Planificado | 0% | Pendiente |
| MGN-015 | [projects](#mgn-015-projects) | Planificado | 0% | Pendiente |

### P3 - SaaS Platform

| Codigo | Modulo | Estado | Progreso | Docs |
|--------|--------|--------|----------|------|
| MGN-016 | [billing](#mgn-016-billing) | Planificado | 0% | [Ver](./MGN-016-billing/) |
| MGN-017 | [payments-pos](#mgn-017-payments-pos) | Planificado | 0% | [Ver](./MGN-017-payments-pos/) |
| MGN-018 | [whatsapp-business](#mgn-018-whatsapp-business) | Planificado | 0% | [Ver](./MGN-018-whatsapp-business/) |
| MGN-019 | [ai-agents](#mgn-019-ai-agents) | Planificado | 0% | [Ver](./MGN-019-ai-agents/) |

---

## Detalle de Modulos

### MGN-001: Auth

**Proposito:** Autenticacion y manejo de sesiones

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_auth` |
| Tablas | users, sessions, tokens, oauth_providers |
| Endpoints | 8 (login, logout, refresh, etc.) |
| Dependencias | Ninguna (modulo base) |
| Usado por | Todos los modulos |

**Funcionalidades:**
- Login con email/password
- JWT tokens (access + refresh)
- OAuth providers (Google, Microsoft, etc.)
- Sesiones multi-dispositivo
- Password recovery
- 2FA (opcional)

---

### MGN-002: Users

**Proposito:** Gestion de usuarios del sistema

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_auth` |
| Tablas | users, user_profiles, user_preferences |
| Endpoints | 6 (CRUD + profile) |
| Dependencias | MGN-001 Auth |
| Usado por | MGN-003 Roles |

**Funcionalidades:**
- CRUD de usuarios
- Perfiles de usuario
- Preferencias (idioma, timezone, tema)
- Avatar y datos personales
- Activacion/desactivacion

---

### MGN-003: Roles

**Proposito:** Roles y permisos (RBAC)

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_auth` |
| Tablas | roles, permissions, role_permissions, user_roles |
| Endpoints | 10 |
| Dependencias | MGN-001, MGN-002 |
| Usado por | Todos los modulos |

**Funcionalidades:**
- Roles jerarquicos
- Permisos granulares por recurso
- Asignacion de roles a usuarios
- Roles por tenant
- Herencia de permisos

---

### MGN-004: Tenants

**Proposito:** Multi-tenancy y aislamiento de datos

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_system` |
| Tablas | tenants, tenant_settings, tenant_features |
| Endpoints | 8 |
| Dependencias | MGN-001 |
| Usado por | Todos los modulos |

**Funcionalidades:**
- Creacion de tenants
- Configuracion por tenant
- Feature flags por tenant
- Limites y quotas
- Aislamiento RLS

---

### MGN-005: Catalogs

**Proposito:** Catalogos maestros reutilizables

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_catalogs` |
| Tablas | countries, states, currencies, uom, etc. |
| Endpoints | 12+ |
| Dependencias | MGN-004 |
| Usado por | Partners, Products, Financial |

**Funcionalidades:**
- Paises y estados
- Monedas y tipos de cambio
- Unidades de medida
- Categorias genericas
- Impuestos base

---

### MGN-006: Settings

**Proposito:** Configuracion del sistema

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_system` |
| Tablas | config_parameters, sequences |
| Endpoints | 6 |
| Dependencias | MGN-004 |
| Usado por | Todos los modulos |

**Funcionalidades:**
- Parametros de configuracion
- Secuencias (folios)
- Configuracion de email
- Configuracion de integraciones

---

### MGN-007: Audit

**Proposito:** Auditoria y trazabilidad

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `audit_logging` |
| Tablas | audit_logs, login_history, change_history |
| Endpoints | 4 (solo lectura) |
| Dependencias | MGN-001, MGN-004 |
| Usado por | - |

**Funcionalidades:**
- Log de cambios por entidad
- Historial de logins
- Exportacion de logs
- Retencion configurable

---

### MGN-008: Notifications

**Proposito:** Sistema de notificaciones

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_notifications` |
| Tablas | notifications, notification_preferences, templates |
| Endpoints | 8 |
| Dependencias | MGN-001, MGN-002 |
| Usado por | Todos los modulos |

**Funcionalidades:**
- Notificaciones in-app
- Email notifications
- Push notifications (mobile)
- Preferencias por usuario
- Templates de notificacion

---

### MGN-009: Reports

**Proposito:** Reportes genericos

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_reports` |
| Tablas | report_definitions, report_schedules |
| Endpoints | 6 |
| Dependencias | MGN-001, MGN-004 |
| Usado por | Verticales |

**Funcionalidades:**
- Definicion de reportes
- Exportacion PDF/Excel
- Reportes programados
- Dashboards basicos

---

### MGN-010: Financial

**Proposito:** Contabilidad basica

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_financial` |
| Tablas | accounts, journals, entries, invoices, payments |
| Endpoints | 20+ |
| Dependencias | MGN-005 |
| Usado por | Sales, Purchases, Verticales |

**Funcionalidades:**
- Plan de cuentas
- Diarios contables
- Asientos contables
- Facturas (ventas/compras)
- Pagos
- Conciliacion bancaria basica

---

### MGN-011: Inventory

**Proposito:** Inventario y stock

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_inventory` |
| Tablas | products, warehouses, locations, stock_moves |
| Endpoints | 15+ |
| Dependencias | MGN-005, Products |
| Usado por | Sales, Purchases, Verticales |

**Funcionalidades:**
- Almacenes y ubicaciones
- Movimientos de stock
- Valoracion de inventario
- Ajustes de inventario
- Transferencias

---

### MGN-012: Purchasing

**Proposito:** Compras

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_purchases` |
| Tablas | purchase_orders, po_lines, supplier_info |
| Endpoints | 12+ |
| Dependencias | MGN-005, MGN-010, MGN-011 |
| Usado por | Verticales |

**Funcionalidades:**
- Ordenes de compra
- Recepciones
- Facturacion de compras
- Proveedores por producto
- Solicitudes de compra

---

### MGN-013: Sales

**Proposito:** Ventas

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_sales` |
| Tablas | sale_orders, so_lines, quotations |
| Endpoints | 15+ |
| Dependencias | MGN-005, MGN-010, MGN-011 |
| Usado por | Verticales |

**Funcionalidades:**
- Cotizaciones
- Ordenes de venta
- Entregas
- Facturacion de ventas
- Precios y descuentos

---

### MGN-014: CRM

**Proposito:** CRM basico

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_crm` |
| Tablas | leads, opportunities, activities, stages |
| Endpoints | 12+ |
| Dependencias | MGN-005, Partners |
| Usado por | Sales, Verticales |

**Funcionalidades:**
- Leads y oportunidades
- Pipeline de ventas
- Actividades y seguimiento
- Conversion a cliente
- Reportes de funnel

---

### MGN-015: Projects

**Proposito:** Proyectos genericos

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `core_projects` |
| Tablas | projects, tasks, timesheets |
| Endpoints | 12+ |
| Dependencias | MGN-002, MGN-005 |
| Usado por | Verticales |

**Funcionalidades:**
- Proyectos y tareas
- Asignacion de recursos
- Registro de tiempo
- Estados y etapas
- Kanban view

---

### MGN-016: Billing

**Proposito:** Facturacion SaaS por asientos (per-seat billing)

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `billing` |
| Tablas | tenant_owners, payment_methods, invoices, invoice_lines, payments, coupons, coupon_redemptions, usage_records, subscription_history |
| Endpoints | 15+ |
| Dependencias | MGN-001, MGN-004 Tenants |
| Usado por | MGN-017, MGN-018, MGN-019 |

**Funcionalidades:**
- Suscripciones mensuales por tenant
- Modelo per-seat: base + extra seats × precio
- Feature flags por plan (Starter, Growth, Enterprise)
- Gestion de propietarios de tenant
- Cupones y descuentos
- Historial de cambios de suscripcion
- Facturacion automatica
- Metodos de pago (tarjetas, SPEI)

---

### MGN-017: Payments POS

**Proposito:** Integraciones con terminales de pago (MercadoPago, Clip)

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `integrations` |
| Tablas | payment_providers, payment_credentials, payment_terminals, payment_transactions, refunds, webhook_logs, reconciliation_batches |
| Endpoints | 20+ |
| Dependencias | MGN-001, MGN-004, MGN-010 Financial |
| Usado por | Verticales POS |

**Funcionalidades:**
- Multi-provider: MercadoPago (OAuth) y Clip (API Keys)
- Registro de terminales por ubicacion
- Procesamiento de transacciones
- Reembolsos parciales y totales
- Webhooks para notificaciones
- Conciliacion de transacciones
- Generacion de asientos contables
- Manejo de comisiones por provider

---

### MGN-018: WhatsApp Business

**Proposito:** Integracion con WhatsApp Business Cloud API

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `messaging` |
| Tablas | whatsapp_accounts, whatsapp_templates, whatsapp_conversations, whatsapp_messages, chatbot_flows, chatbot_nodes, chatbot_sessions, whatsapp_campaigns |
| Endpoints | 25+ |
| Dependencias | MGN-001, MGN-004, MGN-005 Catalogs |
| Usado por | MGN-019 AI Agents |

**Funcionalidades:**
- Cuentas de WhatsApp Business por tenant
- Templates de mensajes (HSM) aprobados por Meta
- Conversaciones bidireccionales
- Chatbots con flujos visuales
- Campañas de marketing masivo
- Opt-in/opt-out de contactos
- Metricas de entrega y lectura
- Webhooks de WhatsApp Cloud API

---

### MGN-019: AI Agents

**Proposito:** Agentes inteligentes con RAG para automatizacion

| Aspecto | Detalle |
|---------|---------|
| Schema BD | `ai_agents` |
| Tablas | agents, knowledge_bases, agent_knowledge_bases, kb_documents, kb_chunks, tool_definitions, agent_tools, conversations, messages, tool_executions, feedback, usage_logs |
| Endpoints | 30+ |
| Dependencias | MGN-001, MGN-004, MGN-018 WhatsApp |
| Usado por | Verticales |

**Funcionalidades:**
- Agentes configurables por tenant
- Knowledge bases con documentos
- RAG con pgvector (embeddings 1536 dims)
- Definicion de tools/funciones
- Conversaciones con historial
- Ejecucion de tools en tiempo real
- Feedback de usuarios (thumbs up/down)
- Metricas de uso y tokens
- Integracion con WhatsApp como canal

---

## Orden de Implementacion Recomendado

```
Fase 1: Foundation
├── MGN-001 Auth
├── MGN-002 Users
├── MGN-003 Roles
└── MGN-004 Tenants

Fase 2: Core Business
├── MGN-005 Catalogs
├── Partners (parte de Catalogs)
├── Products (parte de Catalogs)
├── MGN-011 Inventory
├── MGN-012 Purchasing
├── MGN-013 Sales
└── MGN-010 Financial

Fase 3: Extended
├── MGN-006 Settings
├── MGN-007 Audit
├── MGN-008 Notifications
├── MGN-009 Reports
├── MGN-014 CRM
└── MGN-015 Projects

Fase 4: SaaS Platform
├── MGN-016 Billing (depende de MGN-004)
├── MGN-017 Payments POS (depende de MGN-010)
├── MGN-018 WhatsApp Business (depende de MGN-005)
└── MGN-019 AI Agents (depende de MGN-018)
```

---

## Dependencias entre Modulos

```mermaid
graph TD
    MGN001[MGN-001 Auth] --> MGN002[MGN-002 Users]
    MGN001 --> MGN004[MGN-004 Tenants]
    MGN002 --> MGN003[MGN-003 Roles]
    MGN004 --> MGN005[MGN-005 Catalogs]
    MGN005 --> MGN010[MGN-010 Financial]
    MGN005 --> MGN011[MGN-011 Inventory]
    MGN011 --> MGN012[MGN-012 Purchasing]
    MGN011 --> MGN013[MGN-013 Sales]
    MGN010 --> MGN012
    MGN010 --> MGN013
    MGN005 --> MGN014[MGN-014 CRM]
    MGN002 --> MGN015[MGN-015 Projects]

    %% SaaS Platform Modules
    MGN004 --> MGN016[MGN-016 Billing]
    MGN010 --> MGN017[MGN-017 Payments POS]
    MGN005 --> MGN018[MGN-018 WhatsApp]
    MGN018 --> MGN019[MGN-019 AI Agents]
    MGN016 --> MGN017
    MGN016 --> MGN018
```

---

## Proximas Acciones

1. **Completar documentacion MGN-001 Auth**
   - DDL Specification
   - Especificacion Backend
   - User Stories

2. **Completar documentacion MGN-002 Users**
   - Mismos entregables

3. **Iniciar MGN-003 Roles**
   - Requerimientos funcionales
   - Diseno de RBAC

4. **Planificar Fase 4: SaaS Platform**
   - MGN-016 Billing: Per-seat pricing, feature flags
   - MGN-017 Payments POS: MercadoPago, Clip
   - MGN-018 WhatsApp Business: Cloud API, chatbots
   - MGN-019 AI Agents: RAG, pgvector, tools

---

*Ultima actualizacion: Diciembre 2025*
