#pragma once
#include "Partida.h"
#include <vector>
#include <memory>

// ──────────────────────────────────────────────
//  Clase Ronda
//  Agrupa las partidas de una fase del torneo.
// ──────────────────────────────────────────────
class Ronda {
public:
    explicit Ronda(int numero, const QString& nombre = "");

    int     getNumero()  const { return m_numero; }
    QString getNombre()  const { return m_nombre; }
    bool    isCompleta() const;

    // Gestión de partidas
    void addPartida(std::shared_ptr<Partida> p);
    const std::vector<std::shared_ptr<Partida>>& getPartidas() const { return m_partidas; }

    // Recolecta ganadores para la siguiente ronda
    std::vector<std::shared_ptr<Jugador>> getGanadores() const;

private:
    int     m_numero;
    QString m_nombre;
    std::vector<std::shared_ptr<Partida>> m_partidas;
};
