4#include "include/tools/schedule_generator/schedule_template_generator/schedule_game.h"
7#include <QAbstractTableModel>
12namespace ehm_dal::tools::schedule_template_generator {
25 void addGame(
const std::shared_ptr<ScheduleClub> road_club,
26 const std::shared_ptr<ScheduleClub> home_club,
30 qint32 columnCount(
const QModelIndex &parent = QModelIndex())
const override;
31 qint32 rowCount(
const QModelIndex &parent = QModelIndex())
const override;
34 qint32 dateCount()
const;
35 QDate endDate()
const;
36 QDate startDate()
const;
39 inline qint32 gameCount()
const {
return rowCount(); }
40 qint32 gameCount(
const std::shared_ptr<ScheduleClub> &road_club,
41 const std::shared_ptr<ScheduleClub> &home_club)
const;
42 qint32 gameCount(
const qint32 road_club_encoded_id,
const qint32 home_club_encoded_id)
const;
43 qint32 gameCountAllMatchups(
const std::shared_ptr<ScheduleClub> &club_a,
44 const std::shared_ptr<ScheduleClub> &club_b)
const;
45 qint32 gameCountAllMatchups(
const qint32 club_a_encoded_id,
46 const qint32 club_b_encoded_id)
const;
47 qint32 gameCountAllMatchups(
const std::shared_ptr<ScheduleClub> &club)
const;
48 qint32 gameCountAllMatchups(
const qint32 club_encoded_id)
const;
49 qint32 gameCountHome(
const std::shared_ptr<ScheduleClub> &home_club)
const;
50 qint32 gameCountHome(
const qint32 home_club_encoded_id)
const;
51 qint32 gameCountRoad(
const std::shared_ptr<ScheduleClub> &road_club)
const;
52 qint32 gameCountRoad(
const qint32 road_club_encoded_id)
const;
55 QVariant data(
const QModelIndex &index, qint32 role = Qt::DisplayRole)
const override;
61 void addDays(
const qint32 days);
62 void setStartYear(
const qint32 start_year);
66 inline qint32 startYear()
const {
return start_year_; }
80 std::vector<ScheduleGame> data_;
83 enum ENUM_FLAGS { DEFAULT_START_YEAR };
84 qint32 start_year_{DEFAULT_START_YEAR};
86 void validateYear(
const qint32 year);