/** * Exercise object * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "main_handler.h" #include namespace AreaEffectSimulation { class ObjectChargeAdministration final : public QObject { Q_OBJECT public: explicit ObjectChargeAdministration(MainHandler *mainHandler, QObject *parent = nullptr); ~ObjectChargeAdministration(); Core::FunctionReplyObject createObject(const Database::AesChargeAdministration &data); Core::FunctionReplyObject updateObject(const Database::AesChargeAdministration &data); int id() const { return m_data.id; } const Database::AesChargeAdministration &data() const { return m_data; } Core::FunctionReplyObject claimPlannedCharge(int count); Core::FunctionReplyObject consumeCharge(int count, bool wasPlanned); int availableCharge() const; protected Q_SLOTS: void onPublishData(); protected: private: MainHandler *m_mainHandler; Database::AesChargeAdministration m_data; bool m_isAdlerChargeType = false; NGL::INGLLogger &m_logger; }; } // namespace AreaEffectSimulation