#pragma once

#include <fsfw/power/PowerSwitchIF.h>

class GpioIF;

namespace dummy {

struct Tmp1075Cfg {
  bool addTcsBrd0 = true;
  bool addTcsBrd1 = true;
  bool addPlPcdu0 = true;
  bool addPlPcdu1 = true;
  bool addIfBrd = true;
};

// Default values targeted towards EM.
struct DummyCfg {
  bool addCoreCtrlCfg = true;
  // Special variant because the ACU broke. Overrides addPowerDummies, only ACU dummy will be added.
  bool addOnlyAcuDummy = false;
  bool addPowerDummies = true;
  bool addBpxBattDummy = true;
  bool addSyrlinksDummies = true;
  bool addAcsBoardDummies = true;
  bool addSusDummies = true;
  bool addTempSensorDummies = true;
  bool addRtdComIFDummy = true;
  bool addPlocDummies = true;
  bool addStrDummy = true;
  bool addTmpDummies = true;
  bool addRadSensorDummy = true;
  bool addPlPcduDummy = false;
  Tmp1075Cfg tmp1075Cfg;
  bool addCamSwitcherDummy = false;
  bool addScexDummy = false;
};

void createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitch, GpioIF* gpioIF, bool enableHkSets);

}  // namespace dummy