prepare("SELECT id FROM usuarios WHERE username = ? OR email = ?"); $stmt->execute([$username, $email]); if ($stmt->fetch()) { die("❌ Error: Ya existe un usuario con ese nombre de usuario o email\n"); } // Obtener el rol de Admin $stmt = $db->query("SELECT id FROM roles WHERE nombre = 'Admin' LIMIT 1"); $rol = $stmt->fetch(); if (!$rol) { die("❌ Error: No se encontró el rol de Admin. Ejecute primero el schema.sql\n"); } $rolId = $rol['id']; // Obtener el idioma español por defecto $stmt = $db->query("SELECT id FROM idiomas WHERE codigo = 'es' LIMIT 1"); $idioma = $stmt->fetch(); $idiomaId = $idioma ? $idioma['id'] : 1; // Hash de la contraseña $passwordHash = password_hash($password, PASSWORD_DEFAULT); // Insertar usuario $stmt = $db->prepare(" INSERT INTO usuarios (username, email, password, nombre_completo, rol_id, idioma_id, activo) VALUES (?, ?, ?, ?, ?, ?, 1) "); $stmt->execute([ $username, $email, $passwordHash, $nombreCompleto, $rolId, $idiomaId ]); $userId = $db->lastInsertId(); // Asignar todos los permisos al admin $stmt = $db->query("SELECT id FROM permisos"); $permisos = $stmt->fetchAll(PDO::FETCH_COLUMN); $stmtPermiso = $db->prepare("INSERT INTO usuarios_permisos (usuario_id, permiso_id) VALUES (?, ?)"); foreach ($permisos as $permisoId) { $stmtPermiso->execute([$userId, $permisoId]); } echo "\n========================================\n"; echo "✅ Usuario administrador creado exitosamente\n"; echo "========================================\n\n"; echo "Usuario: $username\n"; echo "Email: $email\n"; echo "Rol: Admin\n"; echo "ID: $userId\n"; echo "\nYa puede iniciar sesión en el sistema.\n\n"; } catch (PDOException $e) { echo "❌ Error de base de datos: " . $e->getMessage() . "\n"; exit(1); } catch (Exception $e) { echo "❌ Error: " . $e->getMessage() . "\n"; exit(1); }