# Componentes Específicos de Construcción (No Migrar)

**Documento:** Análisis de Componentes Específicos de Construcción
**Proyecto:** ERP Construcción
**Fecha:** 2025-11-23
**Analista:** Architecture-Analyst
**Estado:** Completado

---

## Introducción

Este documento identifica los componentes del ERP Construcción que son **específicos de la industria de construcción** y que **NO deben migrarse** al ERP Genérico, sino permanecer en el proyecto `erp-construccion`.

### Criterios para Considerar un Componente Específico

Un componente se considera específico de construcción si cumple **al menos 2 de los siguientes criterios**:

1. **Lógica de Negocio Única:** Contiene reglas de negocio exclusivas de construcción/INFONAVIT
2. **Entidades Únicas:** Maneja entidades que solo existen en construcción (lotes, manzanas, prototipos de vivienda)
3. **Regulaciones Específicas:** Implementa cumplimiento normativo específico (INFONAVIT, IMSS construcción)
4. **Cálculos Especializados:** Realiza cálculos únicos de construcción (estimaciones, curva S, avances físicos)
5. **Bajo Potencial de Reutilización:** Menos del 30% de otros proyectos lo necesitarían

---

## 1. COMPONENTES DE BASE DE DATOS ESPECÍFICOS

### 1.1 Schemas Específicos de Construcción

| Schema | Ubicación | Descripción | Razón Específica | Permanece en |
|--------|-----------|-------------|------------------|--------------|
| `project_management` | construccion/database/ddl/ | Proyectos, manzanas, lotes, prototipos de vivienda | Estructura jerárquica única de fraccionamientos INFONAVIT | erp-construccion |
| `construction_management` | construccion/database/ddl/ | Control de obra, avances físicos, recursos de construcción | Lógica de control de obra específica | erp-construccion |
| `quality_management` | construccion/database/ddl/ | Inspecciones, pruebas de calidad, postventa de vivienda | QA específico de construcción | erp-construccion |
| `infonavit_management` | construccion/database/ddl/ | Integración INFONAVIT, cumplimiento normativo | Regulación específica México INFONAVIT | erp-construccion |

**Total:** 4 schemas específicos (de 7 totales)

### 1.2 Tablas Específicas por Schema

#### Schema: project_management (100% específico)

| Tabla | Descripción | Razón Específica | Permanece en |
|-------|-------------|------------------|--------------|
| `projects` | Proyectos de construcción | Campos específicos: tipo_vivienda, normas_infonavit, etapa_obra | erp-construccion |
| `development_phases` | Fases de desarrollo (etapas de obra) | Nomenclatura INFONAVIT, avances por etapa | erp-construccion |
| `blocks` | Manzanas del fraccionamiento | Concepto único de urbanización | erp-construccion |
| `lots` | Lotes individuales | Identificación catastral, escrituración | erp-construccion |
| `housing_prototypes` | Prototipos de vivienda | Modelos de casa (1 recámara, 2 recámaras, etc.) | erp-construccion |
| `prototype_assignments` | Asignación de prototipo a lote | Relación específica construcción | erp-construccion |
| `project_teams` | Equipos de proyecto | Roles específicos: residente, maestro de obra | erp-construccion |
| `project_milestones` | Hitos de proyecto de construcción | Hitos específicos: cimentación, estructura, acabados | erp-construccion |

**Subtotal:** 8 tablas específicas

#### Schema: construction_management (100% específico)

| Tabla | Descripción | Razón Específica | Permanece en |
|-------|-------------|------------------|--------------|
| `work_schedules` | Programas de obra | Curva S, ruta crítica | erp-construccion |
| `work_schedule_items` | Conceptos del programa | WBS específico de construcción | erp-construccion |
| `physical_progress` | Avances físicos de obra | Cálculo % avance por concepto | erp-construccion |
| `progress_evidence` | Evidencias fotográficas de avance | Geo-localización de fotos de obra | erp-construccion |
| `quality_checklists` | Checklists de calidad en obra | Listas específicas de construcción | erp-construccion |
| `construction_resources` | Recursos de construcción | Maquinaria, herramienta específica | erp-construccion |
| `labor_tracking` | Tracking de mano de obra | Jornal, cuadrillas, destajistas | erp-construccion |
| `material_usage` | Consumo de materiales en obra | Explosión de insumos por concepto | erp-construccion |

