#ifndef USUARIO_H
#define USUARIO_H

#include <QString>
#include <QList>
// Forward declaration para evitar include circular si Ramo necesita Usuario, aunque aquí no lo necesita directamente
class Ramo; 

class Usuario {
public:
    // Constructor
    Usuario(int id, const QString& nombre, const QString& email, const QString& carrera, int totalCreditosAprobados = 0);

    // Getters
    int getIdUsuario() const;
    QString getNombre() const;
    QString getEmail() const;
    QString getCarrera() const;
    int getTotalCreditosAprobados() const;

    // Setters
    void setNombre(const QString& nombre);
    void setEmail(const QString& email);
    void setCarrera(const QString& carrera);
    void setTotalCreditosAprobados(int creditos);


    // void agregarRamo(Ramo* ramo); // Podríamos añadir esto si Ramo se gestionara directamente dentro de Usuario

private:
    int idUsuario;
    QString nombre;
    QString email;
    QString carrera;
    int totalCreditosAprobados;
    // QList<Ramo*> ramosInscritos; // Decidimos que la gestión de ramos inscritos será a nivel de un gestor principal
};

#endif // USUARIO_H