307 lines
9.5 KiB
Markdown
307 lines
9.5 KiB
Markdown
# Database Map - ERP Construccion
|
|
|
|
**Proyecto:** ERP Construccion
|
|
**Version:** 1.0
|
|
**Ultima Actualizacion:** 2025-12-12
|
|
**Total Schemas:** 7
|
|
**Total Tablas:** 110
|
|
|
|
---
|
|
|
|
## NAVEGACION RAPIDA
|
|
|
|
```
|
|
database/
|
|
├── _MAP.md # Este archivo (indice maestro)
|
|
├── schemas/ # DDL por schema
|
|
│ ├── 01-construction-schema-ddl.sql # 24 tablas
|
|
│ ├── 02-hr-schema-ddl.sql # 8 tablas
|
|
│ ├── 03-hse-schema-ddl.sql # 58 tablas
|
|
│ ├── 04-estimates-schema-ddl.sql # 8 tablas
|
|
│ ├── 05-infonavit-schema-ddl.sql # 8 tablas
|
|
│ ├── 06-inventory-ext-schema-ddl.sql # 4 tablas
|
|
│ └── 07-purchase-ext-schema-ddl.sql # 5 tablas
|
|
├── init-scripts/ # Scripts de inicializacion
|
|
│ └── 01-init-database.sql
|
|
├── migrations/ # Migraciones TypeORM
|
|
├── seeds/ # Datos de prueba
|
|
└── HERENCIA-ERP-CORE.md # Referencia a ERP-Core
|
|
```
|
|
|
|
---
|
|
|
|
## SCHEMAS OVERVIEW
|
|
|
|
| # | Schema | Tablas | Descripcion | Estado |
|
|
|---|--------|--------|-------------|--------|
|
|
| 1 | `construction` | 24 | Proyectos, estructura, avances | ✅ DDL |
|
|
| 2 | `hr` | 8 | RRHH, asistencias, cuadrillas | ✅ DDL |
|
|
| 3 | `hse` | 58 | Seguridad, incidentes, EPP | ✅ DDL |
|
|
| 4 | `estimates` | 8 | Estimaciones, anticipos | ✅ DDL |
|
|
| 5 | `infonavit` | 8 | INFONAVIT, derechohabientes | ✅ DDL |
|
|
| 6 | `inventory` | 4 | Extension inventario obra | ✅ DDL |
|
|
| 7 | `purchase` | 5 | Extension compras obra | ✅ DDL |
|
|
|
|
---
|
|
|
|
## DETALLE POR SCHEMA
|
|
|
|
### 1. Schema: `construction` (24 tablas)
|
|
|
|
**DDL:** `schemas/01-construction-schema-ddl.sql`
|
|
|
|
#### Estructura de Proyecto (8 tablas)
|
|
|
|
| Tabla | Descripcion | FK Principales |
|
|
|-------|-------------|----------------|
|
|
| `proyectos` | Proyectos/obras | `auth.tenants`, `auth.users` |
|
|
| `fraccionamientos` | Fraccionamientos | `proyectos` |
|
|
| `etapas` | Etapas de construccion | `fraccionamientos` |
|
|
| `manzanas` | Manzanas | `etapas` |
|
|
| `lotes` | Lotes/unidades | `manzanas`, `prototipos` |
|
|
| `torres` | Torres (vertical) | `fraccionamientos` |
|
|
| `niveles` | Niveles/pisos | `torres` |
|
|
| `departamentos` | Departamentos | `niveles`, `prototipos` |
|
|
| `prototipos` | Tipos de vivienda | `fraccionamientos` |
|
|
|
|
#### Presupuestos (3 tablas)
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `conceptos` | Catalogo de conceptos de obra |
|
|
| `presupuestos` | Presupuestos maestros |
|
|
| `presupuesto_partidas` | Partidas presupuestales |
|
|
|
|
#### Programacion y Avances (5 tablas)
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `programa_obra` | Programa general de obra |
|
|
| `programa_actividades` | Actividades programadas |
|
|
| `avances_obra` | Registro de avances |
|
|
| `fotos_avance` | Evidencias fotograficas |
|
|
| `bitacora_obra` | Bitacora de obra |
|
|
|
|
#### Calidad (5 tablas)
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `checklists` | Checklists de calidad |
|
|
| `checklist_items` | Items de checklist |
|
|
| `inspecciones` | Inspecciones de calidad |
|
|
| `inspeccion_resultados` | Resultados |
|
|
| `tickets_postventa` | Tickets de postventa |
|
|
|
|
#### Contratos (3 tablas)
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `subcontratistas` | Catalogo subcontratistas |
|
|
| `contratos` | Contratos de obra |
|
|
| `contrato_partidas` | Partidas contratadas |
|
|
|
|
---
|
|
|
|
### 2. Schema: `hr` (8 tablas)
|
|
|
|
**DDL:** `schemas/02-hr-schema-ddl.sql`
|
|
|
|
| Tabla | Descripcion | Caracteristicas |
|
|
|-------|-------------|-----------------|
|
|
| `employees` | Empleados base | Extension de core |
|
|
| `employee_construction` | Extension construccion | Campos especificos |
|
|
| `puestos` | Catalogo de puestos | - |
|
|
| `asistencias` | Registro asistencias | GPS, biometrico |
|
|
| `asistencia_biometrico` | Datos biometricos | - |
|
|
| `geocercas` | Geocercas para GPS | PostGIS |
|
|
| `destajo` | Trabajo a destajo | - |
|
|
| `destajo_detalle` | Mediciones destajo | - |
|
|
| `cuadrillas` | Cuadrillas de trabajo | - |
|
|
| `cuadrilla_miembros` | Miembros de cuadrilla | - |
|
|
| `employee_fraccionamientos` | Asignacion a fracc | - |
|
|
|
|
---
|
|
|
|
### 3. Schema: `hse` (58 tablas)
|
|
|
|
**DDL:** `schemas/03-hse-schema-ddl.sql`
|
|
|
|
#### Gestion de Incidentes (5 tablas)
|
|
- `incidentes`, `incidente_involucrados`, `incidente_acciones`
|
|
- `incidente_evidencias`, `incidente_causas`
|
|
|
|
#### Control de Capacitaciones (6 tablas)
|
|
- `capacitaciones`, `capacitacion_participantes`, `capacitacion_materiales`
|
|
- `certificaciones`, `certificacion_empleados`, `plan_capacitacion`
|
|
|
|
#### Inspecciones de Seguridad (7 tablas)
|
|
- `inspecciones_seguridad`, `inspeccion_hallazgos`
|
|
- `checklist_seguridad`, `checklist_seguridad_items`
|
|
- `areas_riesgo`, `rondas_seguridad`, `ronda_puntos`
|
|
|
|
#### Control de EPP (7 tablas)
|
|
- `epp_catalogo`, `epp_asignaciones`, `epp_entregas`
|
|
- `epp_devoluciones`, `epp_inspecciones`
|
|
- `epp_vida_util`, `epp_stock`
|
|
|
|
#### Cumplimiento STPS (11 tablas)
|
|
- `normas_stps`, `requisitos_norma`, `cumplimiento_norma`
|
|
- `auditorias_stps`, `auditoria_hallazgos`
|
|
- `planes_accion`, `acciones_correctivas`
|
|
- `comision_seguridad`, `comision_miembros`
|
|
- `recorridos_comision`, `actas_comision`
|
|
|
|
#### Gestion Ambiental (9 tablas)
|
|
- `impactos_ambientales`, `residuos`, `residuo_movimientos`
|
|
- `manifiestos_residuos`, `monitoreo_ambiental`
|
|
- `permisos_ambientales`, `programas_ambientales`
|
|
- `indicadores_ambientales`, `eventos_ambientales`
|
|
|
|
#### Permisos de Trabajo (8 tablas)
|
|
- `permisos_trabajo`, `permiso_riesgos`, `permiso_autorizaciones`
|
|
- `permisos_altura`, `permisos_caliente`, `permisos_confinado`
|
|
- `permisos_electrico`, `permisos_excavacion`
|
|
|
|
#### Indicadores HSE (7 tablas)
|
|
- `kpi_configuracion`, `kpi_valores`, `kpi_metas`
|
|
- `dashboards_hse`, `alertas_hse`
|
|
- `reportes_hse`, `estadisticas_periodo`
|
|
|
|
---
|
|
|
|
### 4. Schema: `estimates` (8 tablas)
|
|
|
|
**DDL:** `schemas/04-estimates-schema-ddl.sql`
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `estimaciones` | Estimaciones de obra |
|
|
| `estimacion_conceptos` | Conceptos estimados |
|
|
| `generadores` | Numeros generadores |
|
|
| `anticipos` | Anticipos de obra |
|
|
| `amortizaciones` | Amortizacion de anticipos |
|
|
| `retenciones` | Retenciones (garantia, IMSS) |
|
|
| `fondo_garantia` | Fondo de garantia |
|
|
| `estimacion_workflow` | Workflow de aprobacion |
|
|
|
|
---
|
|
|
|
### 5. Schema: `infonavit` (8 tablas)
|
|
|
|
**DDL:** `schemas/05-infonavit-schema-ddl.sql`
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `registro_infonavit` | Registro RUV |
|
|
| `oferta_vivienda` | Oferta registrada |
|
|
| `derechohabientes` | Derechohabientes |
|
|
| `asignacion_vivienda` | Asignaciones |
|
|
| `actas` | Actas de entrega |
|
|
| `acta_viviendas` | Viviendas en acta |
|
|
| `reportes_infonavit` | Reportes RUV |
|
|
| `historico_puntos` | Historico puntos ecologicos |
|
|
|
|
---
|
|
|
|
### 6. Schema: `inventory` Extension (4 tablas)
|
|
|
|
**DDL:** `schemas/06-inventory-ext-schema-ddl.sql`
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `almacenes_proyecto` | Almacenes por obra |
|
|
| `requisiciones_obra` | Requisiciones desde obra |
|
|
| `requisicion_lineas` | Lineas de requisicion |
|
|
| `consumos_obra` | Consumos por lote/concepto |
|
|
|
|
---
|
|
|
|
### 7. Schema: `purchase` Extension (5 tablas)
|
|
|
|
**DDL:** `schemas/07-purchase-ext-schema-ddl.sql`
|
|
|
|
| Tabla | Descripcion |
|
|
|-------|-------------|
|
|
| `purchase_order_construction` | Extension OC |
|
|
| `supplier_construction` | Extension proveedores |
|
|
| `comparativo_cotizaciones` | Cuadro comparativo |
|
|
| `comparativo_proveedores` | Proveedores en comparativo |
|
|
| `comparativo_productos` | Productos cotizados |
|
|
|
|
---
|
|
|
|
## ORDEN DE EJECUCION DDL
|
|
|
|
```bash
|
|
# Prerequisito: ERP-Core debe estar instalado
|
|
# Schema auth.* y core.* deben existir
|
|
|
|
# 1. Construction (base)
|
|
psql $DATABASE_URL -f schemas/01-construction-schema-ddl.sql
|
|
|
|
# 2. HR (depende de construction)
|
|
psql $DATABASE_URL -f schemas/02-hr-schema-ddl.sql
|
|
|
|
# 3. HSE (depende de construction y hr)
|
|
psql $DATABASE_URL -f schemas/03-hse-schema-ddl.sql
|
|
|
|
# 4. Estimates (depende de construction)
|
|
psql $DATABASE_URL -f schemas/04-estimates-schema-ddl.sql
|
|
|
|
# 5. INFONAVIT (depende de construction)
|
|
psql $DATABASE_URL -f schemas/05-infonavit-schema-ddl.sql
|
|
|
|
# 6. Inventory Extension (depende de construction)
|
|
psql $DATABASE_URL -f schemas/06-inventory-ext-schema-ddl.sql
|
|
|
|
# 7. Purchase Extension (depende de construction)
|
|
psql $DATABASE_URL -f schemas/07-purchase-ext-schema-ddl.sql
|
|
```
|
|
|
|
---
|
|
|
|
## RELACIONES PRINCIPALES
|
|
|
|
```
|
|
auth.tenants
|
|
└── construction.proyectos
|
|
└── construction.fraccionamientos
|
|
├── construction.etapas
|
|
│ └── construction.manzanas
|
|
│ └── construction.lotes
|
|
├── construction.torres (vertical)
|
|
│ └── construction.niveles
|
|
│ └── construction.departamentos
|
|
├── hr.employee_fraccionamientos
|
|
│ └── hr.employees
|
|
└── hse.incidentes
|
|
└── hse.incidente_involucrados
|
|
└── hr.employees
|
|
```
|
|
|
|
---
|
|
|
|
## ENUMS UTILIZADOS
|
|
|
|
Ver archivo: `backend/src/shared/constants/enums.constants.ts`
|
|
|
|
Los principales enums estan definidos en:
|
|
- `PROJECT_STATUS` - Estados de proyecto
|
|
- `LOT_STATUS` - Estados de lote
|
|
- `INCIDENT_SEVERITY` - Severidad de incidentes
|
|
- `ESTIMATION_STATUS` - Estados de estimacion
|
|
- `INFONAVIT_ASSIGNMENT_STATUS` - Estados INFONAVIT
|
|
|
|
---
|
|
|
|
## REFERENCIAS
|
|
|
|
- **ERP-Core DDL:** `apps/erp-core/database/ddl/`
|
|
- **Herencia:** `HERENCIA-ERP-CORE.md`
|
|
- **Constantes SSOT:** `backend/src/shared/constants/database.constants.ts`
|
|
|
|
---
|
|
|
|
**Mantenido por:** Architecture-Analyst
|
|
**Actualizacion:** Manual al agregar/modificar schemas
|