idEquipoxUsuario = $idEquipoxUsuario; $this->idUsuario = $idUsuario; $this->idEquipo = $idEquipo; } public function registrarUsuarioEnEquipo() { $conexion = conexionBD(); if (is_array($conexion)) return $conexion; try { $sql = "INSERT INTO equipoxusuario (idUsuario, idEquipo) VALUES (:idUsuario, :idEquipo)"; $consulta = $conexion->prepare($sql); $consulta->bindParam(':idUsuario', $this->idUsuario); $consulta->bindParam(':idEquipo', $this->idEquipo); $consulta->execute(); return [ 'exito' => 'Usuario vinculado al equipo correctamente.', 'exito_tecnico' => $conexion->lastInsertId() ]; } catch (PDOException $error) { return [ 'error' => 'Ocurrió un error al unir al usuario con el equipo.', 'error_tecnico' => $error->getMessage() ]; } } public static function listarUsuariosPorEquipo($idEquipo) { $conexion = conexionBD(); if (is_array($conexion)) return $conexion; try { $sql = "SELECT u.* FROM equipoxusuario exu INNER JOIN usuario u ON exu.idUsuario = u.idUsuario WHERE exu.idEquipo = :idEquipo"; $consulta = $conexion->prepare($sql); $consulta->bindParam(':idEquipo', $idEquipo); $consulta->execute(); return $consulta->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $error) { return [ 'error' => 'Ocurrió un error al obtener los miembros del equipo.', 'error_tecnico' => $error->getMessage() ]; } } public function obtenerSalaUsuario($idUsuario) { $conexion = conexionBD(); if (is_array($conexion)) { return $conexion; } try { $sql = " SELECT exu.idEquipo, exp.idPartida FROM equipoxusuario exu INNER JOIN equipoxpartida exp ON exu.idEquipo = exp.idEquipo WHERE exu.idUsuario = :idUsuario LIMIT 1 "; $consulta = $conexion->prepare($sql); $consulta->bindParam( ':idUsuario', $idUsuario, PDO::PARAM_INT ); $consulta->execute(); $resultado = $consulta->fetch(PDO::FETCH_ASSOC); if (!$resultado) { return [ 'asociado' => false ]; } return [ 'asociado' => true, 'idEquipo' => $resultado['idEquipo'], 'idPartida' => $resultado['idPartida'] ]; } catch (PDOException $error) { return [ 'error' => 'Ocurrió un error al obtener la sala del usuario.', 'error_tecnico' => $error->getMessage() ]; } } public static function salirDeSala($idUsuario) { $conexion = conexionBD(); if (is_array($conexion)) { return $conexion; } try { $sql = "DELETE FROM equipoxusuario WHERE idUsuario = :idUsuario"; $consulta = $conexion->prepare($sql); $consulta->bindParam(':idUsuario', $idUsuario, PDO::PARAM_INT); $consulta->execute(); return [ 'exito' => true, 'mensaje' => 'Usuario eliminado de la sala correctamente.' ]; } catch (PDOException $error) { return [ 'error' => 'Ocurrió un error al salir de la sala.', 'error_tecnico' => $error->getMessage() ]; } } }