#pragma once

#include <yandex/maps/wiki/social/feedback/review.h>
#include <yandex/maps/wiki/social/feedback/reviews_gateway.h>
#include <maps/wikimap/mapspro/services/social/src/libs/common/common.h>
#include <maps/wikimap/mapspro/services/social/src/libs/feedback/common.h>
#include <maps/wikimap/mapspro/services/social/src/libs/feedback/serialize.h>
#include <maps/wikimap/mapspro/services/social/src/libs/feedback/review_report.h>
#include <maps/wikimap/mapspro/services/social/src/libs/feedback/review_utils.h>
#include <maps/wikimap/mapspro/services/social/src/libs/feedback/feedback_review_serialize.h>
#include <maps/wikimap/mapspro/libs/controller/include/asyncbasecontroller.h>
#include <yandex/maps/wiki/social/common.h>

namespace maps::wiki::socialsrv {
namespace mws = social;
namespace mwsf = social::feedback;

enum class ReviewAccessMode
{
    View,
    Edit
};

void checkPermissionsToWorkWithReviews(TUid uid, ReviewAccessMode accessMode);
void checkAccessToReviewContents(const ReviewExternData& reviewExternData, mws::TUid uid);
std::string toJson(const controller::ResultType<controller::AsyncBaseController>& result);

} // namespace maps::wiki::socialsrv
