// Copyrigth Xtooltech @ 2023- All rights reserved.(LXH)

#ifndef __PRINT_RESULT_REPORT_RECORD_HPP__
#define __PRINT_RESULT_REPORT_RECORD_HPP__

#include "ReportRecord.hpp"
#include "PrintResultModule.hpp"

namespace otx {
namespace jidu {

class PrintResultReportRecord:virtual public ReportRecord {

public:
  PrintResultReportRecord();
  PrintResultReportRecord(const PrintResultReportRecord &) = default;
  PrintResultReportRecord &operator=(const PrintResultReportRecord &) = default;
  virtual ~PrintResultReportRecord();

private:
  std::size_t mTestStatisticTotalNum;
  std::size_t mTestStatisticFailNum;
  std::size_t mTestBlockFailNum;
  std::string mStationTime;
  std::vector<PrintResultModule *> mTestStatisticList;

private:
	std::string mCarConfig;
	std::string mTPMSId;
	std::string mSshStatus;
	std::string mChargingIsOpen;
	std::string mGloveboxIsOpen;
	std::string mElectricity;

public:
  virtual std::string getCarConfig();
  virtual void setCarConfig(const std::string &v);

  virtual std::string getTpmsId();
  virtual void setTpmsId(const std::string& v);

  virtual std::string getSshStatus();
  virtual void setSshStatus(const std::string& v);

  virtual std::string getChargingIsOpen();
  virtual void setChargingIsOpen(const std::string& v);

  virtual std::string getGloveboxIsOpen();
  virtual void setGloveboxIsOpen(const std::string& v);

  virtual std::string getElectricity();
  virtual void setElectricity(const std::string& v);

  virtual std::size_t getTestStatisticTotalNum();
  virtual void setTestStatisticTotalNum(std::size_t v);

  virtual std::size_t getTestStatisticFailNum();
  virtual void setTestStatisticFailNum(std::size_t v);

  virtual std::size_t getTestBlockFailNum();
  virtual void setTestBlockFailNum(std::size_t v);

  virtual std::string getStationTime();
  virtual void setStationTime(const std::string &v);

  virtual std::vector<PrintResultModule *> *getTestStatisticList();
  virtual PrintResultModule *newStatisticItem();

  virtual std::string toJsonString() override;
};

} // namespace jidu
} // namespace otx

#endif /* __PRINT_RESULT_REPORT_RECORD_HPP__ */
