#include "Certamen.h"
Certamen::Certamen(int id, const QString& nombre, const QString& descripcion,
                   const QDate& fechaInicio, const QDate& fechaFin, Ramo* ramoAsociado,
                   const QString& sala, const QString& tipoCertamen,
                   float ponderacion, float notaObtenida, float estimacionHoras, QObject* parent) // Ponderacion y nota van a la base
    : ActividadAcademica(id, nombre, descripcion, fechaInicio, fechaFin, ramoAsociado,
                         ponderacion, notaObtenida, estimacionHoras, parent), // Llama al constructor de la base
      m_sala(sala), m_tipoCertamen(tipoCertamen) {}

QString Certamen::getSala() const { return m_sala; }
QString Certamen::getTipoCertamen() const { return m_tipoCertamen; }

void Certamen::setSala(const QString& sala) { m_sala = sala; }
void Certamen::setTipoCertamen(const QString& tipoCertamen) { m_tipoCertamen = tipoCertamen; }

QString Certamen::obtenerTipoActividad() const { return "Certamen"; }

void Certamen::mostrarDetalles() const {
    qDebug() << "--- Detalles de Certamen ---";
    qDebug() << "ID:" << m_id;
    qDebug() << "Nombre:" << m_nombre;
    qDebug() << "Descripción:" << m_descripcion;
    qDebug() << "Inicio:" << m_fechaInicio.toString("dd/MM/yyyy hh:mm");
    qDebug() << "Fin:" << m_fechaFin.toString("dd/MM/yyyy hh:mm");
    qDebug() << "Ramo Asociado:" << (m_ramoAsociado ? m_ramoAsociado->getNombre() : "N/A");
    qDebug() << "Completado (Total):" << (estaCompletada() ? "Sí" : "No");
    qDebug() << "Sala:" << m_sala;
    qDebug() << "Tipo:" << m_tipoCertamen;

    if (m_ponderacion > 0) { // Si tiene ponderación, es evaluativa
        qDebug() << "  Ponderación: " << m_ponderacion << "%";
        qDebug() << "  Nota: " << (m_notaObtenida != -1.0f ? QString::number(m_notaObtenida) : "No registrada");
    }
    qDebug() << "----------------------------";
}