**Subtotal:** 8 tablas específicas

#### Schema: financial_management (10% específico)

| Tabla | Descripción | Razón Específica | Permanece en |
|-------|-------------|------------------|--------------|
| `construction_estimates` | Estimaciones de obra | Documento específico: generadores, números | erp-construccion |

**Subtotal:** 1 tabla específica (el resto es genérico)

#### Schema: quality_management (100% específico)

| Tabla | Descripción | Razón Específica | Permanece en |
|-------|-------------|------------------|--------------|
| `quality_inspections` | Inspecciones de calidad | Inspecciones específicas construcción | erp-construccion |
| `inspection_items` | Items de inspección | Checklist construcción (cimentación, muros, etc.) | erp-construccion |
| `test_results` | Resultados de pruebas | Pruebas de laboratorio (concreto, suelo) | erp-construccion |
| `non_conformities` | No conformidades | Issues específicos de construcción | erp-construccion |
| `warranty_claims` | Reclamaciones de garantía | Garantías de vivienda post-entrega | erp-construccion |
| `post_sale_services` | Servicios postventa | Atención post-entrega de vivienda | erp-construccion |

**Subtotal:** 6 tablas específicas

#### Schema: infonavit_management (100% específico)

| Tabla | Descripción | Razón Específica | Permanece en |
|-------|-------------|------------------|--------------|
| `beneficiaries` | Derechohabientes INFONAVIT | Específico México INFONAVIT | erp-construccion |
| `infonavit_credits` | Créditos INFONAVIT | NSS, monto crédito, modalidad | erp-construccion |
| `lot_assignments` | Asignación lote a derechohabiente | Proceso INFONAVIT de asignación | erp-construccion |
| `escrituracion` | Proceso de escrituración | Trámite legal específico | erp-construccion |
| `delivery_acts` | Actas de entrega-recepción | Documento legal entrega vivienda | erp-construccion |
| `infonavit_compliance` | Cumplimiento normativo INFONAVIT | Reportes regulatorios | erp-construccion |
| `housing_subsidies` | Subsidios de vivienda | Cofinavit, subsidios federales | erp-construccion |

**Subtotal:** 7 tablas específicas

**Total Tablas Específicas:** 30 tablas (de ~70 totales = 43%)

---

## 2. COMPONENTES DE BACKEND ESPECÍFICOS

### 2.1 Módulos Backend Específicos

| Módulo | Ubicación | Descripción | Razón Específica | Permanece en |
|--------|-----------|-------------|------------------|--------------|
| `projects` | backend/src/modules/projects/ | Gestión de proyectos de construcción | Lógica de fraccionamientos, manzanas, lotes | erp-construccion |
| `budgets` | backend/src/modules/budgets/ | Presupuestos de obra | Explosión de insumos, APUs construcción | erp-construccion |
| `construction` | backend/src/modules/construction/ | Control de obra y avances | Curva S, ruta crítica, avances físicos | erp-construccion |
| `estimates` | backend/src/modules/estimates/ | Estimaciones de obra | Generadores, números generadores | erp-construccion |
| `quality` | backend/src/modules/quality/ | Calidad y postventa | QA específico construcción | erp-construccion |
| `infonavit` | backend/src/modules/infonavit/ | Integración INFONAVIT | API INFONAVIT, cumplimiento | erp-construccion |
| `beneficiaries` | backend/src/modules/beneficiaries/ | CRM Derechohabientes | Gestión específica INFONAVIT | erp-construccion |
| `contracts` | backend/src/modules/contracts/ | Contratos de construcción | Contratos obra, subcontratistas | erp-construccion |

**Total:** 8 módulos backend específicos (de ~13 totales = 62%)

### 2.2 Servicios Específicos

