#pragma once
#include <QString>
#include <QUuid>

// ──────────────────────────────────────────────
//  Clase Jugador
//  Representa a un participante del torneo.
// ──────────────────────────────────────────────
class Jugador {
public:
    Jugador() = default;
    Jugador(const QString& nombre, const QString& alias = "");

    // Getters
    QString getId()     const { return m_id; }
    QString getNombre() const { return m_nombre; }
    QString getAlias()  const { return m_alias.isEmpty() ? m_nombre : m_alias; }
    int  getVictorias() const { return m_victorias; }
    int  getDerrotas()  const { return m_derrotas; }
    bool isEliminado()  const { return m_eliminado; }

    // Setters / modificadores
    void setNombre(const QString& n) { m_nombre = n; }
    void setAlias(const QString& a)  { m_alias  = a; }
    void registrarVictoria();
    void registrarDerrota();
    void eliminar()  { m_eliminado = true; }
    void restaurar() { m_eliminado = false; m_victorias = 0; m_derrotas = 0; }

    // Utilidades
    QString resumen() const;

private:
    QString m_id;
    QString m_nombre;
    QString m_alias;
    int     m_victorias  = 0;
    int     m_derrotas   = 0;
    bool    m_eliminado  = false;
};
