-- Verificar y crear datos faltantes
USE pos_rutas;

-- Verificar si hay roles
SELECT COUNT(*) FROM roles;

-- Si no hay roles, insertarlos
INSERT IGNORE INTO roles (id, nombre, descripcion) VALUES
(1, 'super_admin', 'Administrador con acceso total al sistema'),
(2, 'admin', 'Administrador con permisos limitados'),
(3, 'supervisor', 'Supervisor de operaciones'),
(4, 'operador', 'Usuario operativo básico');

-- Verificar si hay permisos
SELECT COUNT(*) FROM permisos;

-- Si no hay permisos, insertarlos
INSERT IGNORE INTO permisos (id, nombre, descripcion) VALUES
(1, 'crear', 'Crear nuevos registros'),
(2, 'leer', 'Leer y consultar registros'),
(3, 'actualizar', 'Modificar registros existentes'),
(4, 'eliminar', 'Eliminar registros'),
(5, 'exportar', 'Exportar datos'),
(6, 'importar', 'Importar datos');

-- Verificar si hay módulos
SELECT COUNT(*) FROM modulos;

-- Si no hay módulos, insertarlos
INSERT IGNORE INTO modulos (id, nombre, descripcion, icono, ruta, orden) VALUES
(1, 'dashboard', 'Panel principal', 'dashboard', '/dashboard', 1),
(2, 'usuarios', 'Gestión de usuarios', 'users', '/usuarios', 2),
(3, 'rutas', 'Gestión de rutas', 'map', '/rutas', 3),
(4, 'vehiculos', 'Gestión de vehículos', 'truck', '/vehiculos', 4),
(5, 'conductores', 'Gestión de conductores', 'user-check', '/conductores', 5),
(6, 'reportes', 'Reportes y estadísticas', 'bar-chart', '/reportes', 6),
(7, 'configuracion', 'Configuración del sistema', 'settings', '/configuracion', 7);

-- Asignar rol super_admin al usuario admin (si no existe)
INSERT IGNORE INTO usuario_roles (usuario_id, rol_id) VALUES (1, 1);

-- Dar todos los permisos a super_admin (borrar anteriores y recrear)
DELETE FROM rol_modulo_permisos WHERE rol_id = 1;

INSERT INTO rol_modulo_permisos (rol_id, modulo_id, permiso_id)
SELECT 1, m.id, p.id
FROM modulos m
CROSS JOIN permisos p
WHERE m.activo = TRUE;

-- Verificar resultado
SELECT 
    'Roles:' as tipo, COUNT(*) as cantidad FROM roles
UNION ALL
SELECT 'Permisos:', COUNT(*) FROM permisos
UNION ALL
SELECT 'Módulos:', COUNT(*) FROM modulos
UNION ALL
SELECT 'Usuario-Roles:', COUNT(*) FROM usuario_roles
UNION ALL
SELECT 'Permisos asignados:', COUNT(*) FROM rol_modulo_permisos;