#pragma once #include "Competitor.h" #include #include #include #include #include class CompetitorWithResults : public Competitor { Q_OBJECT Q_PROPERTY(QString mark READ mark NOTIFY nMark) Q_PROPERTY(QString medalType READ medalType NOTIFY nMedalType) Q_PROPERTY(QString statistic READ statistic NOTIFY nStatistic) public: CompetitorWithResults() : Competitor(), m_mark(""), m_medalType("") {} CompetitorWithResults(const CompetitorWithResults &competitor) : Competitor(competitor), m_mark(competitor.m_mark), m_medalType(competitor.m_medalType) {} CompetitorWithResults(const QJsonObject &competitor) : Competitor(competitor) { if (!competitor.contains("results")) throw invalid_argument("Competitor does not contain results."); QJsonObject results = competitor["results"].toObject(); setResults(results); } bool setResults(const QJsonObject &results); void setStatistic(QString stat) { this->m_statistic = stat; } QString getMark() { return this->m_mark; } QString getMedalType() { return this->m_medalType; } QString getStatistic() { return this->m_statistic; } static bool compare(CompetitorWithResults lComp, CompetitorWithResults rComp); private: QString m_mark; QString m_medalType; QString m_statistic; };