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

#ifndef __PRINT_RESULT_MODULE_HPP__
#define __PRINT_RESULT_MODULE_HPP__

#include "JsonSerializable.hpp"
#include "PrintResultItem.hpp"
#include <string>
#include <vector>

namespace otx {
namespace jidu {
/**
 * @brief 打印结果中的大项。
 * 
 */
class PrintResultModule{
public:
  PrintResultModule() = default;
  PrintResultModule(const PrintResultModule &) = default;
  PrintResultModule &operator=(const PrintResultModule &) = default;
  virtual ~PrintResultModule();

private:
  std::string mTestStatisticName;
  std::string mTestStatisticId;
  std::string mTestStatisticResult;
  std::vector<PrintResultItem *> mTestBlockList;

public:
  virtual std::string getTestStatisticName();
  virtual void setTestStatisticName(const std::string &v);

  virtual std::string getTestStatisticId();
  virtual void setTestStatisticId(const std::string &v);

  virtual std::string getTestStatisticResult();
  virtual void setTestStatisticResult(const std::string &v);

  virtual std::vector<PrintResultItem *> *getTestBlockList();
  virtual PrintResultItem *newTestBlockItem();

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

} // namespace jidu
} // namespace otx

#endif /* __PRINT_RESULT_MODULE_HPP__ */
