# Base de Datos - ERP Vidrio Templado ## Resumen | Aspecto | Valor | |---------|-------| | **Schema principal** | `vidrio` | | **Tablas específicas** | 14 | | **ENUMs** | 5 | | **Hereda de ERP-Core** | 144 tablas (12 schemas) | ## Prerequisitos 1. **ERP-Core instalado** con todos sus schemas 2. **Extensiones PostgreSQL**: pg_trgm ## Orden de Ejecución DDL ```bash # 1. Instalar ERP-Core primero cd apps/erp-core/database ./scripts/reset-database.sh # 2. Instalar extensión Vidrio Templado cd apps/verticales/vidrio-templado/database psql $DATABASE_URL -f init/00-extensions.sql psql $DATABASE_URL -f init/01-create-schemas.sql psql $DATABASE_URL -f init/02-rls-functions.sql psql $DATABASE_URL -f init/03-vidrio-tables.sql ``` ## Tablas Implementadas ### Schema: vidrio (14 tablas) | Tabla | Módulo | Descripción | |-------|--------|-------------| | glass_catalog | VT-001 | Catálogo de tipos de vidrio | | process_catalog | VT-001 | Catálogo de procesos | | production_orders | VT-002 | Órdenes de producción | | production_lines | VT-002 | Líneas de producción | | furnaces | VT-003 | Hornos de templado | | furnace_batches | VT-003 | Lotes en horno | | cutting_machines | VT-003 | Máquinas de corte | | quality_tests | VT-004 | Tipos de prueba de calidad | | quality_inspections | VT-004 | Inspecciones de calidad | | quality_test_results | VT-004 | Resultados de pruebas | | glass_lots | VT-005 | Lotes de vidrio | | lot_consumption | VT-005 | Consumo de lotes | | quotations | VT-006 | Cotizaciones | | quotation_lines | VT-006 | Líneas de cotización | ## ENUMs | Enum | Valores | |------|---------| | glass_type | clear, tinted, reflective, low_e, laminated, tempered | | production_status | draft, scheduled, in_progress, cutting, tempering, quality_check, completed, cancelled | | furnace_status | idle, preheating, heating, cooling, maintenance | | inspection_result | pending, passed, failed, conditional | | quotation_status | draft, sent, approved, rejected, expired | ## Row Level Security Todas las tablas tienen RLS con: ```sql tenant_id = current_setting('app.current_tenant_id', true)::UUID ``` ## Funciones Específicas ### vidrio.calculate_area_m2(width_mm, height_mm) Calcula el área en metros cuadrados a partir de dimensiones en milímetros. ```sql SELECT vidrio.calculate_area_m2(1500, 2000); -- Resultado: 3.00 m² ``` ## Consideraciones Especiales - **Cálculos de área**: Siempre en m² para costeo - **Trazabilidad**: Lotes vinculados a piezas producidas - **Control de calidad**: Pruebas obligatorias antes de entrega - **Capacidad hornos**: Máximo área por batch configurable ## Referencias - [HERENCIA-ERP-CORE.md](../orchestration/00-guidelines/HERENCIA-ERP-CORE.md) - [DATABASE_INVENTORY.yml](../orchestration/inventarios/DATABASE_INVENTORY.yml)