#ifndef ADDNOTADIALOG_H
#define ADDNOTADIALOG_H

#include <QDialog>
#include <QComboBox>
#include <QDoubleSpinBox>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QFormLayout>
#include <QLabel>
#include <QMessageBox>
#include <QCheckBox> // Asegurarse de que esté incluido para QCheckBox
#include <QGroupBox>
#include <QHeaderView>
#include <QDebug> // Para depuración

#include "Ramo.h"
#include "ActividadAcademica.h" // ¡Ahora la clase unificada!
#include "Calendario.h"

class AddNotaDialog : public QDialog {
    Q_OBJECT

public:
    explicit AddNotaDialog(Calendario* calendario, QWidget *parent = nullptr);
    ~AddNotaDialog();

    // Getters para la información seleccionada
    Ramo* getSelectedRamo() const;
    ActividadAcademica* getSelectedActividadEvaluativa() const; // ¡Ahora ActividadAcademica!
    float getNotaObtenida() const;
    bool getEsCompletada() const;

private slots:
    void on_ramoComboBox_currentIndexChanged(int index);
    void on_actividadComboBox_currentIndexChanged(int index);
    void on_completadaCheckBox_stateChanged(int state);

private:
    void setupUi();
    void populateRamos();
    void populateActividades(Ramo* ramo);

    Calendario* m_calendario;
    QMap<QString, Ramo*> m_ramoMap;
    QMap<QString, ActividadAcademica*> m_actividadMap; // ¡Ahora ActividadAcademica!

    QComboBox *ramoComboBox;
    QComboBox *actividadComboBox;
    QDoubleSpinBox *notaSpinBox;
    QCheckBox *completadaCheckBox;
    QPushButton *okButton;
    QPushButton *cancelButton;

    Ramo* currentSelectedRamo;
    ActividadAcademica* currentSelectedActividad; // ¡Ahora ActividadAcademica!
};

#endif // ADDNOTADIALOG_H