| Servicio | Archivo | Descripción | Razón Específica | Permanece en |
|----------|---------|-------------|------------------|--------------|
| `CurvaSCalculator` | services/curva-s.service.ts | Cálculo de curva S | Algoritmo específico construcción | erp-construccion |
| `PhysicalProgressCalculator` | services/progress.service.ts | Cálculo de avances físicos | Lógica de ponderación de conceptos | erp-construccion |
| `EstimateGenerator` | services/estimate.service.ts | Generación de estimaciones | Formato específico construcción | erp-construccion |
| `INFONAVITApiService` | services/infonavit-api.service.ts | Integración API INFONAVIT | API específica México | erp-construccion |
| `APUCalculator` | services/apu.service.ts | Análisis de precios unitarios | Explosión de insumos construcción | erp-construccion |

**Total:** 5 servicios específicos

---

## 3. COMPONENTES DE FRONTEND ESPECÍFICOS

### 3.1 Features Específicas

| Feature | Ubicación | Descripción | Razón Específica | Permanece en |
|---------|-----------|-------------|------------------|--------------|
| `projects` | frontend/src/features/projects/ | Gestión de proyectos de construcción | UI específica: manzanas, lotes | erp-construccion |
| `construction` | frontend/src/features/construction/ | Control de obra | Dashboard curva S, avances | erp-construccion |
| `estimates` | frontend/src/features/estimates/ | Estimaciones | Generadores, formato específico | erp-construccion |
| `quality` | frontend/src/features/quality/ | Calidad y postventa | Checklists construcción | erp-construccion |
| `infonavit` | frontend/src/features/infonavit/ | INFONAVIT | UI derechohabientes, créditos | erp-construccion |
| `beneficiaries` | frontend/src/features/beneficiaries/ | CRM Derechohabientes | Pipeline ventas INFONAVIT | erp-construccion |

**Total:** 6 features específicas

### 3.2 Componentes UI Específicos

| Componente | Archivo | Descripción | Razón Específica | Permanece en |
|------------|---------|-------------|------------------|--------------|
| `LotSelector` | components/LotSelector.tsx | Selector de lotes en manzana | Visualización plano manzana | erp-construccion |
| `CurvaSChart` | components/CurvaSChart.tsx | Gráfica curva S | Chart específico construcción | erp-construccion |
| `ProgressTracker` | components/ProgressTracker.tsx | Tracker de avances | UI específica % avances | erp-construccion |
| `EstimateForm` | components/EstimateForm.tsx | Formulario de estimación | Generadores, conceptos obra | erp-construccion |
| `QualityChecklist` | components/QualityChecklist.tsx | Checklist de calidad | Items específicos construcción | erp-construccion |
| `PrototypeViewer` | components/PrototypeViewer.tsx | Visualizador de prototipos | Renders 3D de viviendas | erp-construccion |
| `INFONAVITForm` | components/INFONAVITForm.tsx | Formulario INFONAVIT | Campos específicos INFONAVIT | erp-construccion |

**Total:** 7 componentes UI específicos (de ~50 totales = 14%)

### 3.3 Páginas Específicas

| Página | Ruta | Descripción | Razón Específica | Permanece en |
|--------|------|-------------|------------------|--------------|
| Projects List | `/projects` | Lista de proyectos construcción | Filtros específicos construcción | erp-construccion |
| Project Detail | `/projects/:id` | Detalle proyecto (manzanas, lotes) | Vista específica fraccionamiento | erp-construccion |
| Budgets | `/budgets` | Presupuestos de obra | APUs, explosión insumos | erp-construccion |
| Construction Control | `/construction` | Control de obra | Curva S, avances físicos | erp-construccion |
| Estimates | `/estimates` | Estimaciones | Generadores, formato específico | erp-construccion |
| Quality | `/quality` | Calidad y postventa | Inspecciones, garantías | erp-construccion |
| INFONAVIT | `/infonavit` | Dashboard INFONAVIT | Derechohabientes, créditos | erp-construccion |

**Total:** 7 páginas específicas (de ~30 totales = 23%)

---

## 4. LÓGICA DE NEGOCIO ESPECÍFICA

