4#include "include/spreadsheet/spreadsheet.h"
5#include "include/tools/schedule_generator/schedule_template_generator/schedule_club.h"
6#include "include/tools/schedule_generator/schedule_template_generator/schedule_game_table.h"
7#include "include/tools/schedule_generator/schedule_template_generator/schedule_matrix.h"
14namespace ehm_dal::tools::schedule_template_generator {
26 qint32 addClub(
const qint32 encoded_division_club_id);
27 void addDivision(
const qint32 division_id,
28 const qint32 club_count,
29 const qint32 first_club_id = 0);
30 std::shared_ptr<ScheduleClub> club(
const qint32 club_id);
31 std::shared_ptr<ScheduleClub> clubFromEncodedId(
const qint32 club_encoded_id);
32 inline qint32 clubCount()
const {
return static_cast<qint32
>(clubs_.size()); }
33 std::shared_ptr<ScheduleClub> findOrAddClub(
const qint32 club_encoded_id);
34 bool isValidClubId(
const qint32 club_id)
const;
35 std::vector<std::shared_ptr<ScheduleClub>> sortedClubList();
38 inline void addDays(
const qint32 days) { games_.addDays(days); }
39 inline qint32 generatedDateCount()
const {
return generated_date_count_; }
40 inline qint32 generatedRoundCount()
const {
return generated_round_count_; }
43 bool exportSchedule();
47 void addGame(
const qint32 road_club_id,
const qint32 home_club_id,
const QDate &date);
48 void addGame(
const qint32 road_club_id,
49 const qint32 home_club_id,
50 const qint32 day_of_month,
52 const qint32 year_offset);
53 void addGameFromEncodedId(
const qint32 road_club_encoded_id,
54 const qint32 home_club_encoded_id,
55 const qint32 day_of_month,
57 const qint32 year_offset);
59 void printGame(
const qint32 game_id);
62 bool generate(
const QDate &start_date,
63 const QDate &end_date,
64 const std::vector<qint32> &day_priorities,
65 const QDate &exclusion_range_start_date = QDate(),
66 const QDate &exclusion_range_end_date = QDate());
67 std::unique_ptr<ScheduleMatrix> matrix(
const qint32 default_games_played_count = 1);
74 inline void setStartYear(
const qint32 start_year) { games_.setStartYear(start_year); }
75 inline qint32 startYear()
const {
return games_.startYear(); }
78 std::vector<std::shared_ptr<ScheduleClub>> clubs_;
80 qint32 generated_date_count_{0};
81 qint32 generated_round_count_{0};
84 qint32 toEncodedDivisionClubId(
const qint32 division_id,
const qint32 club_id)
const;
87 void initClubGameCounts(
const qint32 default_games_played_count);
88 void resetClubUnallocatedGames();
89 qint32 unallocatedGameCount()
const;
92 qint32 generate_iteration_limit_{2000};
Definition: spreadsheet.h:30