#ifndef MINING_RIG_CONTROLLER_HPP_
#define MINING_RIG_CONTROLLER_HPP_

#include <Controller/InventoryController/InventoryController.hpp>
#include <Machine/MMiningRig/MMiningRig.hpp>

/**
 * @brief The mining rig controller.
 */
class MiningRigController : public InventoryController
{
private:
    std::shared_ptr<MMiningRig> miningRig;
    MMiningRig::Stats stats;

    Command<uint32_t, MMiningRig::Stats> updateStats;

public:
    MiningRigController(ControllerChannel &channel);

    void onConnect(std::shared_ptr<Machine> miningRigMachine);

    virtual Widget* getRightPanel() override;
    virtual void update() override;
};

#endif