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

#ifndef __REPORTRECORD_HPP__
#define __REPORTRECORD_HPP__

#include <string>
#include <ctime>
#ifdef WIN32
#include <windows.h>
#else
#include <sys/time.h>
#endif

#include <mutex>
#include "JsonSerializable.hpp"

namespace otx {
namespace jidu {

class ReportRecord:virtual public JsonSerializable {

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

private:
  std::string mSerialNo;
  std::string mMixNo;
  std::string mVehicleType;
  std::string mVin;
  std::string mStation;
  std::string mReworkStation;
  size_t mTestBlockTotalNum =1;
  size_t mTestItemTotalNum;
  std::string mResultType;
  std::string mCell;
  // block结束时间
  std::string mTestTimeUtc;
  // block开始时间
  std::string mExecutionTimeUtc;

public:
  virtual std::string getSerialNo();
  virtual void setSerialNo(const std::string &v);

  virtual std::string getMixNo();
  virtual void setMixNo(const std::string &v);

  virtual std::string getVehicleType();
  virtual void setVehicleType(const std::string &v);

  virtual std::string getVin();
  virtual void setVin(const std::string &v);

  virtual std::string getStation();
  virtual void setStation(const std::string &v);

  virtual std::string getReworkStation();
  virtual void setReworkStation(const std::string &v);

  virtual size_t getTestBlockTotalNum();
  virtual void setTestBlockTotalNum(size_t v);

  virtual size_t getTestItemTotalNum();
  virtual void setTestItemTotalNum(size_t v);

  virtual std::string getResultType();
  virtual void setResultType(const std::string &v);

  virtual std::string getCell();
  virtual void setCell(const std::string &v);

  virtual std::string getTestTimeUtc();
  virtual void setTestTimeUtc(const std::string &v);

  virtual std::string getExecutionTimeUtc();
  virtual void setExecutionTimeUtc(const std::string &v);

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

} // namespace jidu
} // namespace otx

#endif /* __REPORTRECORD_HPP__ */
