-- ═══════════════════════════════════════════════════════════════════════════════ -- SEED 10: ACTIVOS Y DOCUMENTOS -- ═══════════════════════════════════════════════════════════════════════════════ -- Proyecto: ERP Construcción -- Autor: Claude Opus 4.5 -- Fecha: 2026-02-03 -- Descripción: Equipos, maquinaria, mantenimientos, categorías y documentos -- Dependencias: 03-empresa-tenant.sql, 04-proyectos-obras.sql -- ═══════════════════════════════════════════════════════════════════════════════ -- UUIDs: 00000000-0000-0000-000a-XXXXXXXXXXXX BEGIN; -- ───────────────────────────────────────────────────────────────────────────────── -- 1. CATEGORÍAS DE ACTIVOS -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO assets.asset_categories ( id, tenant_id, code, name, description, parent_id, is_active, created_at ) VALUES ('00000000-0000-0000-000a-000000000001', '00000000-0000-0000-0003-000000000001', 'MAQ', 'Maquinaria Pesada', 'Equipos de excavación y movimiento de tierra', NULL, true, NOW()), ('00000000-0000-0000-000a-000000000002', '00000000-0000-0000-0003-000000000001', 'VEH', 'Vehículos', 'Unidades de transporte', NULL, true, NOW()), ('00000000-0000-0000-000a-000000000003', '00000000-0000-0000-0003-000000000001', 'HER', 'Herramienta', 'Herramienta menor y equipo portátil', NULL, true, NOW()), ('00000000-0000-0000-000a-000000000004', '00000000-0000-0000-0003-000000000001', 'EQU', 'Equipo de Construcción', 'Equipo especializado de construcción', NULL, true, NOW()), ('00000000-0000-0000-000a-000000000005', '00000000-0000-0000-0003-000000000001', 'OFI', 'Equipo de Oficina', 'Mobiliario y equipo de oficina', NULL, true, NOW()) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 2. ACTIVOS / EQUIPOS -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO assets.assets ( id, tenant_id, asset_code, name, category_id, asset_type, status, ownership_type, brand, model, serial_number, year_manufactured, purchase_date, purchase_price, current_hours, current_kilometers, fuel_capacity, fuel_consumption_rate, useful_life_years, depreciation_method, current_project_id, is_active, created_at, created_by ) VALUES -- Maquinaria pesada ('00000000-0000-0000-000a-000000000101', '00000000-0000-0000-0003-000000000001', 'MAQ-001', 'Retroexcavadora CAT 420F2', '00000000-0000-0000-000a-000000000001', 'heavy_machinery', 'assigned', 'owned', 'Caterpillar', '420F2', 'CAT420F2-2022-12345', 2022, '2022-06-15', 1850000.00, 2500, NULL, 200, 12.5, 10, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000102', '00000000-0000-0000-0003-000000000001', 'MAQ-002', 'Excavadora CAT 320', '00000000-0000-0000-000a-000000000001', 'heavy_machinery', 'assigned', 'owned', 'Caterpillar', '320', 'CAT320-2021-67890', 2021, '2021-03-20', 3200000.00, 4200, NULL, 400, 25.0, 10, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000103', '00000000-0000-0000-0003-000000000001', 'MAQ-003', 'Cargador Frontal 966M', '00000000-0000-0000-000a-000000000001', 'heavy_machinery', 'available', 'leased', 'Caterpillar', '966M', 'CAT966M-2023-11111', 2023, '2024-01-01', NULL, 800, NULL, 350, 22.0, NULL, NULL, NULL, true, NOW(), '00000000-0000-0000-0002-000000000106'), -- Vehículos ('00000000-0000-0000-000a-000000000104', '00000000-0000-0000-0003-000000000001', 'VEH-001', 'Camioneta Nissan NP300', '00000000-0000-0000-000a-000000000002', 'vehicle', 'assigned', 'owned', 'Nissan', 'NP300 Frontier', 'NISSNP300-2023-XXXXX', 2023, '2023-02-10', 450000.00, NULL, 35000, 80, 10.5, 5, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000105', '00000000-0000-0000-0003-000000000001', 'VEH-002', 'Camión Volteo Kenworth', '00000000-0000-0000-000a-000000000002', 'vehicle', 'assigned', 'owned', 'Kenworth', 'T800', 'KENT800-2020-YYYYY', 2020, '2020-08-15', 1200000.00, NULL, 125000, 300, 3.5, 10, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106'), -- Equipo de construcción ('00000000-0000-0000-000a-000000000106', '00000000-0000-0000-0003-000000000001', 'EQU-001', 'Revolvedora de concreto', '00000000-0000-0000-000a-000000000004', 'light_equipment', 'assigned', 'owned', 'Cipsa', 'Ultra 10', 'CIPSA-U10-2022-001', 2022, '2022-04-01', 85000.00, 1200, NULL, 15, 4.0, 8, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000107', '00000000-0000-0000-0003-000000000001', 'EQU-002', 'Vibrador de concreto', '00000000-0000-0000-000a-000000000004', 'light_equipment', 'assigned', 'owned', 'Wacker', 'M2500', 'WACKER-M2500-2023-002', 2023, '2023-05-15', 25000.00, 600, NULL, NULL, 2.0, 5, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000108', '00000000-0000-0000-0003-000000000001', 'EQU-003', 'Placa vibradora', '00000000-0000-0000-000a-000000000004', 'light_equipment', 'available', 'owned', 'Wacker', 'WP1550', 'WACKER-WP1550-2022-003', 2022, '2022-07-20', 45000.00, 800, NULL, 8, 3.5, 8, 'straight_line', NULL, true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000109', '00000000-0000-0000-0003-000000000001', 'EQU-004', 'Cortadora de concreto', '00000000-0000-0000-000a-000000000004', 'light_equipment', 'in_maintenance', 'owned', 'Stihl', 'TS 800', 'STIHL-TS800-2021-004', 2021, '2021-11-10', 35000.00, 1500, NULL, 1.5, 2.5, 5, 'straight_line', NULL, true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000110', '00000000-0000-0000-0003-000000000001', 'EQU-005', 'Andamio tubular (lote 20 pzas)', '00000000-0000-0000-000a-000000000004', 'tool', 'assigned', 'owned', 'Scaffolding', 'Standard', 'SCAF-STD-2022-LOT01', 2022, '2022-03-01', 120000.00, NULL, NULL, NULL, NULL, 10, 'straight_line', '00000000-0000-0000-0004-000000000101', true, NOW(), '00000000-0000-0000-0002-000000000106') ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 3. PLANES DE MANTENIMIENTO -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO assets.maintenance_plans ( id, tenant_id, plan_code, name, asset_id, maintenance_type, frequency, estimated_duration_hours, estimated_cost, tasks_description, is_active, created_at, created_by ) VALUES ('00000000-0000-0000-000a-000000000201', '00000000-0000-0000-0003-000000000001', 'PM-MAQ-001', 'Mantenimiento preventivo retroexcavadora', '00000000-0000-0000-000a-000000000101', 'preventive', 'monthly', 4, 15000.00, 'Cambio de aceite, filtros, revisión de niveles, inspección de mangueras', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000202', '00000000-0000-0000-0003-000000000001', 'PM-MAQ-002', 'Mantenimiento 500 horas excavadora', '00000000-0000-0000-000a-000000000102', 'preventive', 'by_hours', 8, 35000.00, 'Servicio mayor: cambio de aceites, filtros, revisión de sistema hidráulico', true, NOW(), '00000000-0000-0000-0002-000000000106'), ('00000000-0000-0000-000a-000000000203', '00000000-0000-0000-0003-000000000001', 'PM-VEH-001', 'Servicio camioneta 10,000 km', '00000000-0000-0000-000a-000000000104', 'preventive', 'by_kilometers', 2, 5000.00, 'Cambio de aceite, filtros, revisión de frenos y suspensión', true, NOW(), '00000000-0000-0000-0002-000000000106') ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 4. CATEGORÍAS DE DOCUMENTOS -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO documents.document_categories ( id, tenant_id, code, name, description, parent_id, level, is_active, created_at ) VALUES ('00000000-0000-0000-000a-000000000301', '00000000-0000-0000-0003-000000000001', 'PLANOS', 'Planos', 'Planos arquitectónicos y de ingeniería', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000302', '00000000-0000-0000-0003-000000000001', 'PERMISOS', 'Permisos y Licencias', 'Permisos de construcción y licencias', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000303', '00000000-0000-0000-0003-000000000001', 'CONTRATOS', 'Contratos', 'Contratos y addendas', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000304', '00000000-0000-0000-0003-000000000001', 'FACTURAS', 'Facturas y Comprobantes', 'CFDIs y comprobantes fiscales', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000305', '00000000-0000-0000-0003-000000000001', 'ESTIMACIONES', 'Estimaciones', 'Estimaciones y generadores', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000306', '00000000-0000-0000-0003-000000000001', 'SEGURIDAD', 'Documentos HSE', 'Documentación de seguridad e higiene', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000307', '00000000-0000-0000-0003-000000000001', 'CALIDAD', 'Control de Calidad', 'Reportes e inspecciones de calidad', NULL, 1, true, NOW()), ('00000000-0000-0000-000a-000000000308', '00000000-0000-0000-0003-000000000001', 'GARANTIAS', 'Garantías', 'Garantías de equipos y materiales', NULL, 1, true, NOW()), -- Subcategorías de Planos ('00000000-0000-0000-000a-000000000311', '00000000-0000-0000-0003-000000000001', 'PLANOS-ARQ', 'Planos Arquitectónicos', 'Planos de arquitectura', '00000000-0000-0000-000a-000000000301', 2, true, NOW()), ('00000000-0000-0000-000a-000000000312', '00000000-0000-0000-0003-000000000001', 'PLANOS-EST', 'Planos Estructurales', 'Planos de estructura', '00000000-0000-0000-000a-000000000301', 2, true, NOW()), ('00000000-0000-0000-000a-000000000313', '00000000-0000-0000-0003-000000000001', 'PLANOS-INS', 'Planos de Instalaciones', 'Planos de instalaciones', '00000000-0000-0000-000a-000000000301', 2, true, NOW()) ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- 5. DOCUMENTOS -- ───────────────────────────────────────────────────────────────────────────────── INSERT INTO documents.documents ( id, tenant_id, document_code, title, category_id, document_type, status, access_level, author, document_date, project_id, description, requires_approval, is_locked, created_at, created_by ) VALUES ('00000000-0000-0000-000a-000000000401', '00000000-0000-0000-0003-000000000001', 'DOC-PALMAS-001', 'Plano Arquitectónico General - Las Palmas E1', '00000000-0000-0000-000a-000000000311', 'plan', 'approved', 'internal', 'Arq. Juan Pérez', '2024-01-15', '00000000-0000-0000-0004-000000000101', 'Plano general de distribución Etapa 1', true, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-000a-000000000402', '00000000-0000-0000-0003-000000000001', 'DOC-PALMAS-002', 'Plano Estructural Cimentación - Las Palmas E1', '00000000-0000-0000-000a-000000000312', 'plan', 'approved', 'internal', 'Ing. Roberto García', '2024-01-20', '00000000-0000-0000-0004-000000000101', 'Plano de cimentación con detalles estructurales', true, true, NOW(), '00000000-0000-0000-0002-000000000103'), ('00000000-0000-0000-000a-000000000403', '00000000-0000-0000-0003-000000000001', 'DOC-PALMAS-003', 'Licencia de Construcción Municipal', '00000000-0000-0000-000a-000000000302', 'permit', 'approved', 'confidential', 'Municipio de Aguascalientes', '2024-02-01', '00000000-0000-0000-0004-000000000101', 'Licencia de construcción vigente', false, true, NOW(), '00000000-0000-0000-0002-000000000102'), ('00000000-0000-0000-000a-000000000404', '00000000-0000-0000-0003-000000000001', 'DOC-PALMAS-004', 'Contrato Subcontratista Cimentaciones', '00000000-0000-0000-000a-000000000303', 'contract', 'approved', 'restricted', 'Constructora Demo', '2024-02-28', '00000000-0000-0000-0004-000000000101', 'Contrato firmado con Cimientos del Norte', true, true, NOW(), '00000000-0000-0000-0002-000000000102'), ('00000000-0000-0000-000a-000000000405', '00000000-0000-0000-0003-000000000001', 'DOC-PALMAS-005', 'Reporte de Inspección Calidad - Cimentación Lote A-01', '00000000-0000-0000-000a-000000000307', 'report', 'approved', 'internal', 'Diego Calidad Rodríguez', '2024-03-28', '00000000-0000-0000-0004-000000000101', 'Reporte de inspección de cimentación aprobado', true, false, NOW(), '00000000-0000-0000-0002-000000000110') ON CONFLICT (id) DO NOTHING; -- ───────────────────────────────────────────────────────────────────────────────── -- VERIFICACIÓN -- ───────────────────────────────────────────────────────────────────────────────── DO $$ DECLARE v_categorias_activos INTEGER; v_activos INTEGER; v_planes_mant INTEGER; v_categorias_docs INTEGER; v_documentos INTEGER; BEGIN SELECT COUNT(*) INTO v_categorias_activos FROM assets.asset_categories; SELECT COUNT(*) INTO v_activos FROM assets.assets; SELECT COUNT(*) INTO v_planes_mant FROM assets.maintenance_plans; SELECT COUNT(*) INTO v_categorias_docs FROM documents.document_categories; SELECT COUNT(*) INTO v_documentos FROM documents.documents; RAISE NOTICE '══════════════════════════════════════════════════════════════'; RAISE NOTICE 'SEED 10 - ACTIVOS Y DOCUMENTOS - COMPLETADO'; RAISE NOTICE '══════════════════════════════════════════════════════════════'; RAISE NOTICE 'Categorías de activos: %', v_categorias_activos; RAISE NOTICE 'Activos/Equipos: %', v_activos; RAISE NOTICE 'Planes de mantenimiento: %', v_planes_mant; RAISE NOTICE 'Categorías de documentos: %', v_categorias_docs; RAISE NOTICE 'Documentos: %', v_documentos; RAISE NOTICE '══════════════════════════════════════════════════════════════'; END $$; COMMIT; -- ═══════════════════════════════════════════════════════════════════════════════ -- FIN SEED 10 -- ═══════════════════════════════════════════════════════════════════════════════