#pragma once

#include <fsfw/devicehandlers/AssemblyBase.h>

class ImtqAssembly : public AssemblyBase {
 public:
  ImtqAssembly(object_id_t objectId);

 private:
  FixedArrayList<ModeListEntry, 1> commandTable;

  ReturnValue_t commandChildren(Mode_t mode, Submode_t submode) override;
  ReturnValue_t checkChildrenStateOn(Mode_t wantedMode, Submode_t wantedSubmode) override;
  ReturnValue_t isModeCombinationValid(Mode_t mode, Submode_t submode) override;
  void handleChildrenLostMode(ReturnValue_t result) override;

  ReturnValue_t checkAndHandleHealthState(Mode_t deviceMode, Submode_t deviceSubmode);
};