#pragma once
#include <drogon/exports.h>
#include <drogon/DrObject.h>
#include <drogon/HttpViewData.h>
#include <memory>
#include <string>
namespace drogon
{
using DrTemplateData = HttpViewData;
class DROGON_EXPORT DrTemplateBase : public virtual DrObjectBase
{
  public:
    static std::shared_ptr<DrTemplateBase> newTemplate(
        const std::string &templateName);
    virtual std::string genText(
        const DrTemplateData &data = DrTemplateData()) = 0;
    virtual ~DrTemplateBase(){};
    DrTemplateBase(){};
};
}  