-- ═══════════════════════════════════════════════════════════════════════════════ -- SEED 04: PROYECTOS Y OBRAS -- ═══════════════════════════════════════════════════════════════════════════════ -- Proyecto: ERP Construcción -- Autor: Claude Opus 4.5 -- Fecha: 2026-02-03 -- Descripción: Fraccionamientos, etapas, lotes, torres, departamentos, subcontratistas -- Dependencias: 02-users-profiles.sql, 03-empresa-tenant.sql -- ═══════════════════════════════════════════════════════════════════════════════ -- UUIDs determinísticos: -- Prefijo: 00000000-0000-0000-0004-XXXXXXXXXXXX para proyectos/obras -- Constantes -- tenant_id: 00000000-0000-0000-0003-000000000001 BEGIN; -- Variable para el tenant DO $$ DECLARE v_tenant_id UUID := '00000000-0000-0000-0003-000000000001'; v_admin_id UUID := '00000000-0000-0000-0002-000000000101'; v_gerente_id UUID := '00000000-0000-0000-0002-000000000103'; BEGIN -- ───────────────────────────────────────────────────────────────────────────────── -- 1. PROTOTIPOS DE VIVIENDA -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.prototipos ( id, tenant_id, code, name, type, area_construction_m2, area_terrain_m2, bedrooms, bathrooms, parking_spaces, floors, base_price, is_active, created_at, created_by ) VALUES -- Horizontal - Casa tipo ('00000000-0000-0000-0004-000000000001', v_tenant_id, 'CASA-90', 'Casa Tipo 90', 'horizontal', 90.00, 120.00, 3, 2.5, 2, 2, 1850000.00, true, NOW(), v_admin_id), ('00000000-0000-0000-0004-000000000002', v_tenant_id, 'CASA-120', 'Casa Tipo 120', 'horizontal', 120.00, 150.00, 4, 3.0, 2, 2, 2450000.00, true, NOW(), v_admin_id), ('00000000-0000-0000-0004-000000000003', v_tenant_id, 'CASA-150', 'Casa Premium 150', 'horizontal', 150.00, 200.00, 4, 3.5, 3, 2, 3200000.00, true, NOW(), v_admin_id), -- Vertical - Departamentos ('00000000-0000-0000-0004-000000000004', v_tenant_id, 'DEPTO-65', 'Departamento 65', 'vertical', 65.00, NULL, 2, 1.0, 1, 1, 1250000.00, true, NOW(), v_admin_id), ('00000000-0000-0000-0004-000000000005', v_tenant_id, 'DEPTO-85', 'Departamento 85', 'vertical', 85.00, NULL, 2, 2.0, 1, 1, 1650000.00, true, NOW(), v_admin_id), ('00000000-0000-0000-0004-000000000006', v_tenant_id, 'DEPTO-110', 'Departamento Premium 110', 'vertical', 110.00, NULL, 3, 2.0, 2, 1, 2150000.00, true, NOW(), v_admin_id) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 2. FRACCIONAMIENTOS (PROYECTOS) -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.fraccionamientos ( id, tenant_id, code, name, status, project_type, total_lots, total_area_m2, buildable_area_m2, address, city, state, zip_code, start_date, estimated_end_date, is_active, created_at, created_by ) VALUES -- Proyecto 1: Horizontal - En construcción ('00000000-0000-0000-0004-000000000101', v_tenant_id, 'PALMAS-2024', 'Residencial Las Palmas', 'in_progress', 'horizontal', 120, 45000.00, 38000.00, 'Carr. Panamericana Norte Km 15', 'Aguascalientes', 'Aguascalientes', '20340', '2024-03-01', '2026-12-31', true, NOW(), v_gerente_id), -- Proyecto 2: Vertical - En construcción ('00000000-0000-0000-0004-000000000102', v_tenant_id, 'DIAMANTE-2024', 'Torre Diamante', 'in_progress', 'vertical', 48, 8500.00, 6200.00, 'Blvd. A Zacatecas 1200, Centro', 'Aguascalientes', 'Aguascalientes', '20000', '2024-06-01', '2027-06-30', true, NOW(), v_gerente_id), -- Proyecto 3: Comercial - En planeación ('00000000-0000-0000-0004-000000000103', v_tenant_id, 'PLAZA-2025', 'Plaza Central', 'planning', 'commercial', 24, 12000.00, 9500.00, 'Av. López Mateos 500', 'Aguascalientes', 'Aguascalientes', '20230', '2025-01-15', '2026-06-30', true, NOW(), v_gerente_id) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 3. ETAPAS -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.etapas ( id, tenant_id, fraccionamiento_id, code, name, sequence, status, total_lots, start_date, expected_end_date, created_at, created_by ) VALUES -- Las Palmas - 3 etapas ('00000000-0000-0000-0004-000000000201', v_tenant_id, '00000000-0000-0000-0004-000000000101', 'PALMAS-E1', 'Etapa 1 - Norte', 1, 'in_progress', 40, '2024-03-01', '2025-06-30', NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000202', v_tenant_id, '00000000-0000-0000-0004-000000000101', 'PALMAS-E2', 'Etapa 2 - Centro', 2, 'planning', 40, '2025-07-01', '2026-06-30', NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000203', v_tenant_id, '00000000-0000-0000-0004-000000000101', 'PALMAS-E3', 'Etapa 3 - Sur', 3, 'draft', 40, '2026-07-01', '2026-12-31', NOW(), v_gerente_id), -- Torre Diamante - 1 etapa (es una sola torre) ('00000000-0000-0000-0004-000000000204', v_tenant_id, '00000000-0000-0000-0004-000000000102', 'DIAMANTE-E1', 'Torre Principal', 1, 'in_progress', 48, '2024-06-01', '2027-06-30', NOW(), v_gerente_id), -- Plaza Central - 2 etapas ('00000000-0000-0000-0004-000000000205', v_tenant_id, '00000000-0000-0000-0004-000000000103', 'PLAZA-E1', 'Fase 1 - Locales Ancla', 1, 'planning', 12, '2025-01-15', '2025-12-31', NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000206', v_tenant_id, '00000000-0000-0000-0004-000000000103', 'PLAZA-E2', 'Fase 2 - Locales Menores', 2, 'draft', 12, '2026-01-01', '2026-06-30', NOW(), v_gerente_id) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 4. MANZANAS (Para Las Palmas - Horizontal) -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.manzanas ( id, tenant_id, etapa_id, code, name, total_lots, created_at, created_by ) VALUES -- Etapa 1 - 4 manzanas de 10 lotes cada una ('00000000-0000-0000-0004-000000000301', v_tenant_id, '00000000-0000-0000-0004-000000000201', 'M1-A', 'Manzana A', 10, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000302', v_tenant_id, '00000000-0000-0000-0004-000000000201', 'M1-B', 'Manzana B', 10, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000303', v_tenant_id, '00000000-0000-0000-0004-000000000201', 'M1-C', 'Manzana C', 10, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000304', v_tenant_id, '00000000-0000-0000-0004-000000000201', 'M1-D', 'Manzana D', 10, NOW(), v_gerente_id), -- Etapa 2 - 4 manzanas ('00000000-0000-0000-0004-000000000305', v_tenant_id, '00000000-0000-0000-0004-000000000202', 'M2-A', 'Manzana A', 10, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000306', v_tenant_id, '00000000-0000-0000-0004-000000000202', 'M2-B', 'Manzana B', 10, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000307', v_tenant_id, '00000000-0000-0000-0004-000000000202', 'M2-C', 'Manzana C', 10, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000308', v_tenant_id, '00000000-0000-0000-0004-000000000202', 'M2-D', 'Manzana D', 10, NOW(), v_gerente_id) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 5. TORRES (Para Torre Diamante - Vertical) -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.torres ( id, tenant_id, etapa_id, code, name, total_floors, total_units, status, created_at, created_by ) VALUES ('00000000-0000-0000-0004-000000000401', v_tenant_id, '00000000-0000-0000-0004-000000000204', 'TORRE-A', 'Torre A - Diamante', 12, 48, 'in_progress', NOW(), v_gerente_id) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 6. NIVELES (Pisos de la torre) -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.niveles ( id, tenant_id, torre_id, floor_number, name, total_units, created_at, created_by ) VALUES ('00000000-0000-0000-0004-000000000501', v_tenant_id, '00000000-0000-0000-0004-000000000401', 1, 'Planta Baja', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000502', v_tenant_id, '00000000-0000-0000-0004-000000000401', 2, 'Nivel 2', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000503', v_tenant_id, '00000000-0000-0000-0004-000000000401', 3, 'Nivel 3', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000504', v_tenant_id, '00000000-0000-0000-0004-000000000401', 4, 'Nivel 4', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000505', v_tenant_id, '00000000-0000-0000-0004-000000000401', 5, 'Nivel 5', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000506', v_tenant_id, '00000000-0000-0000-0004-000000000401', 6, 'Nivel 6', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000507', v_tenant_id, '00000000-0000-0000-0004-000000000401', 7, 'Nivel 7', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000508', v_tenant_id, '00000000-0000-0000-0004-000000000401', 8, 'Nivel 8', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000509', v_tenant_id, '00000000-0000-0000-0004-000000000401', 9, 'Nivel 9', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000510', v_tenant_id, '00000000-0000-0000-0004-000000000401', 10, 'Nivel 10', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000511', v_tenant_id, '00000000-0000-0000-0004-000000000401', 11, 'Nivel 11', 4, NOW(), v_gerente_id), ('00000000-0000-0000-0004-000000000512', v_tenant_id, '00000000-0000-0000-0004-000000000401', 12, 'Penthouse', 4, NOW(), v_gerente_id) ON CONFLICT (id) DO NOTHING; END $$; -- ───────────────────────────────────────────────────────────────────────────────── -- 7. LOTES (Manzana A - Etapa 1 - Las Palmas) -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.lotes ( id, tenant_id, manzana_id, prototipo_id, code, official_number, status, area_m2, front_m, depth_m, price_base, price_final, created_at, created_by ) VALUES -- Manzana A - 10 lotes ('00000000-0000-0000-0004-000000000601', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000001', 'A-01', '1', 'delivered', 120.00, 8.00, 15.00, 1850000.00, 1900000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000602', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000001', 'A-02', '2', 'delivered', 120.00, 8.00, 15.00, 1850000.00, 1900000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000603', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000002', 'A-03', '3', 'under_construction', 150.00, 10.00, 15.00, 2450000.00, 2500000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000604', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000002', 'A-04', '4', 'under_construction', 150.00, 10.00, 15.00, 2450000.00, 2500000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000605', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000001', 'A-05', '5', 'sold', 120.00, 8.00, 15.00, 1850000.00, 1880000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000606', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000001', 'A-06', '6', 'sold', 120.00, 8.00, 15.00, 1850000.00, 1880000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000607', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000003', 'A-07', '7', 'reserved', 200.00, 12.50, 16.00, 3200000.00, 3300000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000608', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000003', 'A-08', '8', 'available', 200.00, 12.50, 16.00, 3200000.00, 3300000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000609', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000001', 'A-09', '9', 'available', 120.00, 8.00, 15.00, 1850000.00, 1850000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000610', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000301', '00000000-0000-0000-0004-000000000001', 'A-10', '10', 'available', 120.00, 8.00, 15.00, 1850000.00, 1850000.00, NOW(), '00000000-0000-0000-0002-000000000103'), -- Manzana B - 10 lotes más ('00000000-0000-0000-0004-000000000611', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000302', '00000000-0000-0000-0004-000000000001', 'B-01', '11', 'under_construction', 120.00, 8.00, 15.00, 1850000.00, 1900000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000612', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000302', '00000000-0000-0000-0004-000000000001', 'B-02', '12', 'under_construction', 120.00, 8.00, 15.00, 1850000.00, 1900000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000613', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000302', '00000000-0000-0000-0004-000000000002', 'B-03', '13', 'sold', 150.00, 10.00, 15.00, 2450000.00, 2480000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000614', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000302', '00000000-0000-0000-0004-000000000002', 'B-04', '14', 'available', 150.00, 10.00, 15.00, 2450000.00, 2450000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000615', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000302', '00000000-0000-0000-0004-000000000001', 'B-05', '15', 'available', 120.00, 8.00, 15.00, 1850000.00, 1850000.00, NOW(), '00000000-0000-0000-0002-000000000103') ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 8. DEPARTAMENTOS (Torre Diamante - Primeros 4 niveles) -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.departamentos ( id, tenant_id, nivel_id, prototipo_id, code, unit_number, status, area_m2, price_base, price_final, created_at, created_by ) VALUES -- Nivel 1 (Planta Baja) - 4 deptos ('00000000-0000-0000-0004-000000000701', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000501', '00000000-0000-0000-0004-000000000004', 'A-101', '101', 'delivered', 65.00, 1250000.00, 1300000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000702', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000501', '00000000-0000-0000-0004-000000000005', 'A-102', '102', 'delivered', 85.00, 1650000.00, 1700000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000703', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000501', '00000000-0000-0000-0004-000000000005', 'A-103', '103', 'sold', 85.00, 1650000.00, 1680000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000704', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000501', '00000000-0000-0000-0004-000000000004', 'A-104', '104', 'sold', 65.00, 1250000.00, 1280000.00, NOW(), '00000000-0000-0000-0002-000000000103'), -- Nivel 2 - 4 deptos ('00000000-0000-0000-0004-000000000705', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000502', '00000000-0000-0000-0004-000000000004', 'A-201', '201', 'under_construction', 65.00, 1250000.00, 1320000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000706', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000502', '00000000-0000-0000-0004-000000000005', 'A-202', '202', 'under_construction', 85.00, 1650000.00, 1720000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000707', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000502', '00000000-0000-0000-0004-000000000005', 'A-203', '203', 'reserved', 85.00, 1650000.00, 1720000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000708', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000502', '00000000-0000-0000-0004-000000000004', 'A-204', '204', 'available', 65.00, 1250000.00, 1320000.00, NOW(), '00000000-0000-0000-0002-000000000103'), -- Nivel 3 - 4 deptos ('00000000-0000-0000-0004-000000000709', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000503', '00000000-0000-0000-0004-000000000004', 'A-301', '301', 'available', 65.00, 1250000.00, 1340000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000710', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000503', '00000000-0000-0000-0004-000000000005', 'A-302', '302', 'available', 85.00, 1650000.00, 1740000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000711', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000503', '00000000-0000-0000-0004-000000000006', 'A-303', '303', 'available', 110.00, 2150000.00, 2250000.00, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000712', '00000000-0000-0000-0003-000000000001', '00000000-0000-0000-0004-000000000503', '00000000-0000-0000-0004-000000000004', 'A-304', '304', 'available', 65.00, 1250000.00, 1340000.00, NOW(), '00000000-0000-0000-0002-000000000103') ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 9. SUBCONTRATISTAS -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO construction.subcontratistas ( id, tenant_id, code, name, legal_name, tax_id, specialty, contact_name, contact_phone, contact_email, rating, is_active, created_at, created_by ) VALUES ('00000000-0000-0000-0004-000000000801', '00000000-0000-0000-0003-000000000001', 'SUB-001', 'Cimientos del Norte', 'Cimientos del Norte S.A. de C.V.', 'CNO010101AAA', 'Cimentación y Estructuras', 'Roberto Fundación', '+52 449 111 1111', 'contacto@cimientosnorte.com', 4.5, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000802', '00000000-0000-0000-0003-000000000001', 'SUB-002', 'Electrificaciones AGS', 'Electrificaciones AGS S.A. de C.V.', 'EAG010101BBB', 'Instalaciones Eléctricas', 'Luis Voltaje', '+52 449 222 2222', 'luis@electroags.com', 4.8, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000803', '00000000-0000-0000-0003-000000000001', 'SUB-003', 'Plomería Integral', 'Plomería Integral de Aguascalientes S.A. de C.V.', 'PIA010101CCC', 'Instalaciones Hidráulicas y Sanitarias', 'Pedro Tubería', '+52 449 333 3333', 'pedro@plomeriaintegral.com', 4.2, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000804', '00000000-0000-0000-0003-000000000001', 'SUB-004', 'Acabados Finos', 'Acabados Finos y Decoración S.A. de C.V.', 'AFD010101DDD', 'Acabados y Pintura', 'María Acabado', '+52 449 444 4444', 'maria@acabadosfinos.com', 4.6, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000805', '00000000-0000-0000-0003-000000000001', 'SUB-005', 'Herrería Artística', 'Herrería y Cancelería Artística S.A. de C.V.', 'HCA010101EEE', 'Herrería y Cancelería', 'José Fierro', '+52 449 555 5555', 'jose@herreriaartistica.com', 4.3, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000806', '00000000-0000-0000-0003-000000000001', 'SUB-006', 'Carpintería Moderna', 'Carpintería y Cocinas Modernas S.A. de C.V.', 'CCM010101FFF', 'Carpintería y Cocinas', 'Francisco Madera', '+52 449 666 6666', 'francisco@carpinteriamoderna.com', 4.7, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000807', '00000000-0000-0000-0003-000000000001', 'SUB-007', 'Impermeabilizantes Pro', 'Impermeabilizaciones Profesionales S.A. de C.V.', 'IPR010101GGG', 'Impermeabilización', 'Carlos Impermeable', '+52 449 777 7777', 'carlos@imperpro.com', 4.4, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000808', '00000000-0000-0000-0003-000000000001', 'SUB-008', 'Pisos y Azulejos', 'Pisos y Azulejos del Centro S.A. de C.V.', 'PAC010101HHH', 'Pisos y Recubrimientos', 'Ana Piso', '+52 449 888 8888', 'ana@pisosyazulejos.com', 4.5, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000809', '00000000-0000-0000-0003-000000000001', 'SUB-009', 'Vidrios y Cristales', 'Vidrios y Cristalería Premium S.A. de C.V.', 'VCP010101III', 'Vidrio y Aluminio', 'Raúl Cristal', '+52 449 999 9999', 'raul@vidriospremium.com', 4.1, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-0004-000000000810', '00000000-0000-0000-0003-000000000001', 'SUB-010', 'Jardinería Integral', 'Jardinería y Paisajismo Integral S.A. de C.V.', 'JPI010101JJJ', 'Jardinería y Áreas Verdes', 'Elena Verde', '+52 449 101 0101', 'elena@jardineriaintegral.com', 4.9, true, NOW(), '00000000-0000-0000-0002-000000000103') ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- VERIFICACIÓN -- ───────────────────────────────────────────────────────────────────────────────── DO $$ DECLARE v_prototipos INTEGER; v_fraccionamientos INTEGER; v_etapas INTEGER; v_manzanas INTEGER; v_torres INTEGER; v_niveles INTEGER; v_lotes INTEGER; v_departamentos INTEGER; v_subcontratistas INTEGER; BEGIN SELECT COUNT(*) INTO v_prototipos FROM construction.prototipos; SELECT COUNT(*) INTO v_fraccionamientos FROM construction.fraccionamientos; SELECT COUNT(*) INTO v_etapas FROM construction.etapas; SELECT COUNT(*) INTO v_manzanas FROM construction.manzanas; SELECT COUNT(*) INTO v_torres FROM construction.torres; SELECT COUNT(*) INTO v_niveles FROM construction.niveles; SELECT COUNT(*) INTO v_lotes FROM construction.lotes; SELECT COUNT(*) INTO v_departamentos FROM construction.departamentos; SELECT COUNT(*) INTO v_subcontratistas FROM construction.subcontratistas; RAISE NOTICE '══════════════════════════════════════════════════════════════'; RAISE NOTICE 'SEED 04 - PROYECTOS Y OBRAS - COMPLETADO'; RAISE NOTICE '══════════════════════════════════════════════════════════════'; RAISE NOTICE 'Prototipos: %', v_prototipos; RAISE NOTICE 'Fraccionamientos: %', v_fraccionamientos; RAISE NOTICE 'Etapas: %', v_etapas; RAISE NOTICE 'Manzanas: %', v_manzanas; RAISE NOTICE 'Torres: %', v_torres; RAISE NOTICE 'Niveles: %', v_niveles; RAISE NOTICE 'Lotes: %', v_lotes; RAISE NOTICE 'Departamentos: %', v_departamentos; RAISE NOTICE 'Subcontratistas: %', v_subcontratistas; RAISE NOTICE '══════════════════════════════════════════════════════════════'; END $$; COMMIT; -- ═══════════════════════════════════════════════════════════════════════════════ -- FIN SEED 04 -- ═══════════════════════════════════════════════════════════════════════════════