#pragma once

#include "common.h"
#include <saas/tools/dump_fullarc_to_yt/params.pb.h>
#include <mapreduce/yt/interface/operation.h>
#include <saas/library/yt/common/yt_blob.h>
#include <saas/library/yt/stream/yt_chunked_input.h>
#include <library/cpp/getoptpb/getoptpb.h>
#include <util/folder/filelist.h>

class TFullarcReducer
    : public NYT::IReducer<NYT::TTableReader<NYT::Message>, NYT::TTableWriter<NYT::TNode>>
{
    NUtils::TParams Params;
public:
    Y_SAVELOAD_JOB(Params);

    TFullarcReducer() = default;
    TFullarcReducer(const NUtils::TParams& params)
        : Params(params) {
    }

    virtual void Do(NYT::TTableReader<NYT::Message>* input, NYT::TTableWriter<NYT::TNode>* output) override;
};
