#pragma once

#include "adapters/eft/runtime/EftGameContext.h"
#include "adapters/unity/chams/ChamsService.h"
#include "features/chams/IChamsGateway.h"

namespace ta::adapters::unity::chams
{
class EftChamsGateway final : public ta::features::chams::IChamsGateway
{
public:
    explicit EftChamsGateway(ta::adapters::eft::runtime::EftGameContext& context) noexcept
        : context_(context) {}

    void application_tick(const ta::features::chams::ChamsSettings& settings) override;
    void game_tick(const ta::features::chams::ChamsSettings& settings) override;
    void reset_session() noexcept override;

private:
    ta::adapters::eft::runtime::EftGameContext& context_;
    ChamsService service_{};
};
}