### 4.1 Cálculos Especializados

| Cálculo | Descripción | Razón Específica | Permanece en |
|---------|-------------|------------------|--------------|
| **Curva S** | Programación de obra con curva S | Algoritmo específico construcción | erp-construccion |
| **Avance Físico** | Cálculo de % avance ponderado | Ponderación por concepto y monto | erp-construccion |
| **Explosión de Insumos** | APU → Materiales/Mano de obra | Análisis de precios unitarios | erp-construccion |
| **Estimación de Obra** | Generación de estimaciones | Formato constructor/supervisor | erp-construccion |
| **Presupuesto de Prototipo** | Presupuesto base por m² | Cálculo específico vivienda | erp-construccion |

### 4.2 Workflows Específicos

| Workflow | Descripción | Razón Específica | Permanece en |
|----------|-------------|------------------|--------------|
| **Licitación → Obra → Entrega** | Ciclo de vida proyecto construcción | Estados específicos construcción | erp-construccion |
| **Asignación de Lotes** | Derechohabiente → Lote | Proceso INFONAVIT | erp-construccion |
| **Estimación → Pago** | Flujo estimaciones de obra | Formato y aprobaciones específicas | erp-construccion |
| **Inspección → Entrega** | Calidad y entrega de vivienda | QA + acta entrega-recepción | erp-construccion |

### 4.3 Validaciones Específicas

| Validación | Descripción | Razón Específica | Permanece en |
|------------|-------------|------------------|--------------|
| **NSS válido** | Validar Número de Seguro Social | Formato IMSS México | erp-construccion |
| **Crédito INFONAVIT** | Validar monto crédito vs precio vivienda | Reglas INFONAVIT | erp-construccion |
| **% Avance Físico** | Validar avance ≤ 100% | Lógica de control de obra | erp-construccion |
| **Lote disponible** | Validar lote no asignado | Regla de asignación única | erp-construccion |

---

## 5. RESUMEN CUANTITATIVO

| Categoría | Componentes Específicos | Componentes Totales | % Específico |
|-----------|------------------------|---------------------|--------------|
| **Schemas DB** | 4 | 7 | 57% |
| **Tablas DB** | 30 | 70+ | 43% |
| **Módulos Backend** | 8 | 13 | 62% |
| **Servicios Backend** | 5 | 12 | 42% |
| **Features Frontend** | 6 | 10 | 60% |
| **Componentes UI** | 7 | 50 | 14% |
| **Páginas** | 7 | 30+ | 23% |
| **TOTAL** | **67 componentes** | **235+ componentes** | **~29%** |

**Complemento:**
- Componentes Genéricos: 143 (61%)
- Componentes Específicos: 67 (29%)
- Componentes Compartidos (adaptables): 25 (10%)

---

## 6. COMPONENTES COMPARTIDOS (Adaptar con Configuración)

Existen componentes que podrían compartirse entre genérico y específico mediante configuración:

| Componente | Tipo | Estrategia | Ubicación |
|------------|------|------------|-----------|
| `DataTable` | UI | Genérico con columnas configurables | erp-generic (shared) |
| `Dashboard` | UI | Template genérico + widgets específicos | erp-generic (template) + erp-construccion (widgets) |
| `Reports` | Backend | Motor de reportes genérico + templates específicos | erp-generic (engine) + erp-construccion (templates) |
| `Notifications` | Backend | Sistema genérico + eventos específicos | erp-generic (system) + erp-construccion (events) |
| `Workflows` | Backend | Engine genérico + estados específicos | erp-generic (engine) + erp-construccion (definitions) |

**Total:** 5 componentes compartidos/configurables

---

## 7. JUSTIFICACIÓN POR QUÉ NO MIGRAR

### 7.1 Bajo Potencial de Reutilización

**Componentes de INFONAVIT:**
- **Uso:** Solo México, solo vivienda social
- **Proyectos que lo usarían:** 1 (solo ERP Construcción)
- **Reutilización:** 0%

