#ifndef THIRD_PARTY_MILOTIC_INTERNAL_CC_BMCWEB_ROUTER_H_
#define THIRD_PARTY_MILOTIC_INTERNAL_CC_BMCWEB_ROUTER_H_

#include <memory>

#include "http_request.hpp"
#include "async_resp.hpp"

namespace crow {

class RouterInterface {
 public:
  RouterInterface() = default;
  RouterInterface(const RouterInterface&) = default;
  RouterInterface& operator=(const RouterInterface&) = default;
  RouterInterface(RouterInterface&&) = default;
  RouterInterface& operator=(RouterInterface&&) = default;

  virtual ~RouterInterface() = default;
  virtual void Handle(crow::Request& req,
                      const std::shared_ptr<bmcweb::AsyncResp>& async_resp) = 0;

  virtual void UpdateTlbmcOwnedUrls() {};
};

}  // namespace crow

#endif  // THIRD_PARTY_MILOTIC_INTERNAL_CC_BMCWEB_ROUTER_H_
