#ifndef BREAKHANDLER_HPP_INCLUDED
#define BREAKHANDLER_HPP_INCLUDED

#include "../../Core/Types/Timer.hpp"
#include "../../Core/Types/Counter.hpp"
#include "../../Core/Types/Countdown.hpp"

namespace BreakHandler
{
    Counter GetBreakCounter();
    Timer GetBreakTimer();

    bool MiniBreak(bool Logout = true);
    bool ShortBreak(bool Logout = true);
    bool LongBreak(bool Logout = true);
    bool Break(bool LogoutOnLong = true, bool LogoutOnShort = true, bool LogoutOnMini = false);

    struct BreakTime
    {
        std::int64_t TimeOfLastBreak;
        std::int64_t BreakEvery;
        std::int64_t BreakFor;
        bool OnBreak = false;
        Countdown BreakCountdown;
    };

    BreakTime GetMiniBreakTime();
    BreakTime GetShortBreakTime();
    BreakTime GetLongBreakTime();

}

#endif // BREAKHANDLER_HPP_INCLUDED
