#include "Ronda.h"

Ronda::Ronda(int numero, const QString& nombre)
    : m_numero(numero)
    , m_nombre(nombre.isEmpty() ? QString("Ronda %1").arg(numero) : nombre)
{}

void Ronda::addPartida(std::shared_ptr<Partida> p) {
    m_partidas.push_back(p);
}

bool Ronda::isCompleta() const {
    for (const auto& p : m_partidas) {
        if (p->getEstado() == Partida::Estado::PENDIENTE ||
            p->getEstado() == Partida::Estado::EN_CURSO)
            return false;
    }
    return !m_partidas.empty();
}

std::vector<std::shared_ptr<Jugador>> Ronda::getGanadores() const {
    std::vector<std::shared_ptr<Jugador>> ganadores;
    for (const auto& p : m_partidas) {
        if (p->getGanador())
            ganadores.push_back(p->getGanador());
    }
    return ganadores;
}
