# 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