#pragma once
#include <string>
#include "CivInpBuilder.h"

/**
  管网数据库数据转inp文件中转器
*/
class CivInpConvertor
{
public:
	explicit CivInpConvertor(const std::string& uri);
	~CivInpConvertor();

	bool maintainTopo();

	/**
	 *@brief 转成方案模拟的inp文件
	 *@param projCode 方案编码
	 *@param startTime 模拟时间
	 */
	std::string convertPorjInp(const std::string& projCode, const std::string& startTime);

	/**
	 *@brief 根据模拟的时刻值转inp文件
	 *@param [std::string] simulTime 模拟时间
	 */
	std::string convertNotPorjInp(const std::string& simulTime);

	/**
	 *@brief 转成方案普通inp
	 */
	std::string convertBaseInp();

	/**
	 *@brief 追踪模拟inp文件
	 *@param sn 追踪的节点
	 *@param hours 追踪小时数
	 */
	std::string convertTrackInp(const std::string& sn, const std::string& hours);

	std::string convertAnalysisInp();

	/**
	 * 余氯分析
	 */
	std::string convertResidualInp();

private:
	std::string mUri;
};