#pragma once
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <memory>
#include "Jugador.h"

// ──────────────────────────────────────────────
//  JugadorChip
//  Widget tipo "chip/pill" que representa a un
//  jugador. Soporta edición inline y eliminación.
// ──────────────────────────────────────────────
class JugadorChip : public QWidget {
    Q_OBJECT
public:
    explicit JugadorChip(std::shared_ptr<Jugador> jugador, QWidget* parent = nullptr);

    std::shared_ptr<Jugador> getJugador() const { return m_jugador; }
    void setEliminado(bool elim);
    void setEditable(bool editable);

signals:
    void solicitudEliminar(const QString& id);
    void nombreCambiado(const QString& id, const QString& nuevoNombre);

private slots:
    void onEliminar();
    void onConfirmar();
    void onClickLabel();

private:
    void setupUI();
    void aplicarEstilo(bool eliminado);

    std::shared_ptr<Jugador> m_jugador;
    QLabel*      m_lblNombre  = nullptr;
    QLineEdit*   m_edNombre   = nullptr;
    QPushButton* m_btnX       = nullptr;
    QPushButton* m_btnOk      = nullptr;
    bool         m_editando   = false;
    bool         m_eliminado  = false;
    bool         m_editable   = true;
};
