# DOMAIN MODELS - ERP CONSTRUCCION

**Fecha:** 2025-12-05
**Version:** 1.0.0
**Patron:** Domain-Driven Design (DDD)

---

## Resumen

Esta seccion contiene los modelos de dominio para el ERP de Construccion, organizados por contexto delimitado (Bounded Context) siguiendo principios de Domain-Driven Design.

---

## Contextos Delimitados (Bounded Contexts)

| Contexto | Modulos | Agregados | Entidades | Descripcion |
|----------|---------|-----------|-----------|-------------|
| [Project Management](PROJECT-CONTEXT.md) | MAI-002, MAI-003, MAI-005 | 4 | 15 | Gestion de proyectos, presupuestos y avances |
| [Compliance](COMPLIANCE-CONTEXT.md) | MAI-011 | 2 | 8 | Cumplimiento INFONAVIT |
| [Finance](FINANCE-CONTEXT.md) | MAE-014 | 3 | 12 | Finanzas y controlling |
| [Assets](ASSETS-CONTEXT.md) | MAE-015 | 2 | 10 | Activos y mantenimiento |
| [Documents](DOCUMENTS-CONTEXT.md) | MAE-016 | 2 | 8 | Gestion documental |

---

## Glosario Ubicuo (Ubiquitous Language)

### Terminos de Proyecto

| Termino | Definicion | Sinonimos |
|---------|------------|-----------|
| **Proyecto** | Obra de construccion con presupuesto y cronograma | Obra |
| **Desarrollo** | Fraccionamiento o conjunto habitacional | Fraccionamiento |
| **Seccion** | Subdivision de un desarrollo (manzana) | Manzana, Etapa |
| **Vivienda** | Unidad habitacional individual | Lote, Casa, Departamento |
| **Prototipo** | Modelo base de vivienda con especificaciones | Modelo |

### Terminos de Presupuesto

| Termino | Definicion | Sinonimos |
|---------|------------|-----------|
| **Partida** | Agrupacion de conceptos (ej: Cimentacion) | Capitulo |
| **Concepto** | Actividad con precio unitario | Rubro, Concepto de obra |
| **APU** | Analisis de Precio Unitario con desglose | Precio unitario |
| **Explosion** | Calculo de materiales totales del presupuesto | Explosionado |

### Terminos de Control

| Termino | Definicion | Sinonimos |
|---------|------------|-----------|
| **Avance** | Progreso registrado de una actividad | Progreso |
| **Estimacion** | Documento de cobro por avance ejecutado | Generador |
| **Bitacora** | Registro diario de eventos de obra | Log de obra |
| **Incidencia** | Evento que afecta el avance o calidad | Problema |

### Terminos Financieros

| Termino | Definicion | Sinonimos |
|---------|------------|-----------|
| **Poliza** | Asiento contable con debitos y creditos | Entry |
| **CxP** | Cuenta por pagar a proveedor | AP |
| **CxC** | Cuenta por cobrar a cliente | AR |
| **Cash Flow** | Flujo de efectivo proyectado/real | Flujo de caja |

---

## Diagrama de Contextos

```
                    +--------------------+
                    |    Core Domain     |
                    |  (ERP Generico)    |
                    +--------------------+
                            |
        +-------------------+-------------------+
        |                   |                   |
        v                   v                   v
+---------------+   +---------------+   +---------------+
|   Project     |   |   Finance     |   |   Assets      |
|  Management   |   |  & Controlling|   | & Maintenance |
+---------------+   +---------------+   +---------------+
        |                   |                   |
        v                   |                   |
+---------------+           |           +---------------+
|  Compliance   |<----------+---------->|   Documents   |
|  (INFONAVIT)  |                       |     (DMS)     |
+---------------+                       +---------------+
```

---

## Relaciones entre Contextos

### Project Management -> Finance
- Estimaciones generan CxC
- Ordenes de compra generan CxP
- Avances actualizan costos reales

### Project Management -> Compliance
- Proyectos se registran en programas INFONAVIT
- Avances se reportan como evidencia
- Auditorias vinculadas a proyectos

### Project Management -> Documents
- Planos asociados a proyectos
- Evidencias fotograficas de avances
- Contratos y permisos por proyecto

### Finance -> Documents
- Facturas digitales almacenadas
- Polizas como documentos

### Assets -> Project Management
- Activos asignados a proyectos
- Costos de maquinaria en presupuestos

---

## Patrones de Diseño

### Aggregate Root
Cada contexto tiene agregados claramente definidos:
- `Project` es agregado raiz de viviendas, presupuestos
- `Budget` es agregado raiz de partidas y conceptos
- `Audit` es agregado raiz de hallazgos

### Value Objects
- `Money` para cantidades monetarias
- `Percentage` para porcentajes
- `Location` para coordenadas GPS
- `Period` para rangos de fechas

### Domain Events
- `ProjectCreated`
- `ProgressRecorded`
- `EstimationApproved`
- `PaymentReceived`
- `MaintenanceCompleted`

---

## Referencias

- [DDL Specifications](../database-design/schemas/)
- [Epic Documentation](../../08-epicas/)
- [Module Definitions](../../02-definicion-modulos/)

---

*Ultima actualizacion: 2025-12-05*
