vector<Scientist> ScientistRepository::queryScientists(QString sqlQuery)
{
    vector<Scientist> scientists;

    db.open();

    if (!db.isOpen())
    {
        return scientists;
    }

    QSqlQuery query(db);

    if (!query.exec(sqlQuery))
    {
        return scientists;
    }

    while (query.next())
    {
        int id = query.value("id").toUInt();
        string name = query.value("name").toString().toStdString();
        int gender = query.value("Gender").toInt();
        enum sexType sex;
        if (gender == 1)
            sex = sexType::male;
        else
            sex = sexType::female;

        int yearBorn = query.value("BirthYear").toInt();
        int yearDied = query.value("DeathYear").toInt();

        scientists.push_back(Scientist(id, name, sex, yearBorn, yearDied));
    }

    db.close();

    for (unsigned int i = 0; i < scientists.size(); i++)
    {
        Scientist currentScientist = scientists.at(i);
        currentScientist.setComputers(queryComputersByScientist(currentScientist));
    }

    return scientists;
}
vector<Scientist> ScientistRepository::queryScientists(QString sqlQuery)
{
    vector<Scientist> scientists;

    db.open();

    if (!db.isOpen())
    {
        return scientists;
    }

    QSqlQuery query(db);

    if (!query.exec(sqlQuery))
    {
        return scientists;
    }

    while (query.next())
    {
        int id = query.value("id").toUInt();
        string name = query.value("name").toString().toStdString();
        enum sexType sex = utils::intToSex(query.value("sex").toInt());
        int yearBorn = query.value("yearBorn").toInt();
        int yearDied = query.value("yearDied").toInt();
        string info = query.value("info").toString().toStdString();
        Scientist sci(id, name, sex, yearBorn, yearDied);
        sci.setInfo(info);
        scientists.push_back(sci);
    }

    db.close();

    for (unsigned int i = 0; i < scientists.size(); i++)
    {
        Scientist currentScientist = scientists.at(i);
        currentScientist.setComputers(queryComputersByScientist(currentScientist));
    }

    return scientists;
}