1483 lines
43 KiB
YAML
1483 lines
43 KiB
YAML
# =============================================================================
|
|
# DATABASE INVENTORY - ERP CONSTRUCCION
|
|
# =============================================================================
|
|
# Version: 1.3.0
|
|
# Ultima actualizacion: 2025-12-09
|
|
# Proposito: Inventario canonico de objetos de base de datos
|
|
# Nomenclatura: Ver NAMING-CONVENTIONS.md
|
|
# =============================================================================
|
|
|
|
metadata:
|
|
proyecto: ERP Construccion
|
|
version: 2.1.0
|
|
fecha_actualizacion: 2025-12-09
|
|
motor: PostgreSQL 15+
|
|
extensiones: [uuid-ossp, pg_trgm, btree_gist, pgcrypto, postgis]
|
|
|
|
# =============================================================================
|
|
# HERENCIA DE ERP CORE
|
|
# =============================================================================
|
|
herencia_core:
|
|
version_core: "1.2.0"
|
|
tablas_heredadas: 144 # Total de tablas del core (actualizado 2025-12-09)
|
|
schemas_heredados:
|
|
- auth: 26 # 10 (auth.sql) + 16 (auth-extensions.sql)
|
|
- core: 12 # Partners, catálogos, monedas, UoM
|
|
- financial: 15 # Contabilidad, facturas, pagos
|
|
- inventory: 20 # 10 (inventory.sql) + 10 (inventory-extensions.sql)
|
|
- purchase: 8 # Órdenes de compra, proveedores
|
|
- sales: 10 # Órdenes de venta, clientes
|
|
- projects: 10 # Proyectos, tareas, dependencias
|
|
- hr: 6 # RRHH base, empleados
|
|
- analytics: 7 # Centros de costo, cuentas analíticas
|
|
- system: 13 # Mensajes, notificaciones, logs
|
|
- billing: 11 # SaaS multi-tenant (opcional)
|
|
- crm: 6 # CRM leads, opportunities (opcional)
|
|
referencia: "apps/erp-core/database/ddl/"
|
|
documento_herencia: "../database/HERENCIA-ERP-CORE.md"
|
|
|
|
# =============================================================================
|
|
# RESUMEN DE OBJETOS (ACTUALIZADO 2025-12-09)
|
|
# =============================================================================
|
|
resumen:
|
|
schemas_core: 12 # Heredados de erp-core
|
|
schemas_especificos: 7 # construction, hr, hse, estimates, infonavit, inventory-ext, purchase-ext
|
|
tablas_heredadas: 144 # Del core (actualizado 2025-12-09)
|
|
tablas_especificas: 110 # 24 construction + 8 hr + 58 hse + 8 estimates + 8 infonavit + 4 inventory + 5 purchase
|
|
tablas_total: 254 # 144 + 110
|
|
enums: 89 # 22 base + 67 HSE
|
|
funciones: 13
|
|
triggers: 15
|
|
rls_policies: 254 # 1 policy por tabla con tenant_id (144 core + 110 construcción)
|
|
indices: 350+
|
|
estado_implementacion:
|
|
database_core: "100%" # ERP Core validado con carga limpia
|
|
database_construccion: "100%" # DDL completo - 7 schemas, 110 tablas
|
|
backend: "5%" # Solo entidades base
|
|
frontend: "2%" # Solo estructura
|
|
ddl_files_core:
|
|
- "erp-core/database/ddl/00-prerequisites.sql"
|
|
- "erp-core/database/ddl/01-auth.sql"
|
|
- "erp-core/database/ddl/01-auth-extensions.sql"
|
|
- "erp-core/database/ddl/02-core.sql"
|
|
- "erp-core/database/ddl/03-analytics.sql"
|
|
- "erp-core/database/ddl/04-financial.sql"
|
|
- "erp-core/database/ddl/05-inventory.sql"
|
|
- "erp-core/database/ddl/05-inventory-extensions.sql"
|
|
- "erp-core/database/ddl/06-purchase.sql"
|
|
- "erp-core/database/ddl/07-sales.sql"
|
|
- "erp-core/database/ddl/08-projects.sql"
|
|
- "erp-core/database/ddl/09-system.sql"
|
|
- "erp-core/database/ddl/10-billing.sql"
|
|
- "erp-core/database/ddl/11-crm.sql"
|
|
- "erp-core/database/ddl/12-hr.sql"
|
|
ddl_files_extension:
|
|
- schemas/01-construction-schema-ddl.sql # 24 tablas
|
|
- schemas/02-hr-schema-ddl.sql # 8 tablas
|
|
- schemas/03-hse-schema-ddl.sql # 58 tablas
|
|
- schemas/04-estimates-schema-ddl.sql # 8 tablas
|
|
- schemas/05-infonavit-schema-ddl.sql # 8 tablas
|
|
- schemas/06-inventory-ext-schema-ddl.sql # 4 tablas
|
|
- schemas/07-purchase-ext-schema-ddl.sql # 5 tablas
|
|
|
|
# =============================================================================
|
|
# SCHEMAS - NOMENCLATURA UNIFICADA
|
|
# =============================================================================
|
|
schemas:
|
|
# ---------------------------------------------------------------------------
|
|
# Schemas heredados de erp-core (NO MODIFICAR)
|
|
# ---------------------------------------------------------------------------
|
|
- nombre: auth
|
|
origen: erp-core
|
|
descripcion: Autenticacion JWT, sesiones
|
|
tablas: 6
|
|
estado: implementado
|
|
|
|
- nombre: core_tenants
|
|
origen: erp-core
|
|
descripcion: Multi-tenancy
|
|
tablas: 8
|
|
estado: implementado
|
|
|
|
- nombre: core_shared
|
|
origen: erp-core
|
|
descripcion: Funciones compartidas
|
|
funciones: 10
|
|
estado: implementado
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Schemas ESPECIFICOS de construccion
|
|
# ---------------------------------------------------------------------------
|
|
- nombre: construction
|
|
origen: construccion
|
|
descripcion: Proyectos, estructura obra, avances, calidad, contratos
|
|
tablas: 24
|
|
ddl: construction-schema-ddl.sql
|
|
modulos: [MAI-002, MAI-003, MAI-005, MAI-009, MAI-012]
|
|
estado: definido
|
|
|
|
- nombre: estimates
|
|
origen: construccion
|
|
descripcion: Presupuestos, estimaciones, anticipos, retenciones
|
|
tablas: 8
|
|
ddl: estimates-schema-ddl.sql
|
|
modulos: [MAI-003, MAI-008]
|
|
estado: definido
|
|
|
|
- nombre: infonavit
|
|
origen: construccion
|
|
descripcion: Integracion INFONAVIT, RUV, derechohabientes
|
|
tablas: 8
|
|
ddl: infonavit-schema-ddl.sql
|
|
modulos: [MAI-010, MAI-011]
|
|
estado: definido
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Schemas de EXTENSION (extienden ERP Core)
|
|
# ---------------------------------------------------------------------------
|
|
- nombre: hr
|
|
origen: construccion
|
|
descripcion: Extension RRHH - asistencias, destajo, cuadrillas
|
|
tablas: 8
|
|
ddl: hr-ext-schema-ddl.sql
|
|
modulos: [MAI-007]
|
|
extiende: core.hr
|
|
estado: definido
|
|
|
|
- nombre: inventory
|
|
origen: construccion
|
|
descripcion: Extension Inventario - almacenes obra, requisiciones
|
|
tablas: 4
|
|
ddl: inventory-ext-schema-ddl.sql
|
|
modulos: [MAI-004]
|
|
extiende: core.inventory
|
|
estado: definido
|
|
|
|
- nombre: purchase
|
|
origen: construccion
|
|
descripcion: Extension Compras - OC construccion, comparativos
|
|
tablas: 5
|
|
ddl: purchase-ext-schema-ddl.sql
|
|
modulos: [MAI-004]
|
|
extiende: core.purchase
|
|
estado: definido
|
|
|
|
# =============================================================================
|
|
# TABLAS POR SCHEMA (ALINEADO CON DDL)
|
|
# =============================================================================
|
|
tablas:
|
|
# ---------------------------------------------------------------------------
|
|
# construction (24 tablas)
|
|
# ---------------------------------------------------------------------------
|
|
construction:
|
|
# Estructura de Proyecto (8 tablas)
|
|
- nombre: fraccionamientos
|
|
descripcion: Desarrollos/fraccionamientos de vivienda
|
|
modulo: MAI-002
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true, default: gen_random_uuid() }
|
|
- { nombre: tenant_id, tipo: UUID, fk: auth.tenants, nullable: false }
|
|
- { nombre: code, tipo: VARCHAR(20), unique: true }
|
|
- { nombre: name, tipo: VARCHAR(200), nullable: false }
|
|
- { nombre: project_type, tipo: project_type_enum }
|
|
- { nombre: location, tipo: GEOMETRY(Point, 4326) }
|
|
- { nombre: address, tipo: TEXT }
|
|
- { nombre: status, tipo: project_status_enum, default: active }
|
|
- { nombre: start_date, tipo: DATE }
|
|
- { nombre: estimated_end_date, tipo: DATE }
|
|
- { nombre: created_at, tipo: TIMESTAMPTZ, default: CURRENT_TIMESTAMP }
|
|
- { nombre: created_by, tipo: UUID, fk: auth.users }
|
|
- { nombre: updated_at, tipo: TIMESTAMPTZ }
|
|
- { nombre: updated_by, tipo: UUID }
|
|
- { nombre: deleted_at, tipo: TIMESTAMPTZ }
|
|
- { nombre: deleted_by, tipo: UUID }
|
|
rls: true
|
|
|
|
- nombre: etapas
|
|
descripcion: Etapas de un fraccionamiento
|
|
modulo: MAI-002
|
|
fk_parent: fraccionamientos
|
|
rls: true
|
|
|
|
- nombre: manzanas
|
|
descripcion: Manzanas de una etapa (horizontal)
|
|
modulo: MAI-002
|
|
fk_parent: etapas
|
|
rls: true
|
|
|
|
- nombre: lotes
|
|
descripcion: Lotes individuales (vivienda horizontal)
|
|
modulo: MAI-002
|
|
fk_parent: manzanas
|
|
rls: true
|
|
|
|
- nombre: torres
|
|
descripcion: Torres de una etapa (vertical)
|
|
modulo: MAI-002
|
|
fk_parent: etapas
|
|
rls: true
|
|
|
|
- nombre: niveles
|
|
descripcion: Niveles de una torre
|
|
modulo: MAI-002
|
|
fk_parent: torres
|
|
rls: true
|
|
|
|
- nombre: departamentos
|
|
descripcion: Departamentos (vivienda vertical)
|
|
modulo: MAI-002
|
|
fk_parent: niveles
|
|
rls: true
|
|
|
|
- nombre: prototipos
|
|
descripcion: Catalogo de prototipos de vivienda
|
|
modulo: MAI-002
|
|
rls: true
|
|
|
|
# Presupuestos y Conceptos (3 tablas)
|
|
- nombre: conceptos
|
|
descripcion: Catalogo de conceptos de obra (APU)
|
|
modulo: MAI-003
|
|
rls: true
|
|
|
|
- nombre: presupuestos
|
|
descripcion: Presupuestos de obra
|
|
modulo: MAI-003
|
|
fk_parent: fraccionamientos
|
|
rls: true
|
|
|
|
- nombre: presupuesto_partidas
|
|
descripcion: Partidas de presupuesto
|
|
modulo: MAI-003
|
|
fk_parent: presupuestos
|
|
rls: true
|
|
|
|
# Programacion y Avances (5 tablas)
|
|
- nombre: programa_obra
|
|
descripcion: Programa general de obra
|
|
modulo: MAI-005
|
|
fk_parent: fraccionamientos
|
|
rls: true
|
|
|
|
- nombre: programa_actividades
|
|
descripcion: Actividades del programa
|
|
modulo: MAI-005
|
|
fk_parent: programa_obra
|
|
rls: true
|
|
|
|
- nombre: avances_obra
|
|
descripcion: Registro de avances de obra
|
|
modulo: MAI-005
|
|
rls: true
|
|
|
|
- nombre: fotos_avance
|
|
descripcion: Fotos de evidencia de avance
|
|
modulo: MAI-005
|
|
fk_parent: avances_obra
|
|
rls: true
|
|
|
|
- nombre: bitacora_obra
|
|
descripcion: Entradas de bitacora de obra
|
|
modulo: MAI-005
|
|
fk_parent: fraccionamientos
|
|
rls: true
|
|
|
|
# Calidad (5 tablas)
|
|
- nombre: checklists
|
|
descripcion: Plantillas de checklist
|
|
modulo: MAI-009
|
|
rls: true
|
|
|
|
- nombre: checklist_items
|
|
descripcion: Items de checklist
|
|
modulo: MAI-009
|
|
fk_parent: checklists
|
|
rls: true
|
|
|
|
- nombre: inspecciones
|
|
descripcion: Inspecciones realizadas
|
|
modulo: MAI-009
|
|
rls: true
|
|
|
|
- nombre: inspeccion_resultados
|
|
descripcion: Resultados de inspeccion
|
|
modulo: MAI-009
|
|
fk_parent: inspecciones
|
|
rls: true
|
|
|
|
- nombre: tickets_postventa
|
|
descripcion: Tickets de postventa/garantia
|
|
modulo: MAI-009
|
|
rls: true
|
|
|
|
# Contratos (3 tablas)
|
|
- nombre: subcontratistas
|
|
descripcion: Catalogo de subcontratistas
|
|
modulo: MAI-012
|
|
rls: true
|
|
|
|
- nombre: contratos
|
|
descripcion: Contratos de obra/subcontrato
|
|
modulo: MAI-012
|
|
fk_parent: fraccionamientos
|
|
rls: true
|
|
|
|
- nombre: contrato_partidas
|
|
descripcion: Partidas de contrato
|
|
modulo: MAI-012
|
|
fk_parent: contratos
|
|
rls: true
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# estimates (8 tablas)
|
|
# ---------------------------------------------------------------------------
|
|
estimates:
|
|
- nombre: estimaciones
|
|
descripcion: Estimaciones de obra
|
|
modulo: MAI-008
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID, nullable: false }
|
|
- { nombre: fraccionamiento_id, tipo: UUID, fk: construction.fraccionamientos }
|
|
- { nombre: contrato_id, tipo: UUID, fk: construction.contratos }
|
|
- { nombre: numero, tipo: INTEGER }
|
|
- { nombre: tipo, tipo: estimate_type_enum }
|
|
- { nombre: period_start, tipo: DATE }
|
|
- { nombre: period_end, tipo: DATE }
|
|
- { nombre: gross_amount, tipo: DECIMAL(16,2) }
|
|
- { nombre: deductions, tipo: DECIMAL(16,2) }
|
|
- { nombre: net_amount, tipo: DECIMAL(16,2), computed: true }
|
|
- { nombre: status, tipo: estimate_status_enum }
|
|
rls: true
|
|
|
|
- nombre: estimacion_conceptos
|
|
descripcion: Detalle conceptos de estimacion
|
|
modulo: MAI-008
|
|
fk_parent: estimaciones
|
|
rls: true
|
|
|
|
- nombre: generadores
|
|
descripcion: Numeros generadores
|
|
modulo: MAI-008
|
|
fk_parent: estimacion_conceptos
|
|
rls: true
|
|
|
|
- nombre: anticipos
|
|
descripcion: Anticipos de obra
|
|
modulo: MAI-008
|
|
fk_parent: contratos
|
|
rls: true
|
|
|
|
- nombre: amortizaciones
|
|
descripcion: Amortizaciones de anticipos
|
|
modulo: MAI-008
|
|
fk_parent: anticipos
|
|
rls: true
|
|
|
|
- nombre: retenciones
|
|
descripcion: Retenciones (garantia, IMSS, ISR)
|
|
modulo: MAI-008
|
|
fk_parent: estimaciones
|
|
rls: true
|
|
|
|
- nombre: fondo_garantia
|
|
descripcion: Fondo de garantia
|
|
modulo: MAI-008
|
|
fk_parent: contratos
|
|
rls: true
|
|
|
|
- nombre: estimacion_workflow
|
|
descripcion: Historial workflow de estimacion
|
|
modulo: MAI-008
|
|
fk_parent: estimaciones
|
|
rls: true
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# infonavit (8 tablas)
|
|
# ---------------------------------------------------------------------------
|
|
infonavit:
|
|
- nombre: registro_infonavit
|
|
descripcion: Registro de obra ante INFONAVIT (RUV)
|
|
modulo: MAI-011
|
|
fk_parent: construction.fraccionamientos
|
|
rls: true
|
|
|
|
- nombre: oferta_vivienda
|
|
descripcion: Oferta de vivienda registrada
|
|
modulo: MAI-011
|
|
rls: true
|
|
|
|
- nombre: derechohabientes
|
|
descripcion: Derechohabientes INFONAVIT
|
|
modulo: MAI-010
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID }
|
|
- { nombre: nss, tipo: VARCHAR(11) }
|
|
- { nombre: curp, tipo: VARCHAR(18) }
|
|
- { nombre: nombre_completo, tipo: VARCHAR(200) }
|
|
- { nombre: puntos_infonavit, tipo: INTEGER }
|
|
- { nombre: monto_credito, tipo: DECIMAL(14,2) }
|
|
- { nombre: status, tipo: beneficiary_status_enum }
|
|
rls: true
|
|
|
|
- nombre: asignacion_vivienda
|
|
descripcion: Asignacion derechohabiente-vivienda
|
|
modulo: MAI-011
|
|
rls: true
|
|
|
|
- nombre: actas
|
|
descripcion: Actas de entrega
|
|
modulo: MAI-011
|
|
rls: true
|
|
|
|
- nombre: acta_viviendas
|
|
descripcion: Viviendas incluidas en acta
|
|
modulo: MAI-011
|
|
fk_parent: actas
|
|
rls: true
|
|
|
|
- nombre: reportes_infonavit
|
|
descripcion: Reportes enviados a INFONAVIT
|
|
modulo: MAI-011
|
|
rls: true
|
|
|
|
- nombre: historico_puntos
|
|
descripcion: Historico puntos ecologicos
|
|
modulo: MAI-011
|
|
rls: true
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# hr - Extension (8 tablas)
|
|
# ---------------------------------------------------------------------------
|
|
hr:
|
|
- nombre: employee_construction
|
|
descripcion: Extension de empleados para construccion
|
|
modulo: MAI-007
|
|
extiende: core.hr.employees
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID }
|
|
- { nombre: employee_id, tipo: UUID, fk: core.hr.employees }
|
|
- { nombre: worker_type, tipo: worker_type_enum }
|
|
- { nombre: subcontratista_id, tipo: UUID, fk: construction.subcontratistas }
|
|
- { nombre: nss, tipo: VARCHAR(15) }
|
|
- { nombre: stps_dc3_number, tipo: VARCHAR(50) }
|
|
- { nombre: default_fraccionamiento_id, tipo: UUID }
|
|
- { nombre: specialty, tipo: VARCHAR(100) }
|
|
rls: true
|
|
|
|
- nombre: asistencias
|
|
descripcion: Registro de asistencias con GPS/biometrico
|
|
modulo: MAI-007
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID }
|
|
- { nombre: employee_id, tipo: UUID }
|
|
- { nombre: fraccionamiento_id, tipo: UUID }
|
|
- { nombre: attendance_date, tipo: DATE }
|
|
- { nombre: attendance_type, tipo: attendance_type_construction_enum }
|
|
- { nombre: check_in_time, tipo: TIMESTAMP }
|
|
- { nombre: check_out_time, tipo: TIMESTAMP }
|
|
- { nombre: worked_hours, tipo: DECIMAL(4,2), computed: true }
|
|
- { nombre: check_in_location, tipo: GEOMETRY(Point, 4326) }
|
|
- { nombre: check_out_location, tipo: GEOMETRY(Point, 4326) }
|
|
- { nombre: is_valid, tipo: BOOLEAN }
|
|
rls: true
|
|
|
|
- nombre: asistencia_biometrico
|
|
descripcion: Registros biometricos
|
|
modulo: MAI-007
|
|
fk_parent: asistencias
|
|
rls: true
|
|
|
|
- nombre: geocercas
|
|
descripcion: Geocercas para validacion GPS
|
|
modulo: MAI-007
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID }
|
|
- { nombre: fraccionamiento_id, tipo: UUID }
|
|
- { nombre: name, tipo: VARCHAR(100) }
|
|
- { nombre: polygon, tipo: GEOMETRY(Polygon, 4326) }
|
|
- { nombre: radius_meters, tipo: DECIMAL(8,2) }
|
|
- { nombre: is_active, tipo: BOOLEAN }
|
|
rls: true
|
|
|
|
- nombre: destajo
|
|
descripcion: Trabajo a destajo/precio unitario
|
|
modulo: MAI-007
|
|
rls: true
|
|
|
|
- nombre: destajo_detalle
|
|
descripcion: Detalle de mediciones de destajo
|
|
modulo: MAI-007
|
|
fk_parent: destajo
|
|
rls: true
|
|
|
|
- nombre: cuadrillas
|
|
descripcion: Cuadrillas de trabajo
|
|
modulo: MAI-007
|
|
rls: true
|
|
|
|
- nombre: cuadrilla_miembros
|
|
descripcion: Miembros de cuadrillas
|
|
modulo: MAI-007
|
|
fk_parent: cuadrillas
|
|
rls: true
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# inventory - Extension (4 tablas)
|
|
# ---------------------------------------------------------------------------
|
|
inventory:
|
|
- nombre: almacenes_proyecto
|
|
descripcion: Almacenes por proyecto de construccion
|
|
modulo: MAI-004
|
|
extiende: core.inventory.warehouses
|
|
rls: true
|
|
|
|
- nombre: requisiciones_obra
|
|
descripcion: Requisiciones de material desde obra
|
|
modulo: MAI-004
|
|
rls: true
|
|
|
|
- nombre: requisicion_lineas
|
|
descripcion: Lineas de requisicion de obra
|
|
modulo: MAI-004
|
|
fk_parent: requisiciones_obra
|
|
rls: true
|
|
|
|
- nombre: consumos_obra
|
|
descripcion: Consumos de materiales por obra/lote
|
|
modulo: MAI-004
|
|
rls: true
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# purchase - Extension (5 tablas)
|
|
# ---------------------------------------------------------------------------
|
|
purchase:
|
|
- nombre: purchase_order_construction
|
|
descripcion: Extension OC para construccion
|
|
modulo: MAI-004
|
|
extiende: core.purchase.purchase_orders
|
|
rls: true
|
|
|
|
- nombre: supplier_construction
|
|
descripcion: Extension proveedores para construccion
|
|
modulo: MAI-004
|
|
extiende: core.purchase.suppliers
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID }
|
|
- { nombre: supplier_id, tipo: UUID, fk: core.purchase.suppliers }
|
|
- { nombre: is_materials_supplier, tipo: BOOLEAN }
|
|
- { nombre: is_services_supplier, tipo: BOOLEAN }
|
|
- { nombre: is_equipment_supplier, tipo: BOOLEAN }
|
|
- { nombre: specialties, tipo: TEXT[] }
|
|
- { nombre: quality_rating, tipo: DECIMAL(3,2) }
|
|
- { nombre: delivery_rating, tipo: DECIMAL(3,2) }
|
|
- { nombre: price_rating, tipo: DECIMAL(3,2) }
|
|
- { nombre: overall_rating, tipo: DECIMAL(3,2), computed: true }
|
|
rls: true
|
|
|
|
- nombre: comparativo_cotizaciones
|
|
descripcion: Cuadro comparativo de cotizaciones
|
|
modulo: MAI-004
|
|
rls: true
|
|
|
|
- nombre: comparativo_proveedores
|
|
descripcion: Proveedores participantes en comparativo
|
|
modulo: MAI-004
|
|
fk_parent: comparativo_cotizaciones
|
|
rls: true
|
|
|
|
- nombre: comparativo_productos
|
|
descripcion: Productos cotizados por proveedor
|
|
modulo: MAI-004
|
|
fk_parent: comparativo_proveedores
|
|
rls: true
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# hse - Seguridad HSE (58 tablas) - IMPLEMENTADO
|
|
# ---------------------------------------------------------------------------
|
|
hse:
|
|
# RF-MAA017-001: Gestion de Incidentes (5 tablas)
|
|
- nombre: incidentes
|
|
descripcion: Registro de incidentes y accidentes
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-001
|
|
rls: true
|
|
columnas:
|
|
- { nombre: id, tipo: UUID, pk: true }
|
|
- { nombre: tenant_id, tipo: UUID, fk: core.tenants }
|
|
- { nombre: folio, tipo: VARCHAR(20), unique: true }
|
|
- { nombre: fecha_hora, tipo: TIMESTAMPTZ }
|
|
- { nombre: fraccionamiento_id, tipo: UUID, fk: construction.fraccionamientos }
|
|
- { nombre: ubicacion_geo, tipo: GEOMETRY(Point, 4326) }
|
|
- { nombre: tipo, tipo: tipo_incidente }
|
|
- { nombre: gravedad, tipo: gravedad_incidente }
|
|
- { nombre: estado, tipo: estado_incidente }
|
|
|
|
- nombre: incidente_involucrados
|
|
descripcion: Personas involucradas en incidente
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-001
|
|
fk_parent: incidentes
|
|
rls: false
|
|
|
|
- nombre: incidente_investigacion
|
|
descripcion: Investigacion del incidente
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-001
|
|
fk_parent: incidentes
|
|
rls: false
|
|
|
|
- nombre: incidente_acciones
|
|
descripcion: Acciones correctivas
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-001
|
|
fk_parent: incidentes
|
|
rls: false
|
|
|
|
- nombre: incidente_evidencias
|
|
descripcion: Fotos y evidencias
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-001
|
|
fk_parent: incidentes
|
|
rls: false
|
|
|
|
# RF-MAA017-002: Control de Capacitaciones (6 tablas)
|
|
- nombre: capacitaciones
|
|
descripcion: Catalogo de capacitaciones
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-002
|
|
rls: true
|
|
|
|
- nombre: capacitacion_matriz
|
|
descripcion: Matriz capacitacion por puesto
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-002
|
|
rls: true
|
|
|
|
- nombre: instructores
|
|
descripcion: Instructores internos/externos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-002
|
|
rls: true
|
|
|
|
- nombre: capacitacion_sesiones
|
|
descripcion: Sesiones programadas
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-002
|
|
rls: true
|
|
|
|
- nombre: capacitacion_asistentes
|
|
descripcion: Asistencia a sesiones
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-002
|
|
fk_parent: capacitacion_sesiones
|
|
rls: false
|
|
|
|
- nombre: constancias_dc3
|
|
descripcion: Constancias STPS DC-3
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-002
|
|
rls: true
|
|
|
|
# RF-MAA017-003: Inspecciones de Seguridad (7 tablas)
|
|
- nombre: tipos_inspeccion
|
|
descripcion: Tipos de inspeccion
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
rls: true
|
|
|
|
- nombre: checklist_items
|
|
descripcion: Items de checklist
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
fk_parent: tipos_inspeccion
|
|
rls: false
|
|
|
|
- nombre: programa_inspecciones
|
|
descripcion: Programa de inspecciones
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
rls: true
|
|
|
|
- nombre: inspecciones
|
|
descripcion: Inspecciones ejecutadas
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
rls: true
|
|
|
|
- nombre: inspeccion_evaluaciones
|
|
descripcion: Evaluacion de items
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
fk_parent: inspecciones
|
|
rls: false
|
|
|
|
- nombre: hallazgos
|
|
descripcion: Hallazgos detectados
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
rls: true
|
|
|
|
- nombre: hallazgo_evidencias
|
|
descripcion: Evidencias de hallazgos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-003
|
|
fk_parent: hallazgos
|
|
rls: false
|
|
|
|
# RF-MAA017-004: Control de EPP (7 tablas)
|
|
- nombre: epp_catalogo
|
|
descripcion: Catalogo de EPP
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
rls: true
|
|
|
|
- nombre: epp_matriz_puesto
|
|
descripcion: EPP requerido por puesto
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
rls: true
|
|
|
|
- nombre: epp_asignaciones
|
|
descripcion: EPP asignado a trabajadores
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
rls: true
|
|
|
|
- nombre: epp_inspecciones
|
|
descripcion: Inspecciones de EPP
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
fk_parent: epp_asignaciones
|
|
rls: false
|
|
|
|
- nombre: epp_bajas
|
|
descripcion: Bajas de EPP
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
fk_parent: epp_asignaciones
|
|
rls: false
|
|
|
|
- nombre: epp_inventario
|
|
descripcion: Inventario de EPP
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
rls: true
|
|
|
|
- nombre: epp_movimientos
|
|
descripcion: Movimientos de inventario EPP
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-004
|
|
rls: true
|
|
|
|
# RF-MAA017-005: Cumplimiento STPS (11 tablas)
|
|
- nombre: normas_stps
|
|
descripcion: Catalogo normas STPS
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
rls: false
|
|
seed_data: true
|
|
|
|
- nombre: norma_requisitos
|
|
descripcion: Requisitos por norma
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
fk_parent: normas_stps
|
|
rls: false
|
|
|
|
- nombre: cumplimiento_obra
|
|
descripcion: Estado cumplimiento por obra
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
rls: true
|
|
|
|
- nombre: comision_seguridad
|
|
descripcion: Comisiones de seguridad e higiene
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
rls: true
|
|
|
|
- nombre: comision_integrantes
|
|
descripcion: Integrantes de comision
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
fk_parent: comision_seguridad
|
|
rls: false
|
|
|
|
- nombre: comision_recorridos
|
|
descripcion: Recorridos de comision
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
fk_parent: comision_seguridad
|
|
rls: false
|
|
|
|
- nombre: programa_seguridad
|
|
descripcion: Programa anual de seguridad
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
rls: true
|
|
|
|
- nombre: programa_actividades
|
|
descripcion: Actividades del programa
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
fk_parent: programa_seguridad
|
|
rls: false
|
|
|
|
- nombre: documentos_stps
|
|
descripcion: Documentos STPS emitidos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
rls: true
|
|
|
|
- nombre: auditorias
|
|
descripcion: Auditorias HSE
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-005
|
|
rls: true
|
|
|
|
# RF-MAA017-006: Gestion Ambiental (9 tablas)
|
|
- nombre: residuos_catalogo
|
|
descripcion: Catalogo de residuos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: false
|
|
seed_data: true
|
|
|
|
- nombre: residuos_generacion
|
|
descripcion: Registro generacion residuos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: true
|
|
|
|
- nombre: almacen_temporal
|
|
descripcion: Almacenes temporales de residuos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: true
|
|
|
|
- nombre: proveedores_ambientales
|
|
descripcion: Proveedores ambientales autorizados
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: true
|
|
|
|
- nombre: manifiestos_residuos
|
|
descripcion: Manifiestos de residuos peligrosos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: true
|
|
|
|
- nombre: manifiesto_detalle
|
|
descripcion: Detalle de manifiestos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
fk_parent: manifiestos_residuos
|
|
rls: false
|
|
|
|
- nombre: impacto_ambiental
|
|
descripcion: Matriz de impacto ambiental
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: true
|
|
|
|
- nombre: quejas_ambientales
|
|
descripcion: Quejas ambientales recibidas
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-006
|
|
rls: true
|
|
|
|
# RF-MAA017-007: Permisos de Trabajo (8 tablas)
|
|
- nombre: tipos_permiso_trabajo
|
|
descripcion: Tipos de permiso de trabajo
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
rls: true
|
|
|
|
- nombre: permisos_trabajo
|
|
descripcion: Permisos de trabajo de alto riesgo
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
rls: true
|
|
|
|
- nombre: permiso_personal
|
|
descripcion: Personal asignado a permiso
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
fk_parent: permisos_trabajo
|
|
rls: false
|
|
|
|
- nombre: permiso_autorizaciones
|
|
descripcion: Autorizaciones de permiso
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
fk_parent: permisos_trabajo
|
|
rls: false
|
|
|
|
- nombre: permiso_checklist
|
|
descripcion: Checklist pre/durante/post trabajo
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
fk_parent: permisos_trabajo
|
|
rls: false
|
|
|
|
- nombre: permiso_monitoreos
|
|
descripcion: Monitoreos durante ejecucion
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
fk_parent: permisos_trabajo
|
|
rls: false
|
|
|
|
- nombre: permiso_eventos
|
|
descripcion: Eventos del permiso
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
fk_parent: permisos_trabajo
|
|
rls: false
|
|
|
|
- nombre: permiso_documentos
|
|
descripcion: Documentos adjuntos
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-007
|
|
fk_parent: permisos_trabajo
|
|
rls: false
|
|
|
|
# RF-MAA017-008: Indicadores HSE (7 tablas)
|
|
- nombre: indicadores_config
|
|
descripcion: Configuracion de indicadores
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: true
|
|
|
|
- nombre: indicadores_meta_obra
|
|
descripcion: Metas por obra
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: false
|
|
|
|
- nombre: indicadores_valores
|
|
descripcion: Valores calculados
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: true
|
|
|
|
- nombre: horas_trabajadas
|
|
descripcion: Horas hombre por obra
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: true
|
|
|
|
- nombre: dias_sin_accidente
|
|
descripcion: Contador dias sin accidente
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: true
|
|
|
|
- nombre: reportes_programados
|
|
descripcion: Reportes programados HSE
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: true
|
|
|
|
- nombre: alertas_indicadores
|
|
descripcion: Alertas de indicadores
|
|
modulo: MAA-017
|
|
rf: RF-MAA017-008
|
|
rls: true
|
|
|
|
# =============================================================================
|
|
# ENUMS
|
|
# =============================================================================
|
|
enums:
|
|
# Proyectos
|
|
- nombre: project_type_enum
|
|
schema: construction
|
|
valores: [horizontal, vertical, mixed]
|
|
|
|
- nombre: project_status_enum
|
|
schema: construction
|
|
valores: [planning, active, paused, completed, cancelled]
|
|
|
|
- nombre: stage_status_enum
|
|
schema: construction
|
|
valores: [pending, in_progress, completed]
|
|
|
|
- nombre: unit_status_enum
|
|
schema: construction
|
|
valores: [available, reserved, sold, under_construction, delivered]
|
|
|
|
- nombre: housing_type_enum
|
|
schema: construction
|
|
valores: [house, apartment, duplex, townhouse]
|
|
|
|
# Presupuestos y Estimaciones
|
|
- nombre: budget_status_enum
|
|
schema: estimates
|
|
valores: [draft, approved, active, closed]
|
|
|
|
- nombre: estimate_type_enum
|
|
schema: estimates
|
|
valores: [client, subcontractor, piece_rate]
|
|
|
|
- nombre: estimate_status_enum
|
|
schema: estimates
|
|
valores: [draft, in_review, observations, approved, invoiced, paid, cancelled]
|
|
|
|
# Control de Obra
|
|
- nombre: logbook_type_enum
|
|
schema: construction
|
|
valores: [progress, incident, weather, visit, general]
|
|
|
|
- nombre: checklist_status_enum
|
|
schema: construction
|
|
valores: [pending, in_progress, approved, rejected]
|
|
|
|
# RRHH
|
|
- nombre: worker_type_enum
|
|
schema: hr
|
|
valores: [permanent, temporary, subcontract, piece_rate]
|
|
|
|
- nombre: attendance_type_construction_enum
|
|
schema: hr
|
|
valores: [manual, biometric, gps, qr_code]
|
|
|
|
- nombre: destajo_status_enum
|
|
schema: hr
|
|
valores: [pending, measured, approved, paid]
|
|
|
|
# Compras
|
|
- nombre: requisition_status_enum
|
|
schema: inventory
|
|
valores: [draft, submitted, approved, partially_served, served, cancelled]
|
|
|
|
- nombre: warehouse_type_construction_enum
|
|
schema: inventory
|
|
valores: [central, obra, temporal, transito]
|
|
|
|
# INFONAVIT
|
|
- nombre: beneficiary_status_enum
|
|
schema: infonavit
|
|
valores: [prospect, qualified, assigned, delivered]
|
|
|
|
- nombre: cofinavit_program_enum
|
|
schema: infonavit
|
|
valores: [tradicional, total, infonavit_fovissste, apoyo_infonavit]
|
|
|
|
# HSE - Seguridad (67 ENUMs)
|
|
# Incidentes
|
|
- nombre: tipo_incidente
|
|
schema: hse
|
|
valores: [accidente, incidente, casi_accidente]
|
|
|
|
- nombre: gravedad_incidente
|
|
schema: hse
|
|
valores: [leve, moderado, grave, fatal]
|
|
|
|
- nombre: estado_incidente
|
|
schema: hse
|
|
valores: [abierto, en_investigacion, cerrado]
|
|
|
|
- nombre: rol_involucrado
|
|
schema: hse
|
|
valores: [lesionado, testigo, responsable]
|
|
|
|
- nombre: factor_causa
|
|
schema: hse
|
|
valores: [acto_inseguro, condicion_insegura]
|
|
|
|
# Capacitaciones
|
|
- nombre: tipo_capacitacion
|
|
schema: hse
|
|
valores: [induccion, especifica, certificacion, reentrenamiento]
|
|
|
|
- nombre: estado_sesion
|
|
schema: hse
|
|
valores: [programada, en_curso, completada, cancelada]
|
|
|
|
# Inspecciones
|
|
- nombre: frecuencia
|
|
schema: hse
|
|
valores: [diaria, semanal, quincenal, mensual, eventual]
|
|
|
|
- nombre: estado_inspeccion
|
|
schema: hse
|
|
valores: [programada, en_progreso, completada, cancelada, vencida]
|
|
|
|
- nombre: resultado_evaluacion
|
|
schema: hse
|
|
valores: [cumple, no_cumple, no_aplica]
|
|
|
|
- nombre: gravedad_hallazgo
|
|
schema: hse
|
|
valores: [critico, mayor, menor]
|
|
|
|
- nombre: estado_hallazgo
|
|
schema: hse
|
|
valores: [abierto, en_correccion, verificando, cerrado, reabierto]
|
|
|
|
- nombre: tipo_evidencia
|
|
schema: hse
|
|
valores: [hallazgo, correccion]
|
|
|
|
# EPP
|
|
- nombre: categoria_epp
|
|
schema: hse
|
|
valores: [cabeza, ojos, auditiva, respiratoria, manos, pies, caidas, ropa]
|
|
|
|
- nombre: estado_epp
|
|
schema: hse
|
|
valores: [activo, vencido, danado, perdido, devuelto]
|
|
|
|
- nombre: estado_inspeccion_epp
|
|
schema: hse
|
|
valores: [bueno, regular, malo, danado]
|
|
|
|
- nombre: motivo_baja_epp
|
|
schema: hse
|
|
valores: [vencimiento, danado, perdido, terminacion_laboral]
|
|
|
|
- nombre: tipo_movimiento_epp
|
|
schema: hse
|
|
valores: [entrada, salida, transferencia, ajuste]
|
|
|
|
# STPS
|
|
- nombre: estado_comision
|
|
schema: hse
|
|
valores: [activa, vencida, renovada]
|
|
|
|
- nombre: rol_comision
|
|
schema: hse
|
|
valores: [presidente, secretario, vocal_patronal, vocal_trabajador]
|
|
|
|
- nombre: representacion
|
|
schema: hse
|
|
valores: [patronal, trabajadores]
|
|
|
|
- nombre: estado_recorrido
|
|
schema: hse
|
|
valores: [programado, realizado, cancelado, pendiente]
|
|
|
|
- nombre: estado_programa
|
|
schema: hse
|
|
valores: [borrador, activo, finalizado]
|
|
|
|
- nombre: tipo_actividad_programa
|
|
schema: hse
|
|
valores: [capacitacion, inspeccion, simulacro, campana, otro]
|
|
|
|
- nombre: estado_actividad
|
|
schema: hse
|
|
valores: [pendiente, en_progreso, completada, cancelada]
|
|
|
|
- nombre: tipo_documento_stps
|
|
schema: hse
|
|
valores: [dc1, dc2, dc3, dc4, st7, st9]
|
|
|
|
- nombre: tipo_auditoria
|
|
schema: hse
|
|
valores: [interna, simulada, stps, cliente, certificadora]
|
|
|
|
- nombre: resultado_auditoria
|
|
schema: hse
|
|
valores: [aprobada, aprobada_observaciones, no_aprobada]
|
|
|
|
- nombre: estado_cumplimiento
|
|
schema: hse
|
|
valores: [cumple, parcial, no_cumple, no_aplica]
|
|
|
|
# Ambiental
|
|
- nombre: categoria_residuo
|
|
schema: hse
|
|
valores: [peligroso, manejo_especial, urbano]
|
|
|
|
- nombre: unidad_residuo
|
|
schema: hse
|
|
valores: [kg, litros, m3, piezas]
|
|
|
|
- nombre: estado_residuo
|
|
schema: hse
|
|
valores: [almacenado, en_transito, dispuesto]
|
|
|
|
- nombre: estado_almacen
|
|
schema: hse
|
|
valores: [operativo, lleno, mantenimiento]
|
|
|
|
- nombre: tipo_proveedor_ambiental
|
|
schema: hse
|
|
valores: [transportista, reciclador, confinamiento]
|
|
|
|
- nombre: estado_manifiesto
|
|
schema: hse
|
|
valores: [emitido, en_transito, entregado, cerrado]
|
|
|
|
- nombre: tipo_impacto
|
|
schema: hse
|
|
valores: [ruido, polvo, vibraciones, agua, emision, vegetacion, otro]
|
|
|
|
- nombre: severidad
|
|
schema: hse
|
|
valores: [bajo, medio, alto]
|
|
|
|
- nombre: probabilidad
|
|
schema: hse
|
|
valores: [baja, media, alta]
|
|
|
|
- nombre: nivel_riesgo
|
|
schema: hse
|
|
valores: [tolerable, moderado, significativo]
|
|
|
|
- nombre: estado_impacto
|
|
schema: hse
|
|
valores: [identificado, mitigando, controlado]
|
|
|
|
- nombre: origen_queja
|
|
schema: hse
|
|
valores: [vecino, autoridad, interno, anonimo]
|
|
|
|
- nombre: tipo_queja
|
|
schema: hse
|
|
valores: [ruido, polvo, olores, agua, otro]
|
|
|
|
- nombre: estado_queja
|
|
schema: hse
|
|
valores: [recibida, atendiendo, cerrada]
|
|
|
|
# Permisos de trabajo
|
|
- nombre: estado_permiso
|
|
schema: hse
|
|
valores: [borrador, solicitado, aprobado_parcial, autorizado, en_ejecucion, suspendido, cerrado, rechazado, vencido]
|
|
|
|
- nombre: rol_permiso
|
|
schema: hse
|
|
valores: [ejecutor, supervisor, vigia, operador, senalero]
|
|
|
|
- nombre: decision_autorizacion
|
|
schema: hse
|
|
valores: [aprobado, rechazado]
|
|
|
|
- nombre: momento_checklist
|
|
schema: hse
|
|
valores: [pre_trabajo, durante, post_trabajo]
|
|
|
|
- nombre: tipo_evento_permiso
|
|
schema: hse
|
|
valores: [inicio, suspension, reanudacion, extension, anomalia, cierre]
|
|
|
|
# Indicadores
|
|
- nombre: tipo_indicador
|
|
schema: hse
|
|
valores: [reactivo, proactivo, ambiental]
|
|
|
|
- nombre: frecuencia_calculo
|
|
schema: hse
|
|
valores: [diario, semanal, mensual]
|
|
|
|
- nombre: periodo_tipo
|
|
schema: hse
|
|
valores: [diario, semanal, mensual, anual]
|
|
|
|
- nombre: estado_semaforo
|
|
schema: hse
|
|
valores: [verde, amarillo, rojo]
|
|
|
|
- nombre: fuente_horas
|
|
schema: hse
|
|
valores: [asistencia, manual]
|
|
|
|
- nombre: tipo_reporte_hse
|
|
schema: hse
|
|
valores: [semanal, mensual, trimestral, anual]
|
|
|
|
- nombre: formato_reporte
|
|
schema: hse
|
|
valores: [pdf, excel, ambos]
|
|
|
|
- nombre: tipo_alerta_indicador
|
|
schema: hse
|
|
valores: [meta_superada, tendencia_negativa, sin_datos]
|
|
|
|
# =============================================================================
|
|
# FUNCIONES
|
|
# =============================================================================
|
|
funciones:
|
|
core_shared:
|
|
- nombre: set_updated_at()
|
|
descripcion: Trigger para actualizar updated_at
|
|
trigger: BEFORE UPDATE
|
|
|
|
- nombre: audit_log_changes()
|
|
descripcion: Log de auditoria
|
|
trigger: AFTER INSERT/UPDATE/DELETE
|
|
|
|
- nombre: validate_rfc()
|
|
descripcion: Validacion RFC mexicano
|
|
parametros: [rfc VARCHAR]
|
|
retorna: BOOLEAN
|
|
|
|
- nombre: generate_code()
|
|
descripcion: Generacion de codigos secuenciales
|
|
parametros: [prefix VARCHAR, sequence_name VARCHAR]
|
|
retorna: VARCHAR
|
|
|
|
- nombre: calculate_working_days()
|
|
descripcion: Calcula dias habiles entre fechas
|
|
parametros: [start_date DATE, end_date DATE]
|
|
retorna: INTEGER
|
|
|
|
- nombre: get_current_tenant_id()
|
|
descripcion: Obtiene tenant_id de session
|
|
retorna: UUID
|
|
|
|
- nombre: validate_tenant_access()
|
|
descripcion: Valida acceso del usuario al tenant
|
|
parametros: [user_id UUID, tenant_id UUID]
|
|
retorna: BOOLEAN
|
|
|
|
- nombre: log_user_action()
|
|
descripcion: Log de acciones de usuario
|
|
trigger: AFTER INSERT/UPDATE/DELETE
|
|
|
|
estimates:
|
|
- nombre: calculate_estimate_totals()
|
|
descripcion: Calcula totales de estimacion
|
|
parametros: [estimate_id UUID]
|
|
retorna: RECORD
|
|
|
|
- nombre: update_advance_amortization()
|
|
descripcion: Actualiza amortizacion de anticipos
|
|
trigger: AFTER INSERT ON estimaciones
|
|
|
|
hr:
|
|
- nombre: validate_attendance_location()
|
|
descripcion: Valida ubicacion dentro de geocerca
|
|
parametros: [location GEOMETRY, fraccionamiento_id UUID]
|
|
retorna: BOOLEAN
|
|
|
|
construction:
|
|
- nombre: calculate_unit_progress()
|
|
descripcion: Calcula avance de unidad
|
|
parametros: [unit_id UUID, unit_type VARCHAR]
|
|
retorna: DECIMAL
|
|
|
|
# =============================================================================
|
|
# RLS POLICIES (template)
|
|
# =============================================================================
|
|
rls_template:
|
|
descripcion: Todas las tablas tienen policy de tenant isolation
|
|
funcion: get_current_tenant_id()
|
|
|
|
policy_standard:
|
|
nombre: tenant_isolation
|
|
operacion: ALL
|
|
using: tenant_id = get_current_tenant_id()
|
|
with_check: tenant_id = get_current_tenant_id()
|
|
|
|
# =============================================================================
|
|
# INDICES ESPECIALES
|
|
# =============================================================================
|
|
indices_especiales:
|
|
postgis:
|
|
- tabla: construction.fraccionamientos
|
|
columna: location
|
|
tipo: GIST
|
|
|
|
- tabla: hr.asistencias
|
|
columna: check_in_location
|
|
tipo: GIST
|
|
|
|
- tabla: hr.asistencias
|
|
columna: check_out_location
|
|
tipo: GIST
|
|
|
|
- tabla: hr.geocercas
|
|
columna: polygon
|
|
tipo: GIST
|
|
|
|
trigram:
|
|
- tabla: construction.fraccionamientos
|
|
columna: name
|
|
tipo: GIN
|
|
usando: pg_trgm
|
|
|
|
- tabla: infonavit.derechohabientes
|
|
columna: nombre_completo
|
|
tipo: GIN
|
|
usando: pg_trgm
|
|
|
|
# =============================================================================
|
|
# NOMENCLATURA DEPRECADA (NO USAR)
|
|
# =============================================================================
|
|
schemas_deprecados:
|
|
- project_management: "usar 'construction'"
|
|
- financial_management: "usar 'estimates'"
|
|
- hr_management: "usar 'hr'"
|
|
- purchasing_management: "usar 'purchase'"
|
|
- construction_management: "usar 'construction'"
|
|
- quality_management: "integrado en 'construction'"
|
|
- contract_management: "integrado en 'construction'"
|
|
- crm_management: "integrado en 'infonavit'"
|
|
- infonavit_management: "usar 'infonavit'"
|
|
- assets_management: "usar 'assets' (pendiente)"
|
|
- documents_management: "usar 'documents' (pendiente)"
|
|
|
|
# =============================================================================
|
|
# VALIDACION DDL (2025-12-09)
|
|
# =============================================================================
|
|
validacion_ddl:
|
|
fecha: "2025-12-09"
|
|
estado: "✅ COMPLETO - 7 schemas, 110 tablas"
|
|
total_archivos_ddl: 7
|
|
archivos_ddl:
|
|
- archivo: "schemas/01-construction-schema-ddl.sql"
|
|
tablas: 24
|
|
estado: "implementado"
|
|
- archivo: "schemas/02-hr-schema-ddl.sql"
|
|
tablas: 8
|
|
estado: "implementado"
|
|
- archivo: "schemas/03-hse-schema-ddl.sql"
|
|
tablas: 58
|
|
estado: "implementado"
|
|
- archivo: "schemas/04-estimates-schema-ddl.sql"
|
|
tablas: 8
|
|
estado: "implementado"
|
|
- archivo: "schemas/05-infonavit-schema-ddl.sql"
|
|
tablas: 8
|
|
estado: "implementado"
|
|
- archivo: "schemas/06-inventory-ext-schema-ddl.sql"
|
|
tablas: 4
|
|
estado: "implementado"
|
|
- archivo: "schemas/07-purchase-ext-schema-ddl.sql"
|
|
tablas: 5
|
|
estado: "implementado"
|
|
alineacion_erp_core:
|
|
rls_variable: "app.current_tenant_id"
|
|
fk_tenants: "auth.tenants"
|
|
fk_users: "auth.users"
|
|
prerequisitos_verificados: true
|
|
verificaciones_prerequisitos:
|
|
- "DDL verifica existencia de auth.tenants"
|
|
- "DDL verifica existencia de auth.users"
|
|
- "DDL verifica existencia de schemas dependientes"
|
|
- "ERP-Core debe estar instalado antes de ejecutar DDL"
|
|
compatible_erp_core: true
|
|
|
|
# =============================================================================
|
|
# METADATA
|
|
# =============================================================================
|
|
metadata:
|
|
creado_por: Requirements-Analyst
|
|
fecha_creacion: 2025-12-06
|
|
ultima_actualizacion: 2025-12-09
|
|
version_documento: 1.3.0
|
|
cambios_version:
|
|
- "1.3.0: DDL completo - 7 schemas, 110 tablas (2025-12-09)"
|
|
- "1.3.0: Nuevos DDL: estimates, infonavit, inventory-ext, purchase-ext"
|
|
- "1.3.0: Variable RLS corregida a app.current_tenant_id"
|
|
- "1.2.0: Validacion DDL - 50 FK corregidas a auth.* (2025-12-08)"
|
|
- "1.1.0: Nomenclatura unificada segun NAMING-CONVENTIONS.md"
|