summaryrefslogtreecommitdiff
path: root/src/model/Sport.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/Sport.h')
-rw-r--r--src/model/Sport.h127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/model/Sport.h b/src/model/Sport.h
index c5d1c66..e69de29 100644
--- a/src/model/Sport.h
+++ b/src/model/Sport.h
@@ -1,127 +0,0 @@
-#pragma once
-
-#include "MedalWinner.h"
-#include "CompetitorWithResults.h"
-#include <QAbstractListModel>
-#include <QNetworkAccessManager>
-#include <qcontainerfwd.h>
-#include <set>
-
-#include <QJsonObject>
-#include <QJsonDocument>
-#include <QString>
-#include <QList>
-#include "EventInfo.h"
-
-using namespace std;
-
-class SportModel : public QAbstractListModel
-{
- Q_OBJECT
-
- Q_PROPERTY(QString discipline READ discipline WRITE setDiscipline NOTIFY disciplineChanged);
-
-public:
- enum Role
- {
- EventName = Qt::UserRole + 1,
- Competitors
- };
-
- explicit SportModel(QObject *parent = nullptr);
-
- virtual int rowCount(const QModelIndex &parent) const override;
- virtual QVariant data(const QModelIndex &index, int role) const override;
- virtual QHash<int, QByteArray> roleNames() const override;
-
- QString discipline() const;
- void setDiscipline(const QString &discipline);
-public slots:
- void request(QString discipline);
- void parseData();
-
- signals:
- void disciplineChanged();
-
- private:
- QList<EventInfo*> m_sportList;
- QString m_discipline;
- QNetworkAccessManager m_networkManager;
- QNetworkReply *m_reply = nullptr;
-};
-
-class Sport
-{
-
-public:
- Sport(QJsonObject discipline)
- {
- this->discipline = discipline;
- }
-
- set<QString> getCategories();
- QList<CompetitorWithResults> getCompetitorsByCategory(QString category);
- QList<MedalWinner> getCompetitorsWithMedal();
-
- // filter to change the current competitor array
- void lastName(QList<Competitor> &competitors);
- void filterByName(QList<Competitor> &competitors, QString name);
- void filterByCountry(QList<Competitor> &competitors, QString nocShort);
-
- // sort functions to change the order of the current competitor array
- void sortByName(QList<Competitor> &competitors);
- void sortByCountry(QList<Competitor> &competitors);
- void sortByResult(QList<CompetitorWithResults> &competitors);
- void sortByMedals(QList<MedalWinner> &competitors);
- void reverseOrder(QList<Competitor> &competitors);
-
- // statistic function(s)
- void addRelativeToFirst(QList<CompetitorWithResults> &competitors);
-
- void setDiscipline(QJsonObject discipline)
- {
- this->discipline = QJsonObject(discipline);
- }
-
-private:
- /*
- * Analysis of provided competitor objects:
- *
- * Attributes:
- * - code
- * - noc (national olympics comittee)
- * - name (sometimes the country name? mostly the competitors name)
- * - order
- * [- results] (only if the results are out!)
- *
- *
- * Analysis of provided result objects:
- *
- * Attributes:
- * - position
- * - mark
- * - medalType
- * - irk
- * [- winnerLoserTie] (only if provided in the discipline?)
- *
- * Analysis of where to find the medal winners:
- *
- * Search for ... in category name.
- * - "Bronze"
- * - "Gold"
- * - "Final"
- *
- * ! ATTENTION !
- * When searching for "Final" there might be "Final A", "Final B", etc.
- * The results will only be in ONE of these categories!
- * -> which is good... cause then we can count occurences.
- */
- QJsonObject discipline;
-
- void filterCompetitors(QList<Competitor> &competitors, QString filter);
-
- bool validateDiscipline();
- QJsonObject createCompetitorWithMedals(QJsonObject medalComp);
-
- float calcRelativeStat(QString ref, QString val);
-};