itat_challenge/src/model/Competitor.h

53 lines
1.3 KiB
C++

#pragma once
#include <QString>
#include <QMap>
#include <QJsonObject>
#include <QObject>
using namespace std;
class Competitor : public QObject {
Q_OBJECT
Q_PROPERTY(int code READ code NOTIFY nCode)
Q_PROPERTY(QString name READ name NOTIFY nName)
Q_PROPERTY(QString noc READ noc NOTIFY nNoc)
public:
Competitor() : m_code(0), m_name(""), m_noc("") {}
Competitor(const Competitor &competitor) : m_code(competitor.m_code), m_name(competitor.m_name), m_noc(competitor.m_noc) {}
Competitor(const QJsonObject &competitor) { setCompetitor(competitor); }
int getCode() { return this->m_code; }
QString getName() { return this->m_name; }
QString getNOC() { return this->m_noc; }
void setCode(int code) { this->m_code = code; }
void setName(QString name) { this->m_name = name; }
void setNOC(QString noc) { this->m_noc = noc; }
bool setCompetitor(const QJsonObject &competitor);
static bool compareName(const Competitor &left, const Competitor &right) {
return left.m_name.compare(right.m_name) < 0;
}
static bool compareNOC(const Competitor &left, const Competitor &right) {
return left.m_noc.compare(right.m_noc) < 0;
}
signals:
void nCode();
void nName();
void nNoc();
private:
int m_code;
QString m_name;
QString m_noc;
};