8namespace ehm_dal::tools::schedule_template_generator {
15 ScheduleClub(
const qint32 generator_club_id = 0,
const qint32 encoded_division_club_id = 0);
18 inline qint32 clubId()
const {
return generator_club_id_; }
19 inline qint32 clubEncodedId()
const {
return encoded_division_club_id_; }
22 bool hasGamesToAllocate()
const;
23 std::pair<qint32, qint32> take();
26 qint32 homeGameCount()
const;
27 qint32 homeGameCount(
const qint32 club_id)
const;
28 void initHomeGameCounts(
const qint32 club_count,
const qint32 default_games_played);
29 void resetUnallocatedHomeGames();
30 qint32 unallocatedHomeGameCount()
const;
33 void setHomeGameCount(
const qint32 club_id,
const qint32 home_game_count);
36 inline void setClubEncodedId(
const qint32 encoded_division_club_id)
38 encoded_division_club_id_ = encoded_division_club_id;
44 return clubEncodedId() <=> rhs.clubEncodedId();
48 return clubEncodedId() == rhs.clubEncodedId();
51 enum ENUM_FLAGS { INVALID_CLUB_ID = -1, PAIR_ROAD_CLUB_INDEX = 0, PAIR_HOME_CLUB_INDEX = 1 };
55 qint32 generator_club_id_{0};
56 qint32 encoded_division_club_id_{0};
59 std::pair<qint32, qint32> take(
const qint32 road_club_id);
62 std::vector<qint32> game_counts_;
63 std::vector<qint32> unallocated_games_;
66 qint32 nextClubToTake();
67 qint32 next_club_to_take_{0};