-- ============================================================
-- Seed Data - Datos iniciales del sistema
-- ============================================================

USE `inventory_db`;

-- Módulos del sistema
INSERT INTO `modules` (`name`, `label`) VALUES
('inventory', 'Inventario de Equipos'),
('maintenance', 'Mantenimientos y Revisiones'),
('warranty', 'Garantías'),
('users', 'Gestión de Usuarios'),
('reports', 'Reportes');

-- Permisos por módulo
INSERT INTO `permissions` (`module_id`, `action`, `description`) VALUES
(1, 'view',   'Ver inventario de equipos'),
(1, 'create', 'Agregar nuevos equipos'),
(1, 'edit',   'Editar equipos existentes'),
(1, 'delete', 'Eliminar equipos'),
(1, 'export', 'Exportar inventario'),
(2, 'view',   'Ver mantenimientos'),
(2, 'create', 'Crear órdenes de mantenimiento'),
(2, 'edit',   'Editar mantenimientos'),
(2, 'delete', 'Eliminar mantenimientos'),
(2, 'approve','Aprobar mantenimientos completados'),
(3, 'view',   'Ver garantías'),
(3, 'create', 'Registrar garantías'),
(3, 'edit',   'Editar garantías'),
(3, 'delete', 'Eliminar garantías'),
(4, 'view',   'Ver usuarios'),
(4, 'create', 'Crear usuarios'),
(4, 'edit',   'Editar usuarios'),
(4, 'delete', 'Desactivar usuarios'),
(5, 'view',   'Ver reportes'),
(5, 'export', 'Exportar reportes');

-- Roles
INSERT INTO `roles` (`name`, `description`) VALUES
('Administrador', 'Acceso total al sistema'),
('Supervisor',    'Supervisión de operaciones, aprobación de mantenimientos'),
('Técnico',       'Registro de mantenimientos y revisiones de campo/taller'),
('Auditor',       'Solo lectura - inventario, mantenimientos y reportes');

-- Permisos Administrador (todos)
INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT 1, id FROM `permissions`;

-- Permisos Supervisor
INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT 2, id FROM `permissions`
WHERE `module_id` IN (1,2,3,5)
   OR (`module_id` = 4 AND `action` = 'view');

-- Permisos Técnico
INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT 3, id FROM `permissions`
WHERE (`module_id` = 1 AND `action` IN ('view','edit'))
   OR (`module_id` = 2 AND `action` IN ('view','create','edit'))
   OR (`module_id` = 3 AND `action` = 'view')
   OR (`module_id` = 5 AND `action` = 'view');

-- Permisos Auditor (solo lectura)
INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT 4, id FROM `permissions`
WHERE `action` = 'view';

-- Usuario Administrador por defecto
-- Contraseña: Admin@1234 (cambiar en producción)
INSERT INTO `users` (`role_id`, `name`, `email`, `password_hash`, `phone`, `is_active`) VALUES
(1, 'Administrador', 'admin@sistema.com',
 '$2y$12$9ZWuMTUHuEjFLPl94V16cOEoKIBFicI7qJDzZ6EIfNbnX15NcAhkK',
 NULL, 1);

-- Categorías de equipos
INSERT INTO `equipment_categories` (`name`, `description`, `icon`) VALUES
('Medidores de Agua',         'Medidores de caudal y volumen de agua',              'droplet'),
('Telemetrías',               'Equipos de telemetría y transmisión remota de datos', 'wifi'),
('Medidores de Presión',      'Manómetros y transmisores de presión',               'gauge'),
('Medidores de Temperatura',  'Termómetros, termopares y transmisores',             'thermometer'),
('Medidores de pH',           'Analizadores y sondas de pH',                        'flask'),
('Conductivímetros',          'Medidores de conductividad eléctrica',               'zap'),
('Equipos Multivariable',     'Analizadores multiparámetro',                        'layers');

-- Tipos de equipos con esquemas de parámetros
INSERT INTO `equipment_types` (`category_id`, `name`, `brand`, `model`, `unit_of_measure`, `parameter_schema`) VALUES
(1, 'Medidor Electromagnético', 'Endress+Hauser', 'Promag 10W', 'm³/h',
 '[{"name":"Caudal","unit":"m³/h","min":0,"max":1000},{"name":"Volumen Acumulado","unit":"m³","min":0,"max":null}]'),

(1, 'Medidor Ultrasónico', 'Siemens', 'SITRANS F US', 'm³/h',
 '[{"name":"Caudal","unit":"m³/h","min":0,"max":500},{"name":"Velocidad de Flujo","unit":"m/s","min":-10,"max":10}]'),

(2, 'RTU Telemetría', 'Sielox', 'ACS-8000', NULL,
 '[{"name":"Señal GSM","unit":"dBm","min":-120,"max":0},{"name":"Batería","unit":"%","min":0,"max":100}]'),

(3, 'Transmisor de Presión', 'Rosemount', '3051S', 'bar',
 '[{"name":"Presión","unit":"bar","min":0,"max":400},{"name":"Temperatura del Proceso","unit":"°C","min":-50,"max":150}]'),

(4, 'Termopar Tipo K', 'Omega', 'KQXL-14G', '°C',
 '[{"name":"Temperatura","unit":"°C","min":-200,"max":1372}]'),

(5, 'Analizador de pH', 'Hach', 'PHC301', 'pH',
 '[{"name":"pH","unit":"pH","min":0,"max":14},{"name":"ORP","unit":"mV","min":-2000,"max":2000},{"name":"Temperatura","unit":"°C","min":0,"max":100}]'),

(6, 'Conductivímetro en Línea', 'Endress+Hauser', 'Indumax CLS50D', 'µS/cm',
 '[{"name":"Conductividad","unit":"µS/cm","min":0,"max":2000},{"name":"Temperatura","unit":"°C","min":0,"max":150}]'),

(7, 'Analizador Multiparámetro', 'YSI', 'Pro DSS', NULL,
 '[{"name":"Oxígeno Disuelto","unit":"mg/L","min":0,"max":50},{"name":"pH","unit":"pH","min":0,"max":14},{"name":"Conductividad","unit":"µS/cm","min":0,"max":100000},{"name":"Temperatura","unit":"°C","min":-5,"max":70},{"name":"Turbiedad","unit":"NTU","min":0,"max":4000}]');