**Componentes de Fraccionamientos:**
- **Uso:** Específico de urbanización/vivienda horizontal
- **Proyectos que lo usarían:** 1-2 (solo construcción, quizá inmobiliaria)
- **Reutilización:** 10%

**Componentes de Control de Obra:**
- **Uso:** Construcción, posiblemente manufactura por proyectos
- **Proyectos que lo usarían:** 2 (construcción, mecánicas con adaptación)
- **Reutilización:** 20%

### 7.2 Complejidad de Abstracción

Algunos componentes específicos son tan complejos que intentar abstraerlos al genérico resultaría en:
1. **Over-engineering:** Demasiada complejidad para soportar edge cases
2. **Pérdida de simplicidad:** El genérico se volvería complejo
3. **Mantenibilidad reducida:** Difícil de mantener
4. **ROI negativo:** Más esfuerzo de abstracción que beneficio

**Ejemplos:**
- **Curva S:** Algoritmo complejo, específico construcción
- **Estimaciones:** Formato muy específico, regulado
- **APUs:** Explosión de insumos única construcción

---

## 8. ESTRATEGIA DE MANTENIMIENTO

### 8.1 Componentes Específicos en ERP Construcción

**Ubicación:**
```
projects/
└── erp-construccion/
    ├── apps/
    │   ├── backend/
    │   │   └── src/
    │   │       └── modules/
    │   │           ├── projects/       # Específico
    │   │           ├── construction/   # Específico
    │   │           ├── estimates/      # Específico
    │   │           ├── quality/        # Específico
    │   │           ├── infonavit/      # Específico
    │   │           └── beneficiaries/  # Específico
    │   │
    │   └── frontend/
    │       └── src/
    │           └── features/
    │               ├── projects/       # Específico
    │               ├── construction/   # Específico
    │               ├── estimates/      # Específico
    │               └── infonavit/      # Específico
    │
    └── database/
        └── ddl/
            ├── project_management/     # Específico
            ├── construction_management/ # Específico
            ├── quality_management/     # Específico
            └── infonavit_management/   # Específico
```

### 8.2 Dependencias con ERP Genérico

**ERP Construcción depende de ERP Genérico:**
```json
// erp-construccion/package.json
{
  "dependencies": {
    "@erp-generic/core": "^1.0.0",          // Auth, RBAC, Companies
    "@erp-generic/financial": "^1.0.0",     // Contabilidad base
    "@erp-generic/purchasing": "^1.0.0",    // Compras base
    "@erp-generic/ui-components": "^1.0.0"  // Componentes UI
  }
}
```

**Relación:**
- ERP Construcción **EXTIENDE** ERP Genérico
- ERP Construcción **NO modifica** ERP Genérico
- ERP Genérico es **independiente** de Construcción

---

## 9. CONCLUSIONES

### 9.1 Hallazgos Principales

1. **29% de componentes son específicos:** 67 de 235 componentes deben permanecer en ERP Construcción
2. **INFONAVIT es altamente específico:** 7 tablas + 2 módulos + 2 features solo para México
3. **Control de Obra tiene potencial limitado:** Solo 20% reutilización (construcción + mecánicas)
4. **UI es mayormente genérica:** Solo 14% de componentes UI son específicos

### 9.2 Recomendaciones

1. **NO migrar componentes INFONAVIT:** 0% reutilización en otros proyectos
2. **NO migrar componentes de fraccionamientos:** Muy específicos de vivienda horizontal
3. **CONSIDERAR abstraer workflows:** Motor de workflows genérico + estados específicos
4. **MANTENER separación clara:** ERP Construcción extiende, no modifica Genérico

### 9.3 Validación de la Decisión

**Criterios de éxito:**
- ✅ ERP Genérico NO contiene lógica de construcción
- ✅ ERP Construcción puede evolucionar independientemente
- ✅ Otros proyectos (Vidrio, Mecánicas) NO necesitan componentes específicos construcción
- ✅ Mantenibilidad: Cada proyecto es responsable de su lógica específica

---

**Fecha de Creación:** 2025-11-23
**Versión:** 1.0
**Estado:** Completado
**Próximo Documento:** MEJORAS-ARQUITECTONICAS.md
