#pragma once
#include "CivDbConn.h"
#include <vector>

/**
	维护水力模型必要的表
*/
class DBEXPORT  CivMaintainModel
{
public:
	CivMaintainModel();

	/**
	*@brief 维护模型必要的表
	*/
	void maintain();

	/**
	*@brief 添加模型所必须的表
	*@param table 表名
	*/
	void addNecessaryTable(const std::string& table);

private:
	/**
	*@brief 检查表是否存在
	*/
	bool checkTable(const std::string& table);

	/**
	*@brief 检查表字段
	*@param table 表名
	*@param filed 表字段
	*@param filedType 表字段类型
	*/
	bool checkTableFiled(const std::string& table, const std::string& filed, const std::string& filedType);

	/**
	*@brief 添加表字段
	*@param table 表名
	*@param filed 表字段
	*@param filedType 表字段类型
	*/
	void addTableFiled(const std::string& table, const std::string& filed, const std::string& filedType);

	/**
	*@brief 删除表字段
	*@param table 表名
	*@param filed 表字段
	*/
	void deleteTableFiled(const std::string& table, const std::string& filed);

private:

	std::vector<std::string> mNecessTables;
};
