Initial commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#ifndef RESERVATION_MANAGER_H
|
||||
#define RESERVATION_MANAGER_H
|
||||
|
||||
#include "day_manager.h"
|
||||
|
||||
class ReservationManager {
|
||||
private:
|
||||
DayManager dayReference_;
|
||||
QMap<qsizetype /* index */, DayManager> days_;
|
||||
qsizetype createdRecords_;
|
||||
qsizetype dayBound_;
|
||||
qsizetype dayRange_;
|
||||
qsizetype excludedDays_;
|
||||
qsizetype lastIndex_;
|
||||
|
||||
public:
|
||||
inline ReservationManager() noexcept;
|
||||
explicit ReservationManager(qsizetype dayRange, qsizetype dayBound,
|
||||
const DayManager &reference);
|
||||
|
||||
inline DayManager reference() const noexcept;
|
||||
inline qsizetype createdRecords() const noexcept;
|
||||
inline void setDayBound(qsizetype dayBound);
|
||||
inline void setDayRange(qsizetype dayRange);
|
||||
void setReference(const DayManager &manager);
|
||||
|
||||
qsizetype calculateAvailableDaysCount() const;
|
||||
qsizetype calculatePossibleReservations(qint64 requiredMs) const;
|
||||
qsizetype calculateAvailableSlotsCount() const;
|
||||
|
||||
QPair<QDateTime, QTime> reserve(const QTime &duration);
|
||||
|
||||
private:
|
||||
DayManager &dayManager(qsizetype dayIndex);
|
||||
QPair<QDateTime, QTime> reserve(qsizetype dayIndex, const QTime &duration);
|
||||
void prepareDaysRange();
|
||||
|
||||
private:
|
||||
friend class ReservationManagerTest;
|
||||
};
|
||||
|
||||
ReservationManager::ReservationManager() noexcept
|
||||
: createdRecords_(0), dayBound_(-1), excludedDays_(0), lastIndex_(-1),
|
||||
dayReference_(DayManager()) {}
|
||||
|
||||
DayManager ReservationManager::reference() const noexcept {
|
||||
return dayReference_;
|
||||
}
|
||||
|
||||
inline qsizetype ReservationManager::createdRecords() const noexcept {
|
||||
return createdRecords_;
|
||||
}
|
||||
|
||||
void ReservationManager::setDayBound(qsizetype dayBound) {
|
||||
dayBound_ = dayBound;
|
||||
}
|
||||
|
||||
void ReservationManager::setDayRange(qsizetype dayRange) {
|
||||
dayRange_ = dayRange;
|
||||
}
|
||||
|
||||
#endif // RESERVATION_MANAGER_H
|
||||
Reference in New Issue
Block